La fecha de Power Query en Excel aparece como 12/31/1899: cómo corregir la conversión de valores cero
🔍 WiseChecker

La fecha de Power Query en Excel aparece como 12/31/1899: cómo corregir la conversión de valores cero

Es posible que veas fechas en los resultados de Power Query mostradas incorrectamente como 12/31/1899. Esto ocurre cuando Power Query convierte una celda en blanco o con valor cero en una fecha. El sistema interpreta el cero como el punto de partida de su sistema de números de serie de fechas. Este artículo explica por qué ocurre este error de conversión y proporciona pasos claros para corregirlo.

Puntos clave: Cómo corregir el error de fecha 12/31/1899

  • Cambiar el tipo de dato de la columna a Texto: Evita que Power Query interprete incorrectamente valores en blanco o cero como el número de serie de fecha cero.
  • Reemplazar valores nulos o cero: Usa la función Reemplazar valores para sustituir los valores problemáticos por un verdadero espacio en blanco antes de convertir a fecha.
  • Usar la función Table.TransformColumnTypes: Aplica código M avanzado para manejar errores de conversión y reemplazarlos con nulo.

ADVERTISEMENT

Por qué Power Query muestra cero como 12/31/1899

Excel y Power Query utilizan un sistema de números de serie de fechas donde cada fecha se almacena como un número. La fecha base, o día cero, en este sistema es el 30 de diciembre de 1899. El número 1 representa el 31 de diciembre de 1899. Cuando Power Query importa datos, intenta detectar el tipo de dato correcto para cada columna. Si una columna contiene principalmente fechas pero también tiene celdas en blanco o celdas con un valor de cero, Power Query puede asignar el tipo de dato Fecha a toda la columna.

El problema surge porque un espacio en blanco real en los datos de origen se lee como un valor nulo, pero una celda que contiene un cero se lee como el número cero. Cuando Power Query intenta convertir el número cero a una fecha, devuelve el número de serie de fecha para el día cero, que es 12/31/1899. Esto no es un error, sino una consecuencia de cómo está diseñado el sistema de fechas. La solución implica limpiar los datos antes de que ocurra la conversión de tipo.

Pasos para corregir el error de fecha 12/31/1899

Sigue estos métodos para limpiar tus datos y evitar la conversión de fecha cero. Comienza con el método más simple primero.

Método 1: Cambiar el tipo de dato a Texto primero

  1. Cargar tus datos en el Editor de Power Query
    Selecciona tu tabla de datos en Excel, luego ve a la pestaña Datos y haz clic en Desde tabla/rango. Esto abre la ventana del Editor de Power Query.
  2. Cambiar la columna problemática a tipo Texto
    Haz clic en el icono de tipo de dato junto al encabezado de la columna. Puede mostrar Fecha o Cualquier. En el menú desplegable, selecciona Texto. Esta acción evita cualquier interpretación numérica automática de los valores.
  3. Limpiar los valores cero y en blanco
    Haz clic en la flecha desplegable en el encabezado de la columna. Desmarca los valores (null) y 0 si están listados, o usa los Filtros de texto para eliminarlos. Alternativamente, puedes usar la herramienta Reemplazar valores.
  4. Convertir la columna limpia a tipo Fecha
    Después de eliminar ceros y nulos, haz clic en el icono de tipo de dato de la columna nuevamente. Esta vez, selecciona Fecha. Solo las entradas de texto válidas se convertirán, evitando el error de 1899.
  5. Cerrar y cargar la consulta
    Haz clic en Inicio > Cerrar y cargar. Tus datos corregidos se cargarán en una nueva hoja de cálculo sin las fechas incorrectas.

Método 2: Usar Reemplazar valores antes de convertir

  1. Abrir el Editor de Power Query
    Asegúrate de que tus datos con la columna de fecha estén cargados en el editor.
  2. Seleccionar la columna y abrir Reemplazar valores
    Haz clic derecho en el encabezado de la columna de fecha. Elige Reemplazar valores en el menú contextual. Aparecerá el cuadro de diálogo Reemplazar valores.
  3. Reemplazar cero con un marcador de posición nulo
    En el campo Valor para buscar, escribe 0. Deja el campo Reemplazar con vacío. Haz clic en Aceptar. Esto cambia todos los ceros a valores nulos, que Power Query maneja de manera diferente.
  4. Convertir la columna al tipo Fecha
    Ahora, cambia el tipo de dato de la columna a Fecha. Los valores nulos permanecerán como espacios en blanco, y los números válidos se convertirán a fechas correctas.

ADVERTISEMENT

Si el error de fecha persiste después de la limpieza

Power Query aún muestra 1899 después de cambiar el tipo

Si el error persiste, los pasos aplicados pueden estar en el orden incorrecto. En el Editor de Power Query, mira el panel Pasos aplicados a la derecha. El paso Tipo cambiado debe venir después de cualquier paso de limpieza como Valor reemplazado. Puedes arrastrar los pasos en este panel para reordenarlos. Asegúrate de que Reemplazar valores o Filas filtradas ocurra antes de la conversión de tipo a Fecha.

Los datos de origen tienen valores cero ocultos o fórmulas

Tu tabla original de Excel puede contener celdas que parecen vacías pero tienen una fórmula que devuelve una cadena vacía o un cero. Power Query lee el resultado de la fórmula, no la celda mostrada. Antes de importar, convierte estas fórmulas a valores estáticos. Copia la columna en tu hoja de origen y usa Pegado especial > Valores para eliminar las fórmulas. Luego actualiza tu conexión de Power Query.

Usar el Editor avanzado para el manejo de errores

Para un control total, puedes usar código M en el Editor avanzado. Puedes modificar el paso de conversión de tipo para manejar errores. Busca una línea de código como Table.TransformColumnTypes(#"Previous Step",{{"YourColumn", type date}}). Puedes reemplazarla con una versión más robusta que reemplace errores con nulo: Table.TransformColumnTypes(#"Previous Step",{{ "YourColumn", type date}}, "en-US"). Aunque esta función específica no captura todos los errores, asegura un formato regional adecuado. Para un manejo de errores complejo, es posible que necesites agregar una columna personalizada con una expresión try…otherwise.

Métodos de conversión de tipo de dato: Comparación

Elemento Cambiar tipo mediante interfaz Reemplazar valores primero Código M avanzado
Mejor para Conjuntos de datos simples con espacios en blanco obvios Conjuntos de datos que contienen valores cero explícitos Procesos de datos complejos y recurrentes
Complejidad Baja Media Alta
Manejo de errores Convierte cero a 12/31/1899 Evita el error reemplazando cero con nulo Puede escribirse para capturar y gestionar todos los errores de conversión
Dependencia del orden de pasos Crítica: debe limpiar los datos primero Crítica: el reemplazo debe ocurrir antes del cambio de tipo Flexible: la lógica está integrada en el paso de código
Fiabilidad de actualización Puede fallar si aparecen nuevos ceros en el origen Fiable si la lógica de reemplazo cubre todos los casos Más fiable si el código está escrito correctamente

Ahora puedes corregir el error de fecha 12/31/1899 cambiando tu columna a Texto primero o usando la herramienta Reemplazar valores. Asegúrate siempre de que los pasos de limpieza de datos ocurran antes de la conversión final de tipo a Fecha en tu panel Pasos aplicados. Para informes automatizados, considera agregar un paso de Reemplazar valores que apunte a cero para hacer tu consulta robusta contra futuros errores de entrada de datos. Usa Ctrl + Clic para seleccionar varios encabezados de columna si necesitas aplicar la misma corrección a varias columnas de fecha a la vez.

ADVERTISEMENT