Crea Tablas Calendario en Power BI con Power Query ¡Fácil y Rápido ! 📅
¡Crea una tabla calendario en Power BI usando Power Query de forma súper fácil y rápida! Aprende paso a paso cómo generar una tabla de fechas con el editor de Power Query y el lenguaje M, sin complicaciones. 💻📊
Lógica de la tabla calendario:
- Genera una lista de fechas continuas desde el 01/01 del año mínimo hasta el 31/12 del año máximo.
- Extrae columnas derivadas: año, mes, trimestre, día, etc.
- Usa solo la columna Fecha de Ventas como referencia (no otras tablas).
Paso 1: Crear una consulta en blanco en Power Query 🛠️
Inicia una nueva consulta para construir la tabla calendario.
- Ve a Inicio > Transformar Datos para abrir el Editor de Power Query.
- En el panel de consultas (izquierda), haz clic derecho > Nueva Consulta > Consulta en Blanco.
- Nómbrala CalendarioM (haz clic derecho en la consulta > Cambiar Nombre).
Paso 2: Seleccionar la columna de fechas 📅
Extrae la columna Fecha de la tabla Ventas.
En la barra de fórmulas del Editor de Power Query, escribe:
= T_Ventas[Fecha]
- Explicación:
- Ventas: Nombre de la tabla.
- [Fecha]: Nombre de la columna (escribe entre corchetes, usa Alt + 91 para «[» y Alt + 93 para «]»).
- Presiona Enter: Obtienes una lista con todas las fechas de la columna Fecha.
Nombra este paso Origen (visible en el panel Pasos Aplicados a la derecha).
Paso 3: Capturar la fecha mínima (FechaMin) 📆
Extrae el año mínimo y crea la fecha 01/01 del año correspondiente.
Crea un nuevo paso:
- Haz clic en el ícono fx (nuevo paso) en la barra de fórmulas.
- Nombra el paso FechaMin (en Propiedades > cambia «Paso Personalizado» a FechaMin).
Escribe la fórmula:
= List.Min(Origen)
- Explicación:
- List.Min: Función que devuelve el valor mínimo de la lista Origen (fechas de Ventas).
- Resultado: 06/01/2023 (fecha mínima en Ventas).
- Presiona Enter.
Extrae el año y crea 01/01:
- Modifica la fórmula:
M = #date(Date.Year(List.Min(Origen)), 1, 1)
- Explicación:
- Date.Year: Extrae el año de la fecha mínima (2023).
- #date(año, mes, día): Crea una fecha con el año extraído, mes 1 (enero), día 1.
- Resultado: 01/01/2023.
- Presiona Enter: Confirma que el resultado es 01/01/2023.
Paso 4: Capturar la fecha máxima (FechaMax) 📆
Extrae el año máximo y crea la fecha 31/12 del año correspondiente.
Crea un nuevo paso:
- Haz clic en fx para un nuevo paso.
- Nombra el paso FechaMax.
Escribe la fórmula:
= #date(Date.Year(List.Max(Origen)),12,31)
- Explicación:
- List.Max: Devuelve la fecha máxima de Origen (30/12/2024).
- Date.Year: Extrae el año (2024).
- #date(año, mes, día): Crea una fecha con el año extraído, mes 12 (diciembre), día 31.
- Resultado: 31/12/2024.
- Presiona Enter: Confirma que el resultado es 31/12/2024.
Paso 5: Crear un rango de fechas 🔢
Genera una lista de fechas consecutivas desde FechaMin hasta FechaMax.
Crea un nuevo paso:
- Haz clic en fx para un nuevo paso.
- Intenta crear un rango:
Escribe:M = {FechaMin..FechaMax}
Explicación: Usa el operador .. para crear un rango (similar a {1..100}
).
Problema: Power Query no permite el operador .. directamente con fechas, generando un error. 🚨
Convierte las fechas a números:
- Modifica la fórmula:
= {Number.From(FechaMin)..Number.From(FechaMax)}
- Explicación:
- Number.From: Convierte las fechas (FechaMin, FechaMax) a números (formato serial de fecha).
- {…}: Crea un rango numérico desde el número de FechaMin (01/01/2023) hasta FechaMax (31/12/2024).
- Resultado: Una lista de números que representan fechas.
- Presiona Enter.
Convertir a tabla:
- Selecciona la lista, ve a Transformar > o haz clic en el ícono A la Tabla
- Acepta los valores predeterminados y haz clic en Aceptar.
- Cambia el nombre de la columna a Fecha (haz doble clic en el encabezado).
Convertir a tipo fecha:
- Selecciona la columna Fecha, ve a Transformar > Tipo de Datos > Fecha.
- Verifica: La tabla muestra fechas desde 01/01/2023 hasta 31/12/2024 en orden ascendente. 😄
Paso 6: Añadir columnas derivadas 📊
Agrega columnas como año, mes, trimestre, etc.
- Selecciona la columna Fecha en la tabla CalendarioM.
- Ve a Agregar Columna > Fecha y selecciona:
- Año > Año: Crea una columna con el año (por ejemplo, 2023, 2024).
- Mes > Nombre del Mes: Crea una columna con el nombre del mes (Enero, Febrero, etc.).
- Mes > Mes: Crea una columna con el número del mes (1, 2, …, 12).
- Trimestre > Trimestre: Crea una columna con el trimestre (1, 2, 3, 4).
- Día > Día: Crea una columna con el día (1, 2, …, 31).
- Opcional: Añade más columnas según necesites (por ejemplo, Día de la Semana, Nombre del Día).
- Cambia los nombres de las columnas si es necesario (haz doble clic en los encabezados). Ejemplo:
- Año: Año.
- Nombre del Mes: Mes.
- Mes: Mes#.
- Trimestre: Trimestre#.
- Día: Día#.
Paso 7: Copiar el código M (Opcional) 📜
Guarda el código generado para reutilizarlo.
- Ve a Inicio > Editor Avanzado en el Editor de Power Query.
- Copia el código M generado:
- Pega el código en un editor de texto (como Bloc de Notas) para guardarlo.
- Nota: Si usas este código en otro proyecto, cambia:
- Ventas por el nombre de tu tabla.
- Fecha por el nombre de tu columna de fechas.
Paso 8: Aplicar y cerrar Power Query ✅
Guarda los cambios y carga la tabla en Power BI.
- Ve a Inicio > Cerrar y Aplicar en el Editor de Power Query.
Paso 9: Configurar la tabla calendario en Power BI ⚙️
Aplica los 5 pasos esenciales para configurar la tabla.
Establecer tipo de datos:
- En Vista de Datos, selecciona la columna Fecha en CalendarioM.
- Ve a Propiedades > Tipo de Datos > Fecha.
- Verifica que otras columnas (como Año, Mes#) estén en el tipo correcto (por ejemplo, Número Entero).
Marcar como tabla de fechas:
- Selecciona la tabla CalendarioM en Vista de Datos.
- Ve a Herramientas de Tabla > Marcar como Tabla de Fechas.
- En el cuadro de diálogo, selecciona la columna Fecha como la columna de fecha.
- Haz clic en Guardar.
- Nota: Si ya tienes una tabla calendario (por ejemplo, creada con DAX), elimina la anterior para evitar conflictos (haz clic derecho > Eliminar).
Relacionar la tabla:
- Ve a Vista de Modelo.
- Arrastra la columna Fecha de CalendarioM a la columna Fecha de Ventas.
- Confirma la relación 1 a Muchos (1 en CalendarioM, * en Ventas).
- Explicación: CalendarioM tiene fechas únicas (no repetidas), mientras que Ventas puede tener múltiples registros por fecha.
- Haz clic en Aceptar y Guardar.
Ordenar los meses:
- En Vista de Datos, selecciona la columna Mes (nombres de meses, por ejemplo, Enero, Febrero).
- Ve a Herramientas de Columna > Ordenar por Columna > Selecciona Mes# (números 1 a 12).
- Repite para otras columnas si es necesario (por ejemplo, Mes Corto).
Establecer «No Resumir»:
- Selecciona las columnas numéricas (Año, Mes#, Trimestre#, Día#) en Vista de Datos.
- Ve a Propiedades > Resumir por > No Resumir.
- Explicación: Evita que Power BI sume o promedie estas columnas (son identificadores, no valores para cálculos).
- Nota: Si usas estas columnas en tablas visuales sin «No Resumir», pueden sumarse incorrectamente.
¿Por qué usar Power Query vs. DAX? 🤔
- Power Query (Lenguaje M):
- Ventajas:
- Más rápido y fácil: Crea la tabla con clics en el editor, sin escribir fórmulas complejas.
- Genera código M reutilizable (cópialo para otros proyectos).
- Ideal para transformaciones de datos antes de cargarlos en el modelo.
- Cuándo usarlo: Si prefieres una interfaz visual y transformaciones automáticas.
- DAX:
- Ventajas:
- Más flexible para personalizar columnas derivadas (por ejemplo, cálculos complejos).
- Integrado en el modelo de Power BI, sin necesidad de transformar datos previamente.
- Cuándo usarlo: Si necesitas control total sobre las fórmulas o trabajas con modelos dinámicos.
- Recomendación: Usa Power Query para rapidez y simplicidad, y DAX para personalización avanzada. Ambos son válidos, pero Power Query es más accesible para principiantes. 🌟
Cierre 🎬
¡Increíble! 🎉 Ahora sabes crear una tabla calendario en Power BI con Power Query de forma fácil y rápida, usando el lenguaje M. Configuraste la tabla, la relacionaste, y ordenaste las columnas correctamente. Practica con el archivo descargado y compara con el método DAX. ¿Dudas? Déjalas en los comentarios. ¡Nos vemos en el próximo capítulo! 👋
Notas Adicionales 📝
- Enlaces: Descarga el archivo Excel y revisa el curso gratuito (módulo 10, capítulo 84). 😊
- Lenguaje M: No necesitas dominarlo; los pasos en el Editor de Power Query generan el código automáticamente.
- Errores Comunes:
- TypeName: Asegúrate de usar mayúsculas/minúsculas correctas en funciones M (por ejemplo, Date.Year, no date.year).
- Relaciones: Verifica que la relación sea 1 a Muchos para evitar errores en visualizaciones.
- No Resumir: Configura todas las columnas numéricas para evitar sumas incorrectas.
- Consejo: Guarda el código M para reutilizarlo en otros proyectos, ajustando solo el nombre de la tabla y columna. 🔍
Responses