Módulo 10 · 📅

La tabla calendario

Crear una tabla calendario con DAX y con M, y usarla para análisis en el tiempo.

Temas del módulo

Marca cada tema cuando lo domines. Tu avance se guarda en este navegador.

🇩🇴 Caso dominicano

Comparar temporadas turísticas y días feriados dominicanos año contra año.

🛠️ Práctica paso a paso

La guía paso a paso de esta práctica está en preparación.

Clase

Módulo 10: La Tabla Calendario en Power BI

1. ¿Por qué hace falta una tabla calendario?

El Calendario de Pared vs. El Recibo de Supermercado

Para entender por qué Power BI exige una tabla de fechas dedicada, imagine la diferencia entre un recibo de supermercado y un calendario de pared. El recibo solo registra la fecha exacta de su compra; si usted no fue al súper el martes, ese martes simplemente no existe en su fajo de recibos. Por el contrario, el calendario de pared tiene todos los días del año marcados, permitiéndole ver claramente los fines de semana, los feriados y los días donde "no pasó nada".

En Power BI, si usted intenta analizar sus datos usando solo la columna de fecha de su tabla de ventas, su modelo tendrá "huecos" o baches los días que no hubo transacciones. Una tabla calendario funciona como ese calendario de pared: nos da una estructura de fechas corridas para que los reportes no se queden "cojos".

Caso de Uso Dominicano: Temporada Turística en Punta Cana

Piense en un hotel en Punta Cana que necesita comparar el flujo de turistas de la "Semana Santa" de este año contra el anterior. Como la Semana Santa es una fecha móvil, si usted no tiene un calendario continuo que cubra todos los días, las funciones de "Inteligencia de Tiempo" no podrán cuadrar los datos. Power BI necesita saber que entre el lunes y el viernes santo pasaron días específicos, aunque no se hayan registrado reservas en un sistema particular, para poder comparar periodos de forma justa.

Requisitos Técnicos

Según las mejores prácticas, para que una tabla sea considerada un calendario oficial, debe cumplir con: * Fechas continuas: No pueden faltar días (sin saltos del 1ero al 3 de enero). * Sin duplicados: Cada fecha aparece una sola vez. * Rango completo: Debe ir desde el 1 de enero hasta el 31 de diciembre.

Error Común: El Salto al Vacío

Un error de principiante es usar funciones como SAMEPERIODLASTYEAR directamente sobre la fecha de la tabla de ventas. Si un día no hubo ventas, la función se confunde y los números no van a cuadrar. La solución es siempre crear la relación entre su tabla de ventas y una tabla calendario independiente.


2. Creación de la Tabla Calendario con DAX

Construir un mueble a medida

Crear la tabla con DAX es como "construir un mueble a medida". Nosotros mismos escribimos las instrucciones exactas para que Power BI fabrique la tabla dentro del modelo usando el motor de cálculos.

Paso a Paso en Power BI Desktop

  1. Vaya a la pestaña Vista de tabla o al menú Modelado.
  2. Haga clic en el botón Nueva tabla.
  3. En la barra de fórmulas, escriba el siguiente código profesional:
Calendario = 
ADDCOLUMNS (
    CALENDAR ( DATE ( 2023, 1, 1 ), DATE ( 2024, 12, 31 ) ),
    "Año", YEAR ( [Date] ),
    "Mes", FORMAT ( [Date], "MMMM" ),
    "NroMes", MONTH ( [Date] ),
    "Trimestre", "T" & FORMAT ( [Date], "Q" )
)

Configuración Crucial: Marcar como tabla de fechas

Una vez creada la tabla, debe ir al menú Herramientas de tablas y seleccionar Marcar como tabla de fechas. Esto es vital por dos razones: 1. Eficiencia: Elimina los "calendarios ocultos" que Power BI crea por defecto para cada columna de fecha, haciendo el modelo más ligero. 2. Precisión: Deshabilita las jerarquías automáticas para que las funciones de Inteligencia de Tiempo operen correctamente sobre su tabla personalizada.

Ejemplo Dominicano: Ventas del Día de las Madres

Para comparar las ventas del "Día de las Madres" actual contra el pasado, use esta medida: Ventas Año Anterior = CALCULATE([Total Ventas], SAMEPERIODLASTYEAR('Calendario'[Date]))

Error Común: Falta de continuidad

Si su función CALENDAR se salta días o feriados, los cálculos acumulados darán error. Asegúrese siempre de que su rango empiece el 1 de enero para que la inteligencia de tiempo no se pierda.


3. Tabla Calendario con Power Query (M)

La Planta de Purificación de Agua

Si DAX es un mueble, Power Query es una "Planta de Purificación de Agua". Aquí limpiamos y preparamos los datos antes de que lleguen al reporte. Es el método más eficiente para modelos con grandes volúmenes de información.

Paso a Paso en el Editor de Power Query

  1. En la pestaña Inicio, haga clic en Transformar datos.
  2. Vaya a Nuevo origen > Consulta en blanco.
  3. Para generar los atributos de fecha, usaremos la pestaña Agregar columna > Columna personalizada.
  4. Uso de lenguaje M: Para obtener el nombre del mes de forma técnica, use la función Date.MonthName([Fecha]).

Limpieza y Formato (Trucos de Experto)

Error Crítico: El tipo de dato "Cualquiera"

Si olvida corregir el tipo de dato en el icono del encabezado, su tabla será solo una lista de texto y no podrá usarla para comparar periodos. Asegúrese de ver el icono del pequeño calendario en el encabezado antes de cargar.


4. Resumen y Repaso

Tabla Comparativa: ¿DAX o Power Query?

Característica DAX (CALENDAR) Power Query (M)
Velocidad de carga Más lento (se calcula al abrir) Más rápido (llega procesado)
Flexibilidad Alta (fórmulas rápidas) Media (requiere pasos de ETL)
Uso ideal Tablas pequeñas o cálculos rápidos Grandes volúmenes de datos
Complejidad Requiere saber funciones DAX Requiere pasos visuales en el editor

Resumen Ejecutivo

  1. Fechas Corridas: La continuidad es innegociable; sin ella, la inteligencia de tiempo falla.
  2. Identidad: Siempre use Marcar como tabla de fechas para ganar eficiencia y precisión.
  3. DAX: Ideal para "construir a medida" dentro del modelo con ADDCOLUMNS.
  4. Power Query: Es nuestra "planta de purificación" para limpiar espacios con Recortar.
  5. Fidelidad: La función Date.MonthName en M asegura nombres de meses correctos desde el origen.

Preguntas de Repaso

  1. ¿Cuál es el requisito principal para que una tabla calendario permita cálculos de inteligencia de tiempo?

    • a) Que tenga solo los días laborales.
    • b) Que sea continua (fechas corridas) y sin duplicados.
    • c) Que esté vinculada a un Excel externo obligatoriamente.
  2. ¿Qué función DAX nos permite agregar columnas de Año o Mes al mismo tiempo que creamos el rango de fechas?

    • a) CALENDAR
    • b) ADDCOLUMNS
    • c) FILTER
  3. ¿Qué sucede al "Marcar como tabla de fechas" en Power BI?

    • a) La tabla se pone de color verde.
    • b) Se eliminan los calendarios ocultos automáticos, haciendo el modelo más eficiente.
    • c) Se borran todos los datos de la tabla para empezar de nuevo.
  4. ¿Cómo se llama la función en Power Query (M) para extraer el nombre del mes?

    • a) Month.Name
    • b) Date.MonthName
    • c) TEXT.Month
  5. ¿Cómo se asegura de que Power BI reconozca la columna de fecha correctamente en Power Query?

    • a) Cambiando el nombre de la columna a "Día".
    • b) Haciendo clic en el icono del encabezado y seleccionando el tipo "Fecha".
    • c) Creando una relación de uno a muchos antes de importar.

Hoja de Respuestas

  1. b) Que sea continua (fechas corridas) y sin duplicados.
  2. b) ADDCOLUMNS
  3. b) Se eliminan los calendarios ocultos automáticos, haciendo el modelo más eficiente.
  4. b) Date.MonthName
  5. b) Haciendo clic en el icono del encabezado y seleccionando el tipo "Fecha".