Actualizas una consulta de Power Query en Excel y una columna de fecha de repente muestra números o texto en lugar de fechas. Esto ocurre cuando Power Query vuelve a evaluar el tipo de datos de la columna basándose en las primeras mil filas de los nuevos datos de origen. Si esas filas contienen valores que no son fechas o celdas en blanco, Power Query puede adivinar un tipo diferente. Este artículo explica por qué cambia el tipo y proporciona una solución permanente para fijar el tipo de la columna de fecha para que se mantenga consistente después de cada actualización.
Puntos clave: Fija el tipo de tu columna de fecha en Power Query
- Editor de Power Query > Transformar > Tipo de datos > Fecha: Establece manualmente la columna como tipo Fecha, pero esto puede restablecerse al actualizar si los datos de origen son inconsistentes.
- Editor de Power Query > Agregar columna > Columna personalizada con Date.From: Crea una columna calculada que siempre devuelve un valor de fecha, ignorando los cambios de tipo en el origen.
- Editor de Power Query > Reemplazar paso actual con Table.TransformColumnTypes: Edita el código M para forzar el tipo en cada actualización, incluso cuando los datos de origen varían.
Por qué Power Query cambia el tipo de la columna de fecha después de actualizar
Power Query utiliza una característica llamada detección de tipo. Cuando cargas datos por primera vez, muestrea las primeras 1,000 filas para adivinar el tipo de datos de cada columna. Si tu columna de fecha tiene una fecha en la primera fila, Power Query la establece como tipo Fecha. Después de una actualización, los datos de origen pueden haber cambiado. Por ejemplo, una nueva fila en la parte superior podría contener una celda en blanco o un valor de texto como “N/A”. Power Query vuelve a muestrear y puede asignar un tipo diferente, como Texto o Cualquiera. Esto hace que la columna muestre números o texto en lugar de fechas.
Otra causa común es una consulta combinada o anexada donde las tablas de origen tienen estructuras de columna diferentes. Si una tabla tiene una columna de fecha y otra tiene una columna de texto con cadenas similares a fechas, Power Query puede unificar el tipo a Texto. El mismo problema ocurre cuando importas datos de archivos CSV o bases de datos donde el tipo de columna no está definido explícitamente.
El problema de raíz es que Power Query reevalúa los tipos en cada actualización a menos que fuerces un tipo específico en el código M. Simplemente hacer clic en el icono de Fecha en el editor no siempre fija el tipo permanentemente. Necesitas cambiar cómo se aplica el tipo en los pasos de la consulta.
Pasos para fijar el tipo de la columna de fecha permanentemente
El siguiente método utiliza una columna personalizada con la función Date.From para asegurar que la columna siempre contenga valores de fecha. Este enfoque funciona incluso si los datos de origen tienen espacios en blanco o texto en la columna de fecha.
- Abrir el Editor de Power Query
En Excel, selecciona tu consulta en el panel Consultas y conexiones. Haz clic derecho en la consulta y elige Editar. Se abre la ventana del Editor de Power Query. - Agregar una columna personalizada
Ve a la pestaña Agregar columna en la cinta. Haz clic en Columna personalizada. En el cuadro de diálogo, ingresa un nombre para la nueva columna, como “DateFixed”. En el cuadro de fórmula, ingresaDate.From([YourDateColumnName]). ReemplazaYourDateColumnNamecon el nombre real de tu columna de fecha. Haz clic en Aceptar. - Eliminar la columna de fecha original
Selecciona la columna de fecha original haciendo clic en su encabezado. Haz clic derecho y elige Quitar. La nueva columna ahora contiene los valores de fecha. - Establecer el tipo de datos de la nueva columna
Haz clic en el icono de tipo de datos junto al encabezado de la columna. Elige Fecha en la lista desplegable. Este paso es opcional pero ayuda a Excel a mostrar los valores correctamente. - Cerrar y cargar la consulta
Ve a la pestaña Inicio y haz clic en Cerrar y cargar. La consulta se actualiza y carga los datos en Excel. La columna de fecha ahora usa la funciónDate.Fromen cada actualización.
Método alternativo: Editar el código M directamente
Si prefieres mantener el nombre de la columna original, puedes editar el código M para forzar el tipo. En el Editor de Power Query, ve a la pestaña Vista y haz clic en Editor avanzado. Encuentra el paso que establece el tipo de columna. Se ve así: Table.TransformColumnTypes(#"Previous Step",{{"DateColumn", type date}}). Reemplaza type date con Date.Type y agrega una expresión try para manejar errores. Una versión más segura es:
Table.TransformColumnTypes(#"Previous Step",{{"DateColumn", each Date.From(_), type date}})
Este código le dice a Power Query que convierta la columna usando Date.From y luego establezca el tipo a fecha. Esto anula la detección automática de tipo.
Si la columna de fecha aún cambia de tipo después de la solución
Power Query muestra un error al usar Date.From
Si los datos de origen contienen valores que no se pueden convertir a fecha, la función Date.From devuelve un error. Para manejar esto, usa try Date.From([DateColumn]) otherwise null en la fórmula de la columna personalizada. Esto devuelve null para valores no válidos en lugar de romper la consulta.
El tipo de columna se restablece a Texto después de combinar consultas
Cuando combinas dos consultas, Power Query puede unificar el tipo de la columna combinada a Texto. Aplica el paso de columna personalizada después de la operación de combinación. En el Editor de Power Query, selecciona el paso después de la combinación y luego agrega la columna personalizada. Esto asegura que la conversión de fecha se ejecute en el conjunto de datos final.
Power Query cambia automáticamente el tipo al importar desde CSV
Al importar archivos CSV, Power Query puede interpretar mal las columnas de fecha como Texto si las primeras 1,000 filas contienen celdas vacías. Usa la pestaña Transformar y selecciona Detectar tipo de datos después de aplicar la columna personalizada. Alternativamente, cambia la configuración de importación a Detección de tipo de datos > No detectar tipos de datos en la pestaña de inicio del Editor de Power Query antes de cargar.
Configuración manual de tipo vs columna personalizada con Date.From: Diferencias clave
| Elemento | Configuración manual de tipo | Columna personalizada con Date.From |
|---|---|---|
| Cómo funciona | Power Query establece el tipo de columna basándose en las primeras 1,000 filas | Power Query convierte cada fila usando la función Date.From |
| Estabilidad en la actualización | Puede cambiar si los datos de origen varían | Siempre devuelve una fecha o null |
| Manejo de errores | Power Query puede cambiar el tipo a Texto si encuentra valores que no son fechas | Puedes agregar try/otherwise para manejar valores no válidos |
| Rendimiento | Rápido, sin cálculo adicional | Ligeramente más lento debido a la conversión fila por fila |
| Mejor para | Datos de origen estables sin espacios en blanco o texto en la columna de fecha | Datos de origen inestables, consultas combinadas o importaciones CSV |
Ahora puedes solucionar una columna de fecha que cambia de tipo después de actualizar en Power Query. Comienza agregando una columna personalizada con Date.From y eliminando la columna original. Si aparecen errores, agrega try y otherwise null a la fórmula. Para un control avanzado, edita el código M directamente con Table.TransformColumnTypes y una función personalizada. Como siguiente paso, explora la documentación de Table.TransformColumnTypes para aprender cómo aplicar el bloqueo de tipo a múltiples columnas a la vez.