Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
2 years ago

Filtrado por Tabla de Fechas Inestable

Hola a todos

Tener algunos problemas para conseguir que una medida funcione como quiero. El objetivo final es obtener un gráfico de asistencia hasta la fecha para el año para un grupo de 3 escuelas similar a este:

Las 3 líneas parciales son para los datos de este año, las 3 líneas más pálidas son para los datos del año pasado. La medida que han utilizado para ello es la siguiente:

AttendYTD%Day = 
CALCULATE (
   Attendance_Calc[%Att2],
FILTER (ALL(DateTable[Day Order]),
        DateTable[Day Order] <= 
MAX(DateTable[Day Order])
    )
)


Las referencias de medida %Att2 son simplemente el número de días presentes dividido por el número de días posibles para estar en la escuela, con BLANK() como valor de reserva.

He hecho exactamente lo mismo con este otro conjunto de datos, aunque los nombres son ligeramente diferentes, pero los cálculos son todos iguales:

AttendYTD%Day = 
CALCULATE (
   'Attendance Calcs'[%Att],
FILTER (ALL('Primary Date Table'[DayOrder]),
   'Primary Date Table'[DayOrder] <=
MAX('Primary Date Table'[DayOrder])
    )
)


Una vez más, la medida %Att a la que se hace referencia aquí es simplemente el número de días presentes dividido por el número de días posibles con BLANK() como valor de reserva. Sin embargo, cuando pongo esto en una imagen, obtengo esto:


Como puedes ver, mis líneas de colores fuertes para este año no se detienen en el día de hoy, simplemente se aplanan en el mismo número y continúan a lo largo del gráfico.

He comprobado todos los ajustes de formato del tipo "mostrar elementos sin datos" y todos parecen ser iguales. Lo he comprobado y ambas tablas de fechas se envían años en el futuro, y ambas tablas de asistencia solo contienen datos reales de días históricos, no hay nada allí como marcador de posición para días futuros. La relación entre las tablas del modelo parece ser idéntica.

Intenté crear una columna con un número absoluto de días (por lo que el año 1 es 1-365, el año 2 es 371-735, etc. usando este código:

AbsDayOrder = 'Primary Date Table'[DayOrder] + (370 * ('Primary Date Table'[Year]-2016))


Pensé que tal vez el hecho de que el 1-365 se repitiera todos los años estaba haciendo algo extraño, pero si uso eso en lugar de DayOrder en mi medida, el gráfico se vuelve completamente mental:

A mí me parece que el simple cambio que ha cambiado de alguna manera la medida de mostrar el número completo hasta la fecha a mostrar el % en un día específico, lo que no tiene sentido dado el <- en la fórmula de la medida.

¿Alguien puede darme algunos consejos para tratar de averiguar qué está sucediendo aquí, por favor? Solo quiero que las líneas de este año terminen en la fecha de hoy y cada variación que pruebo no quiere funcionar, a pesar de que levanto los cálculos directamente de un modelo con una estructura casi idéntica que lo hace funcionar de la manera que quiero...

Gracias

2 Replies

  • ¿Qué pasa si intenta agregar una cláusula para hacer el cálculo solo si la fecha es en o antes de hoy? Es posible que tengas que ajustar este código, pero ¿algo como esto?

    AttendYTD%Day = 
    VAR _selecteddate = MAX( 'Primary Date Table'[Date] )
    VAR _measure =
    CALCULATE (
       'Attendance Calcs'[%Att],
    FILTER (ALL('Primary Date Table'[DayOrder]),
       'Primary Date Table'[DayOrder] <=
    MAX('Primary Date Table'[DayOrder])
        )
    )
    VAR _logic = IF( _selecteddate <= TODAY() , _measure , BLANK() )
    
    RETURN
    _logic
    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Eso funcionó gracias, me quedé ciego al hacer que la fórmula que tenía funcionara en lugar de simplemente ver la solución obvia ...

      (También perdón por la demora en responder, he estado fuera por Navidad y acabo de volver al trabajo ahora)