Forum Discussion
Dynamic Measure depends on slicer value
Hi Power BI community,
I developed a measure column for calculating a cumulative data as per below code:
Cumulative Actual MH = CALCULATE (sum ( 'PBI LabourCode_Actual'[Project Job numberMH] ), FILTER (ALL ( 'PBI LabourCode_Actual') ,'PBI LabourCode_Actual'[WorkDate] <= MAX ( 'PBI LabourCode_Actual'[WorkDate] )))
I want this measure to be depended to a slicer selection for Job Numbers (
PBI LabourCode_Actual'[Project Job numberMH])
, but so far I couldnt find anything to work . any suggestion? the job number values and measure column are all in a same table.
Really appreciate your help
If you have a one to many relationship between Date and WorkDate (so the arrow is pointing from Date to WorkDate) you should be able to use the Date column to filter the 'PBI LabourCode_Actual' table.
In fact the typically pattern for building a cumulative "life to date" measure would be to use your date table in the filter.
eg.
Cumulative Actual MH =
CALCULATE (sum ( 'PBI LabourCode_Actual'[Project Job numberMH] ),
FILTER (ALL ( 'Date')
,'Date'[Date] <= MAX ( 'Date'[Date] )))Then slicers on any other tables should work normally.
5 Replies
- d_gosbellSuper User
The probem is that you are using ALL('PBI LabourCode_Actual') which will remove all filters including slicers. If you change your expression just to do ALL over the WorkDate column it should still calculate correctly, but also work with your Job Number slicer.
Cumulative Actual MH = CALCULATE (sum ( 'PBI LabourCode_Actual'[Project Job numberMH] ), FILTER (ALL ( 'PBI LabourCode_Actual'[WorkDate]) ,'PBI LabourCode_Actual'[WorkDate] <= MAX ( 'PBI LabourCode_Actual'[WorkDate] )))
- AnonymousNot applicable
I applied your formula, but it didnt return the correct value. It returnes the Actual Manhour and not its cumulative ! Look at the below table. I named your formula as Cumulative actual - New
- d_gosbellSuper User
What's that "Date" column on the rows? Is that WorkDate or some other date?
You could try using ALLEXCEPT and excluding the column you are using for your slicer? (is it really [Project Job numberMH] as it seems strange to try to sum and filter by the one column?)
Cumulative Actual MH = CALCULATE (sum ( 'PBI LabourCode_Actual'[Project Job numberMH] ), FILTER (ALLEXCEPT ( 'PBI LabourCode_Actual', 'PBI LabourCode_Actual'[Project Job numberMH]) ,'PBI LabourCode_Actual'[WorkDate] <= MAX ( 'PBI LabourCode_Actual'[WorkDate] )))
This is the problem with having all your data in one big table. Having a separate 'Date' table makes things like cumulative sums a lot easier.