Necesita ayuda con DAX para medidas mensuales, trimestrales y anuales

Un usuario Pregunto ✅

Avivek

Tengo un informe que debe mostrar datos MTD, QTD y YTD como se muestra a continuación:

Avivek_0-1611049848459.png

Ahora, el nuevo requisito es tener Mes en lugar de MTD, Trimestre en lugar de QTD y Año en lugar de YTD. También necesitamos tener cortadoras de meses, cuartos y años.

Por lo tanto, si selecciono meses en la división de meses, la unidad de mes, las ventas de mes y el porcentaje de mezcla de meses solo deberían cambiar, de manera similar, si selecciono cualquier trimestre en la división de trimestre, solo la unidad de trimestre, las ventas de trimestre y el porcentaje de mezcla de trimestre deben cambiar y no se deben ver cambios en las columnas Mes y Año. Intenté crear una medida también-

Ventas mensuales = CALCULAR (Ventas[Sales Amount], FILTER (‘Fecha’, ‘Fecha'[Month Number]))
pero esta medida no parece funcionar dando el resultado deseado.
¿Alguien puede sugerir alguna otra forma de hacer esto o si es necesario cambiar la medida?

PaulDBrown

@Avivek

En ese caso, una simple suma debería ser suficiente:

Suma de ventas = SUM (Ventas[Sales amount])

Si la tabla de fechas está configurada correctamente con una relación de uno a muchos entre la tabla de fechas [Date] y las ventas [Date], utilizando una cortadora de datos de la tabla Fecha y seleccionando un mes, trimestre o año específico, se devolverán las ventas del período seleccionado.

Si necesita que los valores se agrupen por período, intente:

Month sales = CALCULATE([Sum of Sales], 
                FILTER(ALL('Calendar Table'), 
                'Calendar Table'[Month] = SELECTEDVALUE('Calendar Table'[Month])))
Qarter sales = CALCULATE([Sum of Sales], 
                FILTER(ALL('Calendar Table'), 
                'Calendar Table'[Quarter] = SELECTEDVALUE('Calendar Table'[Quarter])))
Year sales = CALCULATE([Sum of Sales], 
                FILTER(ALL('Calendar Table'), 
                'Calendar Table'[Year] = SELECTEDVALUE('Calendar Table'[Year])))

Hola @Avivek,

Necesita tres tablas de fechas para el mes, el cuarto y el año:

Dim_DateforMonth = FILTER( 
ADDCOLUMNS (
CALENDAR (DATE(2013,1,1), DATE(2015,12,31)),
"Year", YEAR ( [Date] ),
"Quarter-Year", "Q" & FORMAT ( [Date], "Q" )&"-"&YEAR ( [Date] ),
"Month-Year", FORMAT ( [Date], "mmm" ) & "-" & YEAR ( [Date] )
),
[Date]<>BLANK())

Dim_DateforQuanter = Dim_DateforMonth 

Dim_DateforYear = Dim_DateforMonth 

Cree la siguiente relación entre la tabla de hechos y estas tres tablas de fechas:

Capture5.PNG

Cree la siguiente medida para monthvalue, quantervalue y Yearvalue:

SalesAmountformonth = SUM(Sales[Sales])

SalesAmountQuarter = CALCULATE([SalesAmountformonth],CALCULATETABLE(VALUES(Dim_DateforMonth[Date]),USERELATIONSHIP(Dim_DateforMonth[Date],Dim_DateforQuanter[Date]),REMOVEFILTERS(Dim_DateforMonth[Month-Year])))

SalesAmountYear = CALCULATE([SalesAmountformonth],CALCULATETABLE(VALUES(Dim_DateforMonth[Date]),USERELATIONSHIP(Dim_DateforMonth[Date],Dim_DateforYear[Date]),REMOVEFILTERS(Dim_DateforMonth[Month-Year])))

Cree tres segmentaciones a partir de estas tres tablas de fechas. Use la columna mes-año de Dim_Dateformonth en el cortador de mes y así sucesivamente.

2.gif

Y para obtener más detalles, consulte el ejemplo de pbix: https: //qiuyunus-my.sharepoint.com/: u: / g / personal / pbipro_qiuyunus_onmicrosoft_com / EfjssjDjpEhEizO8Jc …

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.

Atentamente,

Dedmon Dai

PaulDBrown

@Avivek

En ese caso, una simple suma debería ser suficiente:

Suma de ventas = SUM (Ventas[Sales amount])

Si la tabla de fechas está configurada correctamente con una relación de uno a muchos entre la tabla de fechas [Date] y las ventas [Date], utilizando una cortadora de datos de la tabla Fecha y seleccionando un mes, trimestre o año específico, se devolverán las ventas del período seleccionado.

Si necesita que los valores se agrupen por período, intente:

Month sales = CALCULATE([Sum of Sales], 
                FILTER(ALL('Calendar Table'), 
                'Calendar Table'[Month] = SELECTEDVALUE('Calendar Table'[Month])))
Qarter sales = CALCULATE([Sum of Sales], 
                FILTER(ALL('Calendar Table'), 
                'Calendar Table'[Quarter] = SELECTEDVALUE('Calendar Table'[Quarter])))
Year sales = CALCULATE([Sum of Sales], 
                FILTER(ALL('Calendar Table'), 
                'Calendar Table'[Year] = SELECTEDVALUE('Calendar Table'[Year])))

Avivek

En respuesta a PaulDBrown

Gracias @PaulDBrown, esto parece funcionar.

PaulDBrown

@Avivek

¿Tiene una tabla de fechas en su modelo?

Avivek

En respuesta a PaulDBrown

Sí @PaulDBrown

Deja un comentario

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