Por qué una columna calculada devuelve una fecha incorrecta
🔍 WiseChecker

Por qué una columna calculada devuelve una fecha incorrecta

Creaste una columna calculada en SharePoint para mostrar una fecha futura, una fecha pasada o una diferencia de fechas, pero el resultado tiene un día de diferencia, muestra un número de serie o devuelve un error. Esto ocurre porque SharePoint almacena las fechas como números de serie en hora universal coordinada y aplica la zona horaria de la colección de sitios solo al representar el valor. Este artículo explica la causa raíz de los errores de cálculo de fechas en columnas calculadas y te muestra cómo corregir la fórmula para obtener la fecha correcta.

Puntos clave: Cómo corregir cálculos de fechas en columnas calculadas de SharePoint

  • Usa la función DATE en lugar de cadenas de texto: Escribir =[Start Date]+30 funciona, pero =[Start Date]+”30″ devuelve un error o un número de serie.
  • Agrega un componente de hora para diferencias de fechas precisas: Usa =DATEDIF([Start Date],[End Date],”d”) para obtener días completos sin errores de redondeo.
  • Verifica la configuración de zona horaria de la colección de sitios: SharePoint almacena las fechas en UTC; la columna calculada puede mostrar una fecha con un día de diferencia si la zona horaria del sitio difiere de UTC.

ADVERTISEMENT

Por qué las columnas calculadas de SharePoint muestran la fecha incorrecta

SharePoint almacena cada valor de fecha y hora como un número de serie en hora universal coordinada. Cuando creas una columna calculada que hace referencia a una columna de fecha, el cálculo se ejecuta sobre el número de serie UTC, no sobre la fecha con formato que ves en la lista. La configuración de zona horaria de la colección de sitios le indica a SharePoint cómo mostrar la fecha, pero la fórmula de la columna calculada no aplica automáticamente ese desfase de zona horaria. Esta discrepancia hace que la fecha mostrada tenga un día de diferencia cuando la zona horaria del sitio está detrás o delante de UTC.

Otra causa común es usar cadenas de texto en operaciones aritméticas con fechas. SharePoint espera valores numéricos para los cálculos de fechas. Escribir una fórmula como =[Start Date]+"30" trata el número como texto y devuelve un número de serie o un error. El mismo problema ocurre cuando usas Today() o Now() en una columna calculada. Estas funciones devuelven la fecha actual en UTC, que puede diferir de la fecha de tu zona horaria local.

Una tercera causa es la forma en que SharePoint calcula las diferencias de fechas. La función DATEDIF funciona correctamente, pero la resta simple =[End Date]-[Start Date] devuelve un número decimal que representa la fracción de un día. Sin redondear, el resultado aparece como un decimal en lugar de un número entero de días.

Pasos para corregir una columna calculada que devuelve la fecha incorrecta

  1. Verifica la zona horaria de la colección de sitios
    Ve al centro de administración de SharePoint > Sitios activos > selecciona tu sitio > Configuración > Configuración regional. Anota la zona horaria. Si la zona horaria del sitio no es UTC, la columna calculada puede mostrar fechas con un día de diferencia. Para solucionarlo, suma o resta el desfase de zona horaria en la fórmula. Por ejemplo, para la hora estándar del este (UTC-5), usa =[Start Date] - 5/24 para ajustar el valor mostrado.
  2. Usa la función DATE para crear una fecha a partir de sus partes
    Si estás construyendo una fecha a partir de columnas de año, mes y día, usa la función DATE en lugar de concatenar cadenas. Ejemplo: =DATE([Year],[Month],[Day]). Esto devuelve un número de serie de fecha adecuado que SharePoint puede calcular correctamente.
  3. Suma un número, no texto, a una fecha
    Para sumar 30 días a una fecha de inicio, escribe =[Start Date]+30. No pongas el número entre comillas. Si escribes =[Start Date]+"30", SharePoint trata el 30 como texto y devuelve un error o un número de serie.
  4. Usa DATEDIF para diferencias de fechas
    Para calcular el número de días entre dos fechas, usa =DATEDIF([Start Date],[End Date],"d"). El argumento “d” devuelve días completos. Para meses, usa “m”. Para años, usa “y”. Esto evita el resultado decimal que produce la resta simple.
  5. Redondea el resultado de la resta de fechas
    Si debes usar la resta, envuelve el resultado con la función INT para eliminar la parte decimal. Ejemplo: =INT([End Date]-[Start Date]). Esto devuelve un número entero de días.
  6. Evita Today() y Now() en columnas calculadas
    Estas funciones devuelven la fecha y hora UTC, lo que puede hacer que la columna calculada muestre una fecha diferente a la esperada. Además, SharePoint solo recalcula estos valores cuando se modifica el elemento, no en cada carga de página. Usa un flujo de trabajo o un flujo de Power Automate para obtener la fecha actual en la zona horaria correcta.

ADVERTISEMENT

Errores comunes de cálculo de fechas y sus soluciones

La columna calculada muestra un número de cinco dígitos en lugar de una fecha

Esto ocurre cuando la fórmula devuelve un número de serie que SharePoint no reconoce como fecha. La causa más común es usar una cadena de texto en la fórmula. Por ejemplo, =[Start Date]+"7" devuelve un número de serie. Elimina las comillas: =[Start Date]+7. Si la columna sigue mostrando un número, cambia el tipo de columna de Línea de texto de una sola línea a Fecha y hora en la configuración de la columna.

La fecha tiene un día de diferencia después de sumar días

Es probable que la zona horaria de la colección de sitios sea diferente de UTC. Por ejemplo, si tu sitio usa la hora estándar del Pacífico (UTC-8), sumar 30 días a una fecha puede mostrar el resultado como el día anterior. Suma o resta el desfase de zona horaria en la fórmula. Para PST, usa =[Start Date]+30-8/24. Prueba con varias fechas para confirmar que el ajuste es correcto.

DATEDIF devuelve un error

La función DATEDIF requiere que la fecha de inicio sea anterior a la fecha de fin. Si la fecha de inicio es posterior a la fecha de fin, la función devuelve un error. Usa la función IF para intercambiar las fechas cuando sea necesario: =IF([Start Date]<[End Date],DATEDIF([Start Date],[End Date],"d"),DATEDIF([End Date],[Start Date],"d")). Esta fórmula siempre devuelve un número positivo de días.

La columna calculada no se actualiza cuando cambia la fecha de origen

Las columnas calculadas solo se recalculan cuando se guarda el elemento. Si cambias una columna de fecha en la lista y la columna calculada no se actualiza, edita y guarda el elemento de nuevo. Para actualizaciones automáticas, considera usar un flujo de Power Automate que actualice una columna de texto con la fecha calculada.

Columna calculada vs. Power Automate para cálculos de fechas

Elemento Columna calculada Power Automate
Manejo de zona horaria Usa UTC; se debe ajustar manualmente Puede usar la zona horaria local con la acción convertTimeZone
Recálculo Solo cuando se guarda el elemento Se ejecuta con el desencadenador (elemento creado, modificado o programado)
Lógica de fechas compleja Limitada a funciones de fórmula Admite expresiones, condiciones y bucles
Visualización en tiempo real Se muestra en la vista de lista de inmediato Actualiza una columna después de que se ejecuta el flujo (puede haber retraso)

Para sumas o restas de fechas simples donde la zona horaria es coherente, una columna calculada con el desfase correcto funciona bien. Para lógica compleja, como calcular días hábiles o manejar varias zonas horarias, usa Power Automate.

Ahora puedes corregir los cálculos de fechas en SharePoint usando valores numéricos en lugar de cadenas de texto, ajustando los desfases de zona horaria y eligiendo la función correcta para las diferencias de fechas. Comienza por verificar la zona horaria de la colección de sitios y actualizar tu fórmula para incluir el desfase. Para diferencias de fechas, usa DATEDIF con la función IF para evitar errores. Si la fórmula se vuelve demasiado compleja, traslada el cálculo a un flujo de Power Automate para tener mejor control sobre las zonas horarias y el momento de actualización.

ADVERTISEMENT