cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Administrator
Administrator

Diferencia entre VALUES(Date[Month]) y VALUES(Date[Day])

Para el contexto, consulte la pregunta anterior

Tengo DAX que calcula el promedio YTD de forma continua de una medida (véase a continuación y pregunta anterior para más detalles):

Month DAX.PNG

donde la línea azul es la medida mensual y la línea negra representa un promedio de año a fecha (por ejemplo, en marzo los valores de disponibilidad mensuales para enero, febrero, marzo se sumen y se dividen por 3). El DAX para esto es:

YTD Availability=

var selected_year = SELECTEDVALUE('Date Table'[Year])
VAR maxdate = MAX('Date Table'[Datekey])
RETURN
CALCULATE (
        AVERAGEX (
            VALUES ( 'Date Table'[Month] ),
            [Monthly Availability]
        ),
        'Date Table'[Year]=selected_year,
        'Date Table'[Datekey] <= maxdate
    )

donde selected_year es una segmentación de datos que selecciona el año que el usuario desea ver,

Monthly Availability =
UM('AIF Deferments'[Unscheduled_kboe])/(sum('AIF Stream Values Pivot'[Export Total kBOE])+sum('AIF Deferments'[Scheduled_kboe])+sum('AIF Deferments'[Unscheduled_kboe]))*100

Sin embargo, lo anterior no muestra un promedio real del año hasta la fecha, ya que el número de días dentro de un mes no es igual (por ejemplo, enero tiene 31, 28 de febrero, etc.). Para calcular un verdadero promedio YTD pensé simplemente en cambiar

VALUES ( 'Date Table'[Month] ) --> VALUES ( 'Date Table'[Day] )

Esto hace que el objeto visual se vea así:

DAY DAX.JPG

Como puede ver, enero (el primer mes) debe ser igual para la disponibilidad mensual y la disponibilidad de YTD, pero el valor de YTD es incorrecto. PERO el promedio de YTD para diciembre (77,5%) es lo que se espera cuando se tiene en cuenta el número de días en cada mes. Después de las pruebas manuales, parece que la discrepancia entre el promedio verdadero de YTD y el que se muestra sigue disminuyendo hasta que se corrige en diciembre.

Esto es más que desconcertante para mí y no puedo entender lo que está pasando. Cualquier ayuda sería muy apreciada en conseguir un cálculo DAX que funciona correctamente, teniendo en cuenta los días desiguales en cada mes. 🙂

@mahoneypatfuiste tan amable de ayudarme antes, ¿alguna sugerencia?

1 ACCEPTED SOLUTION
Administrator
Administrator

¡De hecho, me las arreglé para resolver mi problema! Mediante el siguiente código DAX:

 IF(
	ISFILTERED('Date Table'[Datekey]),
	ERROR("Time intelligence quick measures can only be grouped or filtered by the Power BI-provided date hierarchy or primary date column."),
	TOTALYTD([Monthly Reliability], 'Date Table'[Datekey].[Date])
)

View solution in original post

3 REPLIES 3
Administrator
Administrator

¡De hecho, me las arreglé para resolver mi problema! Mediante el siguiente código DAX:

 IF(
	ISFILTERED('Date Table'[Datekey]),
	ERROR("Time intelligence quick measures can only be grouped or filtered by the Power BI-provided date hierarchy or primary date column."),
	TOTALYTD([Monthly Reliability], 'Date Table'[Datekey].[Date])
)

View solution in original post

Administrator
Administrator

Dos pensamientos iniciales. 1 - cómo se obtiene el valor de selected_year. No lo veo en la expresión. 2 - ¿Cuál es el cálculo realizado para cada día o mes (dependiendo del cálculo)? Si no es una agregación simple, no debe esperar el mismo resultado para el promedio diario frente al promedio general para enero.

palmadita

Hola Pat,

1 - selected_year es simplemente una segmentación que se puede seleccionar. Contiene 'Tabla de fechas'[Año] (publicación original editada)

var selected_year = SELECTEDVALUE('Date Table'[Year])

2 - Esto suena interesante, ¿podría ampliarlo un poco por favor? El cálculo "Disponibilidad mensual" que se utiliza para derivar un promedio es:

 SUM('AIF Deferments'[Unscheduled_kboe])/(sum('AIF Stream Values Pivot'[Export Total kBOE])+sum('AIF Deferments'[Scheduled_kboe])+sum('AIF Deferments'[Unscheduled_kboe]))*100

Esencialmente, sólo una proporción de una columna a otras en la misma fila.

Por favor, hágamelo saber si eso no ha abordado sus preguntas.

Helpful resources

Announcements
secondImage

Congratulations!

We are excited to announce the Power BI Super Users!

Wave Release 2

Check out the updates in Power BI.

Overview of Power BI 2020 release wave 2!

Microsoft Ignite

Microsoft Ignite

Join digitally, March 2–4, 2021 to explore new tech that's ready to implement. Experience the keynote in mixed reality through AltspaceVR!

secondImage

The largest Power BI virtual conference

100+ sessions, 100+ speakers, Product managers, MVPs, and experts. All about Power BI. Attend online or watch the recordings.