1. Faro

Nivel 7 · ¿Por qué mi YTD es solo el mes?

La solicitud

De Steven Clark, Director Regional de Operaciones

“Construí mi propio informe sobre una tabla de calendario que importé del almacén de datos de finanzas; se une a orders por su número DateKey, como 20250131. Mi columna Sales YTD muestra exactamente los mismos números que Sales, mes tras mes. Misma fórmula que el informe principal, que funciona. ¿Qué rompí?”

Tu objetivo

Lee la matriz rota de la lección y elige la causa.

La matriz de Steven tiene 'Date'[Year Month] en las filas y una segmentación de Year en 2025. Sales YTD = TOTALYTD([Sales], 'Date'[Date]) muestra el mismo valor que Sales en cada fila de mes, y el valor correcto del año completo en el Total. Su calendario viene del almacén de datos de finanzas, tiene todos los días y está relacionado con orders mediante un DateKey entero. ¿Qué está mal?

Elige una respuesta y luego compruébala.

La lección

Todo creador de informes se topa con esto tarde o temprano: una columna de acumulado del año que no acumula nada. El síntoma es preciso, y la causa también.

En qué estás trabajando

Este nivel es una pregunta, no una fórmula. En el motor DAX de práctica de este sitio se puede reproducir el mismo informe roto desactivando la marca de tabla de fechas; en Power BI Desktop el ajuste vive en Table tools → Mark as date table con el calendario seleccionado, y la vista Modelo muestra qué columna usa cada relación.

La matriz rota

Este es el informe de Steven, con los números reales de 2025 de la tienda:

Year Month Sales Sales YTD
2025-01 $150,571 $150,571
2025-02 $99,903 $99,903
2025-03 $166,787 $166,787
2025-04 $189,734 $189,734
… … …
Total $2,300,170 $2,300,170

Un informe que funciona muestra $250,474 para febrero y $417,261 para marzo. La fila Total es correcta en ambos, y esa es la pista.

Cómo construye TOTALYTD su filtro

Para la fila 2025-03:

  1. Los filtros de la celda son Year = 2025 (segmentación) y Year Month = 2025-03 (fila).
  2. TOTALYTD encuentra la última fecha visible, 31 de marzo, y construye las fechas del 1 de enero al 31 de marzo.
  3. CALCULATE pone esas fechas sobre 'Date'[Date].

Ahora la pregunta es qué pasa con los otros filtros del calendario. Un filtro nuevo sobre 'Date'[Date] reemplaza un filtro existente sobre esa misma columna, pero Year Month es una columna distinta. Si su filtro se queda, el calendario conserva solo las filas que pasan ambos: fechas del 1 de enero al 31 de marzo y en 2025-03. Eso es marzo. El total acumulado se colapsa al mes.

Qué cambia al marcar la tabla

Cuando una tabla está marcada como tabla de fechas, Power BI trata un filtro sobre su columna de fecha como un filtro sobre toda la tabla: quita primero los filtros de Year, Month, Year Month y cualquier otra columna del calendario. Las fechas del YTD quedan entonces solas, y febrero muestra $250,474.

Power BI hace lo mismo automáticamente cuando la relación con los hechos usa una columna de tipo Date, por eso muchos informes funcionan sin la marca. El calendario de Steven se une por un DateKey entero (20250331), así que no recibe ayuda, y el Total es la única celda sin un filtro Year Month que estorbe.

Dos soluciones

  • Marca la tabla. Selecciona el calendario, Table tools → Mark as date table, elige su columna Date. Power BI comprueba que la columna tenga una fila por día y ningún hueco. Esto arregla todas las medidas de tiempo a la vez.
  • Quita los filtros en la medida. CALCULATE([Sales], DATESYTD('Date'[Date]), REMOVEFILTERS('Date')) limpia primero el calendario y luego aplica las fechas del YTD. Funciona, pero cada medida lo necesita.

Otros síntomas parecidos

  • El mismo total general en cada fila: falta la relación o está inactiva.
  • Vacío en todas partes para el año pasado: el calendario no cubre el año anterior.
  • YTD algo corto: el calendario tiene huecos, o usa las fechas de la tabla de hechos.

Elige qué puede ejecutarse en este sitio. Puedes cambiarlo cuando quieras desde "Configurar cookies", al pie de cada página.