Forum Discussion

rajdsing's avatar
rajdsing
Regular Visitor
10 years ago
Solved

How to change measure value using parameters?

I have 3 measures. I want to give user an option to select a measure to be showed in chart and the chart updates dynamically based on selection. Please help me to do this

 

For Ex. User would want to see a quantity or cost or weight in a chart at a time, on country level. I want to give a dropdown (select value of a parameter) which has above 3 options. Based on what he selects, the chart changes to show the measure selected?

  • rajdsing   You cannot have a dropdown but you can use slicers or filters to change the calculations on chart.

     

    You need to create a table that hols the values which you want to show in the slicer

    Calculation Name	SortID
    Cost	1
    Quantity	2
    Weight	3

     

     The SortID is there for sorting the values in slicer as also use it to change the calculation.

     

    The calculations are fictional, change it to your own measures. No relantionship is needed betwwen the calculation name table and any other.

     

    The measure can be like this

     

    Variable Calculation =
    VAR Costs =
        SUM ( Sales[Cost] ) //Change with your measure 
    
    VAR Quantitys =
        SUM ( Sales[Quantity] ) //Change with your measure 
    
    VAR Weights =
        SUM ( Sales[Weight] ) //Change with your measure 
    
    VAR SelectMeasure =
        MIN ( CalculationTable[SortID] )
    
    RETURN
        IF (
            HASONEVALUE ( CalculationTable[Calculation Name] );
            
                   SWITCH ( SelectMeasure; 
                                                1; Costs;
                                                2; Quantitys; 
                                                3; Weights 
                                   )
        )

     

    Add the [Variable Calculation] measure  to any graph and add as filter of slicer the values from the table Calculation Names.

     

    This should work

     

    *Note that you cannot change the format based on selection ( at least not I am aware of )

12 Replies

  • konstantinos's avatar
    konstantinos
    Memorable Member

    rajdsing   You cannot have a dropdown but you can use slicers or filters to change the calculations on chart.

     

    You need to create a table that hols the values which you want to show in the slicer

    Calculation Name	SortID
    Cost	1
    Quantity	2
    Weight	3

     

     The SortID is there for sorting the values in slicer as also use it to change the calculation.

     

    The calculations are fictional, change it to your own measures. No relantionship is needed betwwen the calculation name table and any other.

     

    The measure can be like this

     

    Variable Calculation =
    VAR Costs =
        SUM ( Sales[Cost] ) //Change with your measure 
    
    VAR Quantitys =
        SUM ( Sales[Quantity] ) //Change with your measure 
    
    VAR Weights =
        SUM ( Sales[Weight] ) //Change with your measure 
    
    VAR SelectMeasure =
        MIN ( CalculationTable[SortID] )
    
    RETURN
        IF (
            HASONEVALUE ( CalculationTable[Calculation Name] );
            
                   SWITCH ( SelectMeasure; 
                                                1; Costs;
                                                2; Quantitys; 
                                                3; Weights 
                                   )
        )

     

    Add the [Variable Calculation] measure  to any graph and add as filter of slicer the values from the table Calculation Names.

     

    This should work

     

    *Note that you cannot change the format based on selection ( at least not I am aware of )

    • davekerby's avatar
      davekerby
      Helper II

      What a great solution. Thanks for sharing this.

       

       

    • brunozanoelo's avatar
      brunozanoelo
      Post Patron

      And how can i format those values in the DAX return?

      Example:
      50

      IF the choice is Price, the value must be seen with brazilian coin format (R$ 50,00).
      IF the choice is Quantity, the value must be seen like 50,00
      IF the choice is weight, the value must be seen like 50,0000

      How can i do that?

      Thank's for all!

    • Ankita1310's avatar
      Ankita1310
      New Member

      Thank you for the solution, it was very helpful.

       

      I was wondering if we can do the same for columns(dimensions) instead of measures. i.e. if I want Power BI to group my numeric values for different columns based on a selection (for a bar chart)

       

      For example: for a heatmap, I want to toggle between Product, Customer,State to show the sales amount by Product or by Customer or by State based on the dimesnion selection. I know we can achieve that using the arrow down after creating a hierarchy in the Group , but I was wondering how to do that using a slicer, making it more user friendly. 

       

      Thanks for the help in advance!