Forum Discussion
MDR
3 years agoFrequent Visitor
Conditional SUM
I used the following DAX to return total "Approved" amounts across all datanameshorts in my dfact table. When datanameshort is either "SBG" or "SBG10" the total of "Approved" and "Paid" amounts must ...
- 3 years ago
The problem is that there is more than value for data name short, so SELECTEDVALUE will return blank.
Try
ApprovedAmount = IF ( NOT ISEMPTY ( INTERSECT ( VALUES ( DFACT[DATANAMESHORT] ), { "SBG", "SBG10" } ) ), CALCULATE ( SUM ( DFACT[AMOUNT] ), DFACT[DATANAMESHORT] IN { "SBG", "SBG10" } && DFACT[STATUS] IN { "Approved", "Paid" } && NOT ISBLANK ( DFACT[GEONAME] ) ), CALCULATE ( SUM ( DFACT[AMOUNT] ), DFACT[STATUS] = "Approved" ) )
johnt75
3 years agoSuper User
How are you using the measure? Is it in a visual which includes the data name short column or is it just in aggregation ?
- MDR3 years agoFrequent Visitor
I have it in a table with datname as below:
Small Business Disaster Recovery Grants represents both "SBG" and "SBG10".
I've used a similar aggregated measure in a card without any issues but in the table instead of getting the sum of "Approved" and "Paid" for "Small Business Disaster Recovery Grants" I am getting only "Approved".
The aggregated mesure is as follows:
CALCULATE(SUM(DFACT[AMOUNT]), FILTER(DFACT, CONTAINSSTRING(DFACT[DATANAMESHORT],"SBG") && DFACT[STATUS] IN {"Approved", "Paid"} && DFACT[GEONAME] <> BLANK())- johnt753 years agoSuper User
The problem is that there is more than value for data name short, so SELECTEDVALUE will return blank.
Try
ApprovedAmount = IF ( NOT ISEMPTY ( INTERSECT ( VALUES ( DFACT[DATANAMESHORT] ), { "SBG", "SBG10" } ) ), CALCULATE ( SUM ( DFACT[AMOUNT] ), DFACT[DATANAMESHORT] IN { "SBG", "SBG10" } && DFACT[STATUS] IN { "Approved", "Paid" } && NOT ISBLANK ( DFACT[GEONAME] ) ), CALCULATE ( SUM ( DFACT[AMOUNT] ), DFACT[STATUS] = "Approved" ) )