¿Quieres calcular los días entre dos fechas en una lista de SharePoint y te aparece #Name?
con DATEDIF
? Aquí tienes una solución directa, robusta y lista para producción, con variantes para distintos escenarios (evitar negativos, devolver texto, ignorar la hora y más).
Qué estás intentando lograr
Necesitas una columna calculada que:
- Devuelva 0 si Confirmed Start Date o Confirmed Shipping Date están vacías.
- Devuelva la diferencia en días entre ambas cuando las dos tengan valor.
Por qué DATEDIF
falla en SharePoint
DATEDIF
no está soportada en columnas calculadas de SharePoint. Por eso obtienes#Name?
.- Comprobar vacío con espacio
" "
no funciona. Lo correcto es comparar con""
(cadena vacía). En muchos entornos también sirveISBLANK([Columna])
, pero[Columna]=""
es la forma más universal. - Si devuelves
"0"
(con comillas) el resultado será texto. Si quieres operarlo como número o sumarizarlo, usa0
sin comillas.
Fórmula recomendada (días naturales, resultado numérico)
Usa la resta directa de fechas y controla los vacíos con IF
:
=IF(OR([Confirmed Start Date]="",[Confirmed Shipping Date]=""), 0, [Confirmed Shipping Date]-[Confirmed Start Date])
Qué hace: si alguna fecha está vacía, devuelve 0; si no, resta la fecha de inicio a la de envío. En SharePoint, al restar dos valores de tipo fecha obtienes el número de días entre ellas.
Configuración recomendada de la columna
Parámetro | Valor sugerido | Notas |
---|---|---|
Tipo de columna | Calculated (calculation based on other columns) | Columna calculada clásica de SharePoint. |
Tipo de resultado | Number (Número) | Permite sumarizar y usar totales. |
Decimales | 0 | Para días enteros. Si te importa el tiempo (horas/minutos), usa decimales > 0. |
Variantes útiles según la necesidad
Evitar valores negativos
Si quieres que el resultado nunca sea negativo:
=IF(OR([Confirmed Start Date]="",[Confirmed Shipping Date]=""), 0, MAX(0, [Confirmed Shipping Date]-[Confirmed Start Date]))
Devolver texto en lugar de número
Si por algún motivo necesitas que la columna sea de tipo texto (por ejemplo, para concatenar en otra fórmula):
=IF(OR([Confirmed Start Date]="",[Confirmed Shipping Date]=""), "0", TEXT([Confirmed Shipping Date]-[Confirmed Start Date], "0"))
Ignorar la hora de las columnas
Si tus columnas de fecha incluyen hora y quieres contar días naturales exactos (de medianoche a medianoche) sin que las horas influyan, “normaliza” ambas fechas a medianoche antes de restar:
=IF(
OR([Confirmed Start Date]="",[Confirmed Shipping Date]=""),
0,
DATE(YEAR([Confirmed Shipping Date]),MONTH([Confirmed Shipping Date]),DAY([Confirmed Shipping Date]))
- DATE(YEAR([Confirmed Start Date]),MONTH([Confirmed Start Date]),DAY([Confirmed Start Date]))
)
Esta versión elimina la parte horaria y entrega la diferencia estricta en días calendario.
Conservar fracciones de día
Si quieres ver fracciones de día (por ejemplo, 1,5 días), mantén 1 o 2 decimales en la configuración de la columna:
=IF(OR([Confirmed Start Date]="",[Confirmed Shipping Date]=""), 0, [Confirmed Shipping Date]-[Confirmed Start Date])
Después, configura Decimales = 1 o 2.
Ejemplos prácticos
Supongamos que Confirmed Start Date y Confirmed Shipping Date almacenan fecha y hora. En la siguiente tabla comparamos la fórmula base y la variante “ignorar hora”.
Start | Shipping | Fórmula base (resta directa) | Ignorar hora (normaliza a medianoche) | Comentarios |
---|---|---|---|---|
01/10/2025 09:00 | 03/10/2025 09:00 | 2 | 2 | Dos días exactos; coinciden. |
01/10/2025 18:00 | 02/10/2025 08:00 | 0 (con 0 decimales) | 1 | La base redondea visualmente a 0 si usas 0 decimales; la variante ignora la hora y devuelve 1 día natural. |
15/11/2025 00:00 | 16/11/2025 23:59 | 2 (si la base se redondea) | 1 | Con 0 decimales, la base puede “subir” a 2; la variante devuelve 1 fijo. |
10/12/2025 12:00 | 10/12/2025 16:00 | 0 (o 0,17 con 2 dec.) | 0 | Mismo día; sólo cambia si muestras decimales. |
05/01/2026 08:00 | 04/01/2026 08:00 | -1 | -1 | Fecha de envío anterior; considera la variante con MAX(0,...) si no quieres negativos. |
— | 20/02/2026 10:00 | 0 | 0 | Alguna de las dos vacía —> 0 por la condición. |
Pasos en la interfaz de SharePoint
- Abre tu lista y elige Configuración (icono del engranaje) → Configuración de la lista.
- Selecciona Crear columna.
- Escribe un nombre como Days Between o Días entre fechas.
- Selecciona Calculated (calculation based on other columns).
- Pega la fórmula recomendada en el cuadro Formula.
- Establece Data type returned from this formula = Number y Number of decimal places = 0 (o los decimales que quieras).
- Guarda y vuelve a la vista. Verás el cómputo para cada fila.
Buenas prácticas y errores comunes
- Funciones en inglés: aunque la interfaz esté en español, las funciones (
IF
,OR
,DATE
,YEAR
…) se escriben en inglés. - Comillas y espacios: un campo vacío se comprueba con
""
, no con" "
. Un espacio cuenta como carácter. - Tipos de resultado: si necesitas sumarizar (totales en la vista) o agrupar por rangos, devuelve número, no texto.
- Hora vs. solo fecha: si las columnas incluyen hora, la resta produce fracciones. Ajusta decimales o usa la variante “ignorar hora”.
- Nombres de columna entre corchetes: usa el nombre para mostrar tal como aparece en la lista, rodeado por
[ ]
, incluso si contiene espacios. - Cambios de nombre: renombrar una columna no cambia su nombre interno, pero las fórmulas de columna calculada usan el nombre para mostrar entre corchetes, así que no afecta a la sintaxis.
- Separadores: en la mayoría de inquilinos, el separador de argumentos es
,
. Si ves errores de sintaxis y tu entorno usa;
, cambia las comas por punto y coma. - Redondeos: al mostrar 0 decimales, SharePoint redondea la fracción. Si prefieres truncar, considera normalizar a medianoche (variante “ignorar hora”).
- Rendimiento: las columnas calculadas se recalculan automáticamente; evita fórmulas excesivamente complejas para listas con decenas de miles de elementos.
Formato visual con JSON (opcional)
Una vez creada la columna, puedes formatear su aspecto para resaltar atrasos o plazos cumplidos. Este JSON colorea el fondo según el valor y añade “días”. Aplícalo en Formato de columna → Avanzado:
{
"elmType": "span",
"style": {
"padding": "4px 8px",
"border-radius": "12px",
"font-weight": "600",
"background-color": "=if(@currentField < 0, '#fee2e2', if(@currentField == 0, '#f3f4f6', '#dcfce7'))",
"color": "=if(@currentField < 0, '#991b1b', if(@currentField == 0, '#111827', '#065f46'))"
},
"children": [
{ "elmType": "span", "txtContent": "=toString(@currentField)" },
{ "elmType": "span", "style": { "margin-left": "4px" }, "txtContent": "días" }
]
}
Resultado: verde si es > 0, gris si es 0, rojo si es negativo.
Checklist de diagnóstico cuando algo no funciona
- Sigue apareciendo
#Name?
: revisa que no usas funciones no soportadas (DATEDIF
). Comprueba nombres exactos de las columnas entre corchetes. - Aparece
#VALUE!
o#DIV/0!
: suelen indicar tipos incompatibles o divisiones; para restar fechas, ambas deben ser Fecha y hora o Fecha. - No suma en totales: confirmas que el tipo de resultado es Number y no texto.
- Necesitas días naturales exactos: usa la variante que normaliza con
DATE(YEAR(...),MONTH(...),DAY(...))
. - El número de decimales no cambia: verifica que editas la misma columna calculada y que la vista no tiene formato personalizado que sobrescriba la presentación.
Cuándo usar alternativas
Las columnas calculadas son ideales para diferencias sencillas. Si necesitas:
- Excluir fines de semana y feriados de manera fiable.
- Recalcular sólo en ciertos eventos (por ejemplo, cuando la fecha cambia o cuando un estado pasa a “En tránsito”).
- Almacenar permanentemente el valor calculado y no sólo mostrarlo.
Considera automatizar con Power Automate (flujo que escribe en una columna numérica “Días entre fechas”) o calcular en la capa de app con Power Apps cuando personalices el formulario.
Plantillas listas para copiar
Base (numérico, días con hora considerada):
=IF(OR([Confirmed Start Date]="",[Confirmed Shipping Date]=""), 0, [Confirmed Shipping Date]-[Confirmed Start Date])
Base sin negativos:
=IF(OR([Confirmed Start Date]="",[Confirmed Shipping Date]=""), 0, MAX(0, [Confirmed Shipping Date]-[Confirmed Start Date]))
Días naturales exactos (ignora hora):
=IF(
OR([Confirmed Start Date]="",[Confirmed Shipping Date]=""),
0,
DATE(YEAR([Confirmed Shipping Date]),MONTH([Confirmed Shipping Date]),DAY([Confirmed Shipping Date]))-
DATE(YEAR([Confirmed Start Date]),MONTH([Confirmed Start Date]),DAY([Confirmed Start Date]))
)
Texto “0” y número formateado como texto:
=IF(OR([Confirmed Start Date]="",[Confirmed Shipping Date]=""), "0", TEXT([Confirmed Shipping Date]-[Confirmed Start Date], "0"))
Preguntas frecuentes
¿Puedo usar ISBLANK([Columna])
en lugar de [Columna]=""
?
En muchos inquilinos funciona, pero [Columna]=""
es universal en columnas calculadas. Si tu fórmula admite ISBLANK
, úsalo con confianza.
¿Qué pasa si mis columnas son de “Fecha y hora”?
La resta devolverá fracciones de día. Decide si quieres ver decimales o ignora la hora con la variante de normalización a medianoche.
¿Necesito comas o punto y coma para separar argumentos?
Por lo general, SharePoint Online usa ,
. Si ves error de sintaxis y tu entorno está localizado para usar ;
, reemplaza las comas.
¿Hay forma nativa de excluir fines de semana y feriados?
No de forma sencilla en columnas calculadas. Para reglas de negocio elaboradas, usa Power Automate o calcula en Power Apps.
¿Puedo usar el resultado en otras fórmulas o vistas?
Sí, si el resultado es numérico puedes sumarizar, agrupar o crear vistas filtradas (por ejemplo, “>= 0” para tareas al día).
Resumen ejecutivo
Olvida DATEDIF
en SharePoint: no está soportada. La solución simple y fiable es restar fechas y encerrar la operación en una comprobación de vacíos. Elige si quieres considerar la hora o no, y devuelve número para aprovechar totales y agrupaciones. Con esto eliminas #Name?
y ganas un cálculo claro, mantenible y compatible.