(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

PL-300: cómo crear columnas de fecha inteligentes para análisis temporales

João Barros 10 de September de 2026 4 min de lectura

Te enseñaré cómo crear y usar columnas de fecha (tabla de calendario) en Power BI — una competencia frecuente en el dominio "Modelar los datos" del PL-300. Saber construir un calendario correcto es esencial para análisis temporales (periodo a periodo, YTD, comparaciones) y evita errores en los informes y en los cálculos DAX.

Qué necesitas saber

Una tabla de calendario (o dimensión de fecha) contiene una fila para cada día en un intervalo y columnas con atributos como Año, Trimestre, Mes, Día de la semana, además de flags como "Es fin de mes" o "Es fin de semana". En Power BI, permite usar funciones de inteligencia temporal en DAX (por ejemplo, TOTALYTD, SAMEPERIODLASTYEAR) y garantiza que las relaciones entre fechas y fact tables funcionen correctamente.

Ejemplo simple: una fact table de Ventas con la columna Venta[OrderDate]. Para calcular Sales YTD correctamente necesitas una tabla Date con una columna Date[Date] que incluya todas las fechas del intervalo relevante y, idealmente, un campo que indique el primer día del mes o del año.

Cómo funciona: crear una tabla de calendario con DAX

Hay varias formas de crear un calendario: en Power Query (M), como tabla física en una base de datos, o con DAX (tabla calculada). Aquí muestro un método DAX que es práctico para modelos en Power BI Desktop.

Calendar =
VAR MinDate = MINX(ALL('Sales'), 'Sales'[OrderDate])
VAR MaxDate = MAXX(ALL('Sales'), 'Sales'[OrderDate])
RETURN
ADDCOLUMNS(
    CALENDAR(MinDate, MaxDate),
    "Year", YEAR([Date]),
    "Quarter", "Q" & FORMAT([Date], "Q"),
    "MonthNum", MONTH([Date]),
    "MonthName", FORMAT([Date], "MMMM"),
    "YearMonth", FORMAT([Date], "YYYY-MM"),
    "DayOfWeekNum", WEEKDAY([Date], 2),
    "DayOfWeek", FORMAT([Date], "dddd"),
    "IsWeekend", IF(WEEKDAY([Date],2) >= 6, TRUE(), FALSE())
)

Explicación rápida de las partes:

  • CALENDAR(MinDate, MaxDate) genera todas las fechas entre el mínimo y máximo de las ventas.
  • ADDCOLUMNS añade columnas útiles: Year, Quarter, MonthName, etc.
  • WEEKDAY([Date], 2) con 2 hace lunes=1 ... domingo=7 — útil para ordenación.

En la práctica: vincular la tabla de calendario y usar medidas

Pasos prácticos a seguir en Power BI Desktop:

  1. Crear la tabla de calendario (ej.: tabla calculada con DAX anterior o en Power Query).
  2. Asegurar que la columna de fecha en la tabla Calendar es del tipo Date y sin horas.
  3. Crear una relación 1:* entre Calendar[Date] y Sales[OrderDate], con dirección de filtro adecuada (normalmente single direction de Calendar a Sales).
  4. Marcar la tabla como "Mark as Date table" (Modeling > Mark as date table) e indicar Calendar[Date]. Esto permite que las funciones de inteligencia temporal DAX funcionen correctamente.
  5. Usar medidas DAX de tiempo. Ejemplo: Sales YTD.
SalesAmount = SUM(Sales[Amount])

SalesAmount_YTD =
TOTALYTD(
    [SalesAmount],
    'Calendar'[Date]
)

SalesAmount_PY =
CALCULATE(
    [SalesAmount],
    SAMEPERIODLASTYEAR('Calendar'[Date])
)

Notas prácticas: marcar la tabla de fecha es crucial; sin esto, TOTALYTD y funciones similares pueden devolver resultados incorrectos. Ordena visualmente el mes por MonthNum si usas MonthName para evitar Enero, Febrero,... fuera de orden.

Errores comunes

  • No marcar la tabla como "Date table" — provoca fallo de las funciones de inteligencia temporal.
  • Fechas con hora en Sales[OrderDate] no coinciden con Calendar[Date] (tipo DateTime vs Date) — resolver con truncamiento o transformar a Date.
  • Relaciones incorrectas (muchos-a-muchos o dirección de filtro invertida) — la relación debe ser 1 (Calendar) → * (Fact) para que las funciones temporales funcionen bien.

Cómo practicar

Practica este tema creando varios escenarios: intervalos con huecos, fact tables con múltiples columnas de fecha (OrderDate, ShipDate), y usando filtros de slicer por mes/año. Para preparación para el PL-300, utiliza el Practice Assessment oficial gratuito de Microsoft y la study guide oficial (ambos gratuitos) — estas son las formas apropiadas de evaluarte y verificar los conocimientos sin recurrir a materiales prohibidos.

En resumen

  • Crea una tabla de calendario completa y márcala como "Date table" para habilitar funciones de inteligencia temporal en DAX.
  • Asegura que la columna de fecha tiene solo fechas (sin hora) y que la relación es 1:*> entre Calendar y la tabla de hechos.
  • Usa columnas adicionales (Year, MonthNum, DayOfWeek) para ordenar y agrupar correctamente en las visualizaciones.
  • Practica con el Practice Assessment oficial y la study guide de Microsoft — ambos gratuitos — y prueba a calcular YTD, MTD y comparaciones año a año.