Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

DAX SWITCH + SELECTEDVALUE()

Hello everyone! I'm struggling to solve a problem with a measure.

 

I'm using the wonderful resource of SWITCH + SELECTEDVALUE, but what happens when I need to perform a division, say, GMV/Orders. In the following case: ATV=GMV/Orders. 

 

VAR MySelection =
SELECTEDVALUE ('De-para'[Grouping])
VAR Mysubselection=SELECTEDVALUE(All_Data[KPI])
RETURN
SWITCH (
TRUE (),
MySelection="GMV",CALCULATE(sum(All_Data[Value]),All_Data[Grouping.1]="GMV")/1000000,
MySelection = "Orders",[Orders],
MySelection = "ATV",[ATV])
 
The disconnected table which contains the field Grouping.1 is the following:
 
KPI    Grouping.1
GMV            GMV
Orders         Orders
ATV              ATV
Discounts    DME
Mkt             DME
 
When I build the table I need, the KPI "ATV" shows the same data for every kpi, as if it wouldn't recognize the attribute as a table attribute. 
 
Any help? I need to solve this asap 😞
Thks in advance!
 
 
 
 
 
  • Hi Anonymous ,

     

    You need another Measure to calculate the value of GMV/Orders, then use it in current Measure .

    ATV =
    VAR GMV_ =
        CALCULATE ( [GMV], ALL ( All_Data ) )   //[GMV] is a measure that sum the value of GMV
    VAR Orders_ =
        CALCULATE ( [Orders], ALL ( All_Data ) )   //[Orders] is a measure that sum the value of Orders
    RETURN
        IF ( SELECTEDVALUE ( All_Data[Grouping.1] ) = "ATV", GMV_ / Orders_, BLANK () )

     

    division =
    VAR MySelection =
        SELECTEDVALUE ( 'De-para'[Grouping] )
    RETURN
        SWITCH (
            TRUE (),
            MySelection = "GMV", [GMV] / 1000000,   //[GMV] is a measure that sum the value of GMV
            MySelection = "Orders", [Orders],   //[Orders] is a measure that sum the value of Orders
            MySelection = "ATV", [ATV]
        )

     

    Then, the result should look like this.

     

    Also, attached the pbix file as reference.

     

    If there is any post helps, then please consider Accept it as the solution to help the other members find it more quickly. If I misunderstand your needs or you still have problems on it, please feel free to let me know. Thanks a lot!

     

    Best Regards,

    Community Support Team _ Caiyun

2 Replies

  • I don't quite understand the question. What are you expecting to happen when you "perform a division"? How is this division related to your switch measure?

  • v-cazheng-msft's avatar
    v-cazheng-msft
    Community Support

    Hi Anonymous ,

     

    You need another Measure to calculate the value of GMV/Orders, then use it in current Measure .

    ATV =
    VAR GMV_ =
        CALCULATE ( [GMV], ALL ( All_Data ) )   //[GMV] is a measure that sum the value of GMV
    VAR Orders_ =
        CALCULATE ( [Orders], ALL ( All_Data ) )   //[Orders] is a measure that sum the value of Orders
    RETURN
        IF ( SELECTEDVALUE ( All_Data[Grouping.1] ) = "ATV", GMV_ / Orders_, BLANK () )

     

    division =
    VAR MySelection =
        SELECTEDVALUE ( 'De-para'[Grouping] )
    RETURN
        SWITCH (
            TRUE (),
            MySelection = "GMV", [GMV] / 1000000,   //[GMV] is a measure that sum the value of GMV
            MySelection = "Orders", [Orders],   //[Orders] is a measure that sum the value of Orders
            MySelection = "ATV", [ATV]
        )

     

    Then, the result should look like this.

     

    Also, attached the pbix file as reference.

     

    If there is any post helps, then please consider Accept it as the solution to help the other members find it more quickly. If I misunderstand your needs or you still have problems on it, please feel free to let me know. Thanks a lot!

     

    Best Regards,

    Community Support Team _ Caiyun