La columna calculada devuelve una fecha incorrecta: causa raíz y solución
🔍 WiseChecker

La columna calculada devuelve una fecha incorrecta: causa raíz y solución

Creas una columna calculada en una lista de SharePoint que debería mostrar una fecha futura, una fecha pasada o una diferencia de fechas. En su lugar, la columna muestra una fecha que se desvía exactamente por un día o muestra un año inesperado. Este problema casi siempre ocurre porque SharePoint interpreta la fórmula de fecha de manera diferente a la esperada, a menudo debido al desfase de zona horaria o a la forma en que SharePoint almacena las fechas. Este artículo explica la causa raíz de los cálculos de fecha incorrectos en columnas calculadas de SharePoint y proporciona la corrección exacta de la fórmula.

Conclusiones clave: Cómo corregir fechas incorrectas en columnas calculadas

  • Función DateValue y fechas de texto: Siempre envuelve una cadena de fecha como “1/1/2025” en DateValue para evitar una interpretación incorrecta del año.
  • Función DATEDIF para diferencias de fechas: Usa DATEDIF para calcular correctamente el número de días, meses o años entre dos fechas.
  • Manejo del desfase de zona horaria: Suma o resta 0.5 (12 horas) para corregir el desfase interno de almacenamiento de fechas de SharePoint.

ADVERTISEMENT

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

SharePoint almacena las fechas internamente en tiempo universal coordinado (UTC). Cuando escribes una fecha directamente en una fórmula, SharePoint puede interpretar la fecha como una cadena de texto y convertirla usando la configuración regional del servidor. Esto puede hacer que la fecha se desplace un día hacia adelante o hacia atrás. Además, cuando usas aritmética básica como [End Date] + 1, SharePoint trata la fecha como un número de serie, pero el resultado puede verse afectado por el desfase de zona horaria.

Otra causa común es usar una fecha literal sin la función DateValue. Por ejemplo, escribir "1/1/2025" directamente en una fórmula no garantiza que SharePoint la trate como una fecha. En su lugar, SharePoint puede interpretarla como texto, lo que genera un error #¡VALOR! o una fecha incorrecta.

El problema del desfase de zona horaria

La columna de fecha de SharePoint almacena la fecha y la hora en UTC. Cuando calculas una diferencia de fechas o agregas días, la parte de la hora puede hacer que el resultado se desvíe un día. Por ejemplo, si la fecha almacenada es medianoche UTC (12:00 a. m.), pero tu zona horaria local es UTC+1, SharePoint podría mostrar la fecha como el día anterior. La solución es eliminar la parte de la hora de la fecha usando la función INT o ajustar con un desfase de 0.5.

Interpretación incorrecta del año con años de dos dígitos

Si ingresas una fecha con un año de dos dígitos, como "1/1/25", SharePoint puede interpretar el año como 1925 en lugar de 2025. Esto ocurre porque SharePoint usa un año de corte configurable (el valor predeterminado es 2029). Las fechas con años de dos dígitos por debajo de 30 se asumen en los años 2000, pero las fechas con años de dos dígitos de 30 en adelante se asumen en los años 1900. Esto puede hacer que las columnas calculadas devuelvan una fecha en el siglo equivocado.

Pasos para corregir cálculos de fecha incorrectos en SharePoint

Sigue estos pasos para corregir la fórmula de la columna calculada y asegurarte de que las fechas sean precisas.

  1. Abre la lista y edita la columna calculada
    Ve a la lista de SharePoint que contiene la columna calculada. Haz clic en el ícono de engranaje y selecciona Configuración de lista. En Columnas, haz clic en el nombre de la columna calculada que devuelve la fecha incorrecta.
  2. Revisa la fórmula en busca de fechas literales
    Si tu fórmula contiene una fecha codificada como “1/1/2025”, reemplázala con DateValue(“1/1/2025”). Esto asegura que SharePoint trate el texto como una fecha. Por ejemplo, cambia = [Start Date] + "1/1/2025" a = [Start Date] + DateValue("1/1/2025").
  3. Usa la función DATE para fechas fijas
    Si necesitas una fecha específica, usa la función DATE con tres argumentos: año, mes y día. Por ejemplo, = DATE(2025, 1, 1) devuelve el 1 de enero de 2025. Esto evita por completo los problemas de interpretación de texto.
  4. Corrige el desfase de zona horaria eliminando la hora
    Si la fecha se desvía un día, elimina la parte de la hora envolviendo la referencia de fecha con INT. Por ejemplo, cambia = [Due Date] + 7 a = INT([Due Date]) + 7. Esto elimina el componente de hora y agrega exactamente 7 días.
  5. Corrige el año de dos dígitos en la fórmula
    Si debes usar un año de dos dígitos, usa siempre la función DATE con un año de cuatro dígitos. Por ejemplo, = DATE(2025, 1, 1) en lugar de = DateValue("1/1/25"). Esto evita el problema del año de corte.
  6. Usa DATEDIF para diferencias de fechas
    Para calcular el número de días entre dos fechas, usa DATEDIF. Por ejemplo, = DATEDIF([Start Date], [End Date], "d") devuelve el número de días. Esta función maneja correctamente los números de serie de fecha y evita problemas de desfase de zona horaria.
  7. Prueba la fórmula con una fila de muestra
    Después de actualizar la fórmula, haz clic en Aceptar para guardar la columna. Agrega un nuevo elemento de lista o edita uno existente para verificar que la columna calculada muestre la fecha correcta. Verifica casos límite como fechas cercanas a la medianoche o límites de mes.

ADVERTISEMENT

Si la columna calculada aún muestra la fecha incorrecta

La fórmula devuelve un error #¡VALOR!

Este error generalmente significa que SharePoint no puede interpretar la cadena de fecha. Reemplaza cualquier texto de fecha codificado con la función DATE o DateValue. Además, asegúrate de que el formato de fecha utilizado en la fórmula coincida con la configuración regional del servidor. Por ejemplo, si el servidor usa dd/mm/aaaa, entonces DateValue(“1/2/2025”) devuelve el 1 de febrero, no el 2 de enero.

La fecha se desvía exactamente un día en un cálculo de diferencia de fechas

Esto ocurre cuando la parte de la hora de una fecha es posterior a la parte de la hora de la otra fecha. Por ejemplo, si [Start Date] es 1/1/2025 8:00 a. m. y [End Date] es 1/2/2025 7:00 a. m., la diferencia en días es menor a 24 horas. Usa la función DATEDIF con “d” para obtener la diferencia de días calendario, que ignora la parte de la hora. Alternativamente, usa = INT([End Date]) - INT([Start Date]) para eliminar la hora de ambas fechas.

La columna calculada muestra una fecha en el año 1899 o 1900

Esto ocurre cuando la fórmula devuelve un número que no es un número de serie de fecha válido. SharePoint trata el número 1 como el 1 de enero de 1900. Si tu fórmula da como resultado un número pequeño, puedes ver una fecha en 1900. Verifica que estás agregando días a una columna de fecha, no a un número. Por ejemplo, = [Start Date] + 7 es correcto, pero = 7 + [Start Date] también es correcto. Sin embargo, = [Start Date] + "7" trata “7” como texto y puede causar un error.

Función DATE vs DateValue: diferencias clave

Elemento Función DATE Función DateValue
Formato de entrada Tres números separados: año, mes, día Una cadena de texto: “mes/día/año”
Manejo del año Siempre usa el año tal como se proporciona; usa años de cuatro dígitos Interpreta años de dos dígitos según el año de corte del servidor; usa años de cuatro dígitos
Configuración regional No se ve afectada por el formato de fecha regional Se ve afectada por el formato de fecha regional (por ejemplo, dd/mm vs mm/dd)
Mejor caso de uso Fechas fijas en fórmulas, especialmente con años de cuatro dígitos Convertir una cadena de fecha de otra columna o entrada de usuario

Usa la función DATE cuando necesites una fecha fija que no deba cambiar según la configuración regional. Usa DateValue cuando necesites convertir una cadena de fecha de una columna de texto o cuando la fecha provenga de una fuente externa.

Ahora puedes corregir cualquier columna calculada que devuelva una fecha incorrecta. Comienza revisando tu fórmula en busca de texto de fecha codificado y reemplázalo con la función DATE. Además, aplica la función INT para eliminar los desfases de hora. Para diferencias de fechas, usa siempre DATEDIF. Si aún ves problemas, verifica que la configuración regional de tu sitio de SharePoint coincida con el formato de fecha que usas en la fórmula.

ADVERTISEMENT