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.
Hola a todos. Este me tiene perplejo. A continuación se muestra una captura de pantalla que muestra mis conexiones en el modelo de datos:
La columna YYYY_MM tiene formato "2021-09" y MONTH_IN_CAL columna tiene formato "Sep-21".
He creado una medida de la siguiente manera:
Previous Month Backlog =
var curr_mon_yyyy_mm = "2021-09"
var prev_mon_yyyy_mm = "2021-08"
var Result = IF( MIN('Calendar'[YYYY_MM]) = curr_mon_yyyy_mm, CALCULATE(SUM('Facts Data'[BACKLOG_AMOUNT]), 'Calendar'[YYYY_MM] = prev_mon_yyyy_mm ), BLANK() )
Return Result
Lo que estoy tratando de lograr en esta medida es calcular la cantidad del mes anterior y mostrarla en el mes actual de la siguiente manera:
Con la columna YYYY_MM, funciona bien y obtengo la cantidad correcta. Sin embargo, quiero lograr lo mismo con MONTH_IN_CAL columna, pero me quedo en blanco:
Tanto YYYY_MM como MONTH_IN_CAL provienen de la misma tabla de calendario. Para tratar de llegar al fondo de las cosas, obtuve la consulta DAX usando Performance Analyzer y obtuve esto:
DEFINE
VAR __DS0Core =
SUMMARIZECOLUMNS(
ROLLUPADDISSUBTOTAL(
ROLLUPGROUP('Calendar'[MONTH_IN_CAL], 'Calendar'[YYYY_MM]), "IsGrandTotalRowTotal"
),
"Previous_Month_Backlog", 'Facts Data'[Previous Month Backlog]
)
VAR __DS0PrimaryWindowed =
TOPN(
502,
__DS0Core,
[IsGrandTotalRowTotal],
0,
'Calendar'[YYYY_MM],
1,
'Calendar'[MONTH_IN_CAL],
1
)
EVALUATE
__DS0PrimaryWindowed
ORDER BY
[IsGrandTotalRowTotal] DESC, 'Calendar'[YYYY_MM], 'Calendar'[MONTH_IN_CAL]
YYYY_MM por sí solo está ordenado, pero para mostrar MONTH_IN_CAL en el orden cronológico adecuado, lo he ordenado por la columna YYYY_MM.
Por lo tanto, parece que, aunque la columna YYYY_MM no se está utilizando en el visual de la tabla, se convertirá automáticamente en parte de la consulta DAX para fines de pedido. Investigué un poco sobre cómo puedo resolver esto y encontré este https://blog.crossjoin.co.uk/2015/12/15/power-bi-desktop-sort-by-column-and-dax-calculations-that-us... artículo. Sin embargo, el autor sugiere usar ALL('Calendario'[MONTH_IN_CAL], 'Calendario'[YYYY_MM] ),pero usar eso me da un número incorrecto que es un total de todos los valores de la tabla. Cualquier idea sobre cómo se puede resolver esto. Cualquier ayuda es apreciada. Gracias.
@amitchandak @Greg_Deckler @parry2k @ryan_mayu @RicoZhou
Solved! Go to Solution.
@theDarkPrince , Crear un rango en la tabla Calendario en AAAAMM
nueva columna
Rango de mes = RANKX(all('Date'),'Date'[YYYY_MM],,ASC,Dense)
medida de ejemplo
Este mes = CALCULATE(sum('Table'[Qty]), FILTER(ALL('Date'),'Date'[Month Rank]=max('Date'[Month Rank])))
Último mes = CALCULATE(sum('Table'[Qty]), FILTER(ALL('Date'),'Date'[Month Rank]=max('Date'[Month Rank])-1))
Período del año pasado = CALCULATE(sum('Table'[Qty]), FILTER(ALL('Date'),'Date'[Month]=max(Period[Month]) && 'Date'[Year]=max('Date'[Year])-1))
@theDarkPrince Pensamiento:
Previous Month Backlog Measure =
var __Current = MAX('Calendar'[Date])
VAR __PreviousEOMonth = EOMONTH(__Current,-1)
VAR __Previous = DATE(YEAR(__PreviousEOMOnth),MONTH(__PreviousEOMOnth),1)
var Result = CALCULATE(SUM('Facts Data'[BACKLOG_AMOUNT]), 'Calendar'[Date] <= __Previous, 'Calendar'[Date]<=__PreviousEOMonth)
Return Result
@theDarkPrince , Crear un rango en la tabla Calendario en AAAAMM
nueva columna
Rango de mes = RANKX(all('Date'),'Date'[YYYY_MM],,ASC,Dense)
medida de ejemplo
Este mes = CALCULATE(sum('Table'[Qty]), FILTER(ALL('Date'),'Date'[Month Rank]=max('Date'[Month Rank])))
Último mes = CALCULATE(sum('Table'[Qty]), FILTER(ALL('Date'),'Date'[Month Rank]=max('Date'[Month Rank])-1))
Período del año pasado = CALCULATE(sum('Table'[Qty]), FILTER(ALL('Date'),'Date'[Month]=max(Period[Month]) && 'Date'[Year]=max('Date'[Year])-1))
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |