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.
  1. 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. 🔍

Módulo 10: La Tabla de Calendario con DAX y M

3 Tablas Excel Relacionadas
DAX Calendario .TXT

Related Articles

Responses

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *