DATEDIF en SharePoint: columna calculada para días entre fechas (sin errores y con condiciones)

¿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).

Índice

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 sirve ISBLANK([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, usa 0 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ámetroValor sugeridoNotas
Tipo de columnaCalculated (calculation based on other columns)Columna calculada clásica de SharePoint.
Tipo de resultadoNumber (Número)Permite sumarizar y usar totales.
Decimales0Para 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”.

StartShippingFórmula base
(resta directa)
Ignorar hora
(normaliza a medianoche)
Comentarios
01/10/2025 09:0003/10/2025 09:0022Dos días exactos; coinciden.
01/10/2025 18:0002/10/2025 08:000 (con 0 decimales)1La base redondea visualmente a 0 si usas 0 decimales; la variante ignora la hora y devuelve 1 día natural.
15/11/2025 00:0016/11/2025 23:592 (si la base se redondea)1Con 0 decimales, la base puede “subir” a 2; la variante devuelve 1 fijo.
10/12/2025 12:0010/12/2025 16:000 (o 0,17 con 2 dec.)0Mismo día; sólo cambia si muestras decimales.
05/01/2026 08:0004/01/2026 08:00-1-1Fecha de envío anterior; considera la variante con MAX(0,...) si no quieres negativos.
20/02/2026 10:0000Alguna de las dos vacía —> 0 por la condición.

Pasos en la interfaz de SharePoint

  1. Abre tu lista y elige Configuración (icono del engranaje) → Configuración de la lista.
  2. Selecciona Crear columna.
  3. Escribe un nombre como Days Between o Días entre fechas.
  4. Selecciona Calculated (calculation based on other columns).
  5. Pega la fórmula recomendada en el cuadro Formula.
  6. Establece Data type returned from this formula = Number y Number of decimal places = 0 (o los decimales que quieras).
  7. 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 columnaAvanzado:

{
  "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.

Índice