Tabla calendario en Power BI: guía completa

Calendario continuo relacionado con un modelo de Power BI

Una tabla calendario en Power BI contiene una fila por fecha y atributos como año, mes, trimestre o semana. Centraliza el análisis temporal y permite que todas las métricas compartan las mismas reglas de calendario.

Requisitos de una tabla de fechas

La columna principal debe:

  • Tener tipo Fecha o Fecha/Hora.
  • Contener valores únicos.
  • No tener blancos.
  • No omitir fechas dentro del rango.
  • Cubrir años completos cuando se usa inteligencia de tiempo clásica.

Una columna con solo las fechas presentes en ventas no cumple: los días sin actividad desaparecerían y algunas comparaciones temporales serían inconsistentes.

Crear calendario con DAX

Rango fijo:

Calendario =
CALENDAR(
    DATE(2022, 1, 1),
    DATE(2027, 12, 31)
)

Rango basado en datos:

Calendario =
CALENDAR(
    DATE(YEAR(MIN(Ventas[Fecha])), 1, 1),
    DATE(YEAR(MAX(Ventas[Fecha])), 12, 31)
)

CALENDARAUTO() inspecciona columnas de fecha del modelo y devuelve años completos:

Calendario = CALENDARAUTO()

Es cómodo, pero puede ampliar el rango por una fecha técnica inesperada. Un intervalo explícito resulta más controlable.

Añadir columnas

Año = YEAR(Calendario[Date])
Numero Mes = MONTH(Calendario[Date])
Mes = FORMAT(Calendario[Date], "mmmm")
Año Mes = FORMAT(Calendario[Date], "yyyy-MM")
Trimestre = "T" & FORMAT(Calendario[Date], "Q")

Ordena Mes por Numero Mes; de lo contrario aparecerá alfabéticamente. Para Año Mes, una clave numérica Año * 100 + Mes evita problemas de orden.

Los nombres generados con FORMAT dependen de la configuración regional. Si el informe debe ser multilingüe, modela etiquetas de forma deliberada.

Relacionar y marcar

Crea una relación uno a muchos desde Calendario[Date] hacia Ventas[Fecha]. La dirección de filtro normal va desde calendario hacia ventas.

En Power BI Desktop, marca la tabla como tabla de fechas y selecciona la columna continua. Microsoft indica excepciones con la nueva inteligencia de tiempo basada en calendario, pero marcarla sigue siendo necesario en escenarios clásicos.

La guía de relaciones entre tablas ayuda a evitar muchos a muchos accidentales.

Medidas de inteligencia de tiempo

Ventas Año Anterior =
CALCULATE(
    [Ventas],
    SAMEPERIODLASTYEAR(Calendario[Date])
)
Ventas Acumuladas =
TOTALYTD(
    [Ventas],
    Calendario[Date]
)

Estas funciones dependen de un calendario continuo. Si el año fiscal termina en junio, define los atributos fiscales y los argumentos correspondientes; no renombres meses naturales como si fueran fiscales.

Calendario con Power Query

Power Query permite generar una lista:

let
    Inicio = #date(2022, 1, 1),
    Fin = #date(2027, 12, 31),
    Fechas = List.Dates(
        Inicio,
        Duration.Days(Fin - Inicio) + 1,
        #duration(1, 0, 0, 0)
    ),
    Tabla = Table.FromList(Fechas, Splitter.SplitByNothing(), {"Fecha"})
in
    Tabla

Es una buena opción cuando la organización comparte lógica de calendario o necesita reglas más complejas antes de cargar.

Varias fechas en una tabla de hechos

Ventas puede tener fecha de pedido, envío y pago. Mantén una relación activa —por ejemplo pedido— y relaciones inactivas para otras:

Ventas por Envío =
CALCULATE(
    [Ventas],
    USERELATIONSHIP(Ventas[FechaEnvio], Calendario[Date])
)

Otra opción es clonar la dimensión para roles claramente separados. La elección depende de la experiencia de usuario y del modelo.

Errores frecuentes

  1. Usar el texto “enero” sin clave de orden.
  2. Crear una tabla distinta para cada visual.
  3. Omitir fechas sin ventas.
  4. Relacionar Fecha/Hora con Fecha sin normalizar.
  5. Activar fecha automática en un modelo corporativo y generar calendarios ocultos.
  6. Mezclar semanas ISO con reglas locales sin documentarlo.

Una sola dimensión temporal mejora medidas como CALCULATE y los segmentadores del informe. Define en ella la semántica de año, semana y periodo fiscal para que el significado no cambie entre páginas.

Fuentes oficiales

Preguntas frecuentes

¿Para qué sirve una tabla calendario en Power BI?
Centraliza filtros temporales, garantiza fechas continuas y habilita comparaciones, acumulados y otras funciones de inteligencia de tiempo.

¿CALENDAR o CALENDARAUTO?
CALENDAR ofrece control explícito del intervalo. CALENDARAUTO infiere el rango del modelo y puede incluir fechas técnicas no deseadas.

¿Debo marcarla como tabla de fechas?
Sí en inteligencia de tiempo clásica. Microsoft documenta excepciones específicas para la inteligencia basada en calendario.

¿Cómo ordenar los meses correctamente?
Crea una columna numérica de mes y usa Ordenar por columna sobre el nombre del mes.

¿Qué ocurre si Ventas incluye hora?
Crea una columna solo Fecha o transforma el valor; una fecha a medianoche no coincidirá con una marca de tiempo distinta.

¿Puedo manejar un año fiscal?
Sí. Añade columnas de año, periodo y semana fiscal según reglas documentadas y ajusta las medidas de tiempo.

Deja una respuesta

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

Subir