Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
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
Syndicate_Admin
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
Syndicate_Admin
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])
)
Syndicate_Admin
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
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.