Forum Discussion
IF and SELECTEDVALUE Condition
I need a measure that will calculate the following condition: if only two atributes D1 and D2 are selected in the slicer, the D1 value (100) should be multiplied (1.25) and then summ with the D2 value (100). Expected value result - 225.
In all other cases, only the Total Value result (for 1 - 100, for 2 - 200, for 3 - 300, for 4 - 400, for all - 500) should be displayed.
Current DAX is not working:
hi DmitryAD7
Please try this measure
Sales with Condition =VAR _CountCheck = COUNT('Dataset'[D])VAR _val = CALCULATE ( [Total Value], REMOVEFILTERS('Dataset'[D]), 'Dataset'[D] = "D1" )VAR _d1_value = _val*1.25VAR _d2_value =CALCULATE ( [Total Value], REMOVEFILTERS('Dataset'[D]), 'Dataset'[D] = "D2" )VAR _default_value =CALCULATE ( [Total Value], REMOVEFILTERS('Dataset'[D]), VALUES('Dataset'[D]) )VAR Result =IF ( CONTAINSROW(VALUES('Dataset'[D]), "D1") && CONTAINSROW(VALUES('Dataset'[D]), "D2") && _CountCheck = 2,_d1_value + _d2_value,_default_value)RETURNResult
6 Replies
- talespinSolution Sage
hi DmitryAD7
Please try this measure
Sales with Condition =VAR _CountCheck = COUNT('Dataset'[D])VAR _val = CALCULATE ( [Total Value], REMOVEFILTERS('Dataset'[D]), 'Dataset'[D] = "D1" )VAR _d1_value = _val*1.25VAR _d2_value =CALCULATE ( [Total Value], REMOVEFILTERS('Dataset'[D]), 'Dataset'[D] = "D2" )VAR _default_value =CALCULATE ( [Total Value], REMOVEFILTERS('Dataset'[D]), VALUES('Dataset'[D]) )VAR Result =IF ( CONTAINSROW(VALUES('Dataset'[D]), "D1") && CONTAINSROW(VALUES('Dataset'[D]), "D2") && _CountCheck = 2,_d1_value + _d2_value,_default_value)RETURNResult- DmitryAD7Helper I
Thanks a lot!
- nareshr89Helper II
Try this
Sales with Condition =
VAR _select = SELECTEDVALUE ( 'Dataset'[D] )VAR _d1_value =
CALCULATE ( [Total Value], FILTER ( 'Dataset', 'Dataset'[D] = "D1" ) ) *1.25
VAR _d2_value =
CALCULATE ( [Total Value], FILTER ( 'Dataset', 'Dataset'[D] = "_D2" ) )
VAR _defualt_value =
CALCULATE ( [Total Value], FILTER ( 'Dataset', 'Dataset'[D] = "_select" ) )VAR Result =
IF ( _select = "D1" && _select = "D2", CALCULATE(_d1_value+_d2_value),_defualt_value)If it doesn't work, share a sample PBIX file.
- govindarajan_dSuper User
Hi DmitryAD7 ,
Try this:
I have used CONCATENATEX to build a string that contains the values selected in slicer and check if it is equal to "D1, D2"
VAR _select = CONCATENATEX( VALUES('Dataset'[D]), 'Dataset'[D], ", " ) VAR _d1_value = CALCULATE ( [Total Value], FILTER ( 'Dataset', 'Dataset'[D] = "D1" ) ) * 1.25 VAR _d2_value = CALCULATE ( [Total Value], FILTER ( 'Dataset', 'Dataset'[D] = "D2" ) ) VAR _default_value = CALCULATE ( [Total Value], FILTER ( 'Dataset', 'Dataset'[D] = "_select" ) ) VAR Result = IF ( CONTAINSSTRING(_select,"D1, D2"), CALCULATE ( _d1_value + _d2_value ), _default_value ) RETURN Result