Forum Discussion
Anonymous
4 years agoNot applicable
Sum last value filtered by date
Hello, I need to get the last CUMULATIF value for each single NO_PALETTE filterd by the choosen date. The date slicer is coming from a calendar table. Then I want to sum all the value the get the to...
- Anonymous4 years ago
Anonymous Your measures needs to sum up the across all distinct values of NO_PALETTE, like this:
Qty(filter)_test = SUMX( VALUES(HIST_PAL[NO_PALETTE]), var dateselect = SELECTEDVALUE(Dimdate[Date]) var minindex = CALCULATE(MIN(HIST_PAL[Index]),HIST_PAL[DATE] <= dateselect,ALLEXCEPT(HIST_PAL,HIST_PAL[NO_PALETTE])) Return CALCULATE(SUM(HIST_PAL[CUMULATIF]),HIST_PAL[Index] = minindex) )
CNENFRNL
4 years agoCommunity Champion
Tu peux corriger ta mesure comme ça,
=
VAR dateselect = SELECTEDVALUE( Dimdate[Date] )
RETURN
SUMX(
VALUES( HIST_PAL[NO_PALETTE] ),
VAR minindex =
CALCULATE(
MIN( HIST_PAL[Index] ),
HIST_PAL[DATE] <= dateselect,
ALLEXCEPT( HIST_PAL, HIST_PAL[NO_PALETTE] )
)
RETURN
CALCULATE( SUM( HIST_PAL[CUMULATIF] ), HIST_PAL[Index] = minindex )
)
mais elle marche pas assez efficacement; voici une mesure 30+ fois plus vite (selon DAXStudio, 15ms vs 500ms) bien qu'elle ait l'air bcp plus compliquée.
=
VAR dateselect = SELECTEDVALUE( Dimdate[Date] )
RETURN
SUMX(
VALUES( HIST_PAL[NO_PALETTE] ),
CALCULATE(
SUM( HIST_PAL[CUMULATIF] ),
KEEPFILTERS(
TOPN(
1,
CALCULATETABLE(
HIST_PAL,
HIST_PAL[DATE] <= dateselect,
ALLEXCEPT( HIST_PAL, HIST_PAL[NO_PALETTE] )
),
HIST_PAL[Index], ASC
)
)
)
)