cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Stemar_Aubert Regular Visitor
Regular Visitor

Optimize multiple variables in DAX IF statements

Hello,

 

I have a measure that captures the slicer value selected, then returns a specific scenario which rankx my data.

 

 

AlgoSelectivePINS = 
VAR _SlicerValueLow = 6
VAR _SlicerValueHigh = 7
VAR _ScenarioA =
    IF (
        HASONEVALUE ( Local[DISTRICT] ),
        CALCULATE (
            RANKX (
                FILTER ( ALL ( Local ), Local[SelectNoChina] = 0 ),
                FPins[PINS YTD YoY Δ]
            ),
            ALLEXCEPT ( Local, Local[DISTRICT] )
        ),
        "-"
    )
VAR _ScenarioB =
    IF (
        HASONEVALUE ( Local[DISTRICT] ),
        CALCULATE (
            RANKX ( FILTER ( ALL ( Local ), Local[SelectNoGP] = 0 ), FPins[PINS YTD YoY Δ] ),
            ALLEXCEPT ( Local, Local[DISTRICT] )
        ),
        "-"
    )
VAR _ScenarioC =
    IF (
        HASONEVALUE ( Local[DISTRICT] ),
        CALCULATE (
            RANKX ( FILTER ( ALL ( Local ), Local[SelectAll] = 0 ), FPins[PINS YTD YoY Δ] ),
            ALLEXCEPT ( Local, Local[DISTRICT] )
        ),
        "-"
    )
VAR _ScenarioD =
    IF (
        HASONEVALUE ( Local[DISTRICT] ),
        CALCULATE (
            RANKX ( FILTER ( ALL ( Local ), Local[SelectNone] = 0 ), FPins[PINS YTD YoY Δ] ),
            ALLEXCEPT ( Local, Local[DISTRICT] )
        ),
        "-"
    )
VAR _ScenarioSelectorA =
    IF (
        [SlicerCaptureSum] < _SlicerValueLow,
        _ScenarioB,
        IF ( [SlicerCaptureSum] < _SlicerValueHigh, _ScenarioA, _ScenarioC )
    )
VAR _ScenarioSelectorB =
    IF ( [SlicerCaptureSum] = _SlicerValueLow, _ScenarioD, _ScenarioB )
RETURN
    IF (
        'Biais Switch'[BiaisCaptureSum] = 0,
        _ScenarioSelectorA,
        _ScenarioSelectorB
    )

 

 

I would like to know if switching my HASONEVALUE() evaluation with instead a variable, such as VAR _DistrictValueCheck = HASONEVALUE(Local[DISTRICT]) would work better than having, for each scenario, the evaluation you see in my code above.

 

Thanks !

1 ACCEPTED SOLUTION

Accepted Solutions
Super User
Super User

Re: Optimize multiple variables in DAX IF statements

@Stemar_Aubert 

It would help a bit I think, the new VAR would only evaluate once as opposed to each time.  You should take a look at DAX studio which can help you judge the improvement you would see from the change.

https://www.sqlbi.com/tools/dax-studio/

It lets you modify and test measures locally in the tool without changing your model until you are ready.

View solution in original post

1 REPLY 1
Super User
Super User

Re: Optimize multiple variables in DAX IF statements

@Stemar_Aubert 

It would help a bit I think, the new VAR would only evaluate once as opposed to each time.  You should take a look at DAX studio which can help you judge the improvement you would see from the change.

https://www.sqlbi.com/tools/dax-studio/

It lets you modify and test measures locally in the tool without changing your model until you are ready.

View solution in original post

Helpful resources

Announcements
New Ranks and Rank Icons in 2020

New Ranks and Rank Icons in 2020

Read the announcement for more information!

New Kudos Given Badges Coming

New Kudos Given Badges Coming

We're rolling out new Kudos Given badges. Find out how many Kudos you've given.

November 2019 Community Highlights

November 2019 Community Highlights

Get an overview of the events and great community content from November.

Power Platform World Tour

Power Platform World Tour

Find out where you can attend!

Top Solution Authors
Top Kudoed Authors (Last 30 Days)