Forum Discussion

vin26's avatar
vin26
Resolver I
6 years ago
Solved

Dynamic category on slicer section

Hello,   Please help me in creating a creating catogaries based on the mid point selections. For below scatter cart X and Y axis are calculated based on the slicers in left.   If the Midpoint1 = ...
  • amitchandak's avatar
    6 years ago

    vin26 , you have to create a measure like this example measure and use that in conditional formatting

    Color Dot = 
    	var _avgDisc = CALCULATE([Discount %],ALL(Retail))
    	var _avgMargin = CALCULATE([Margin %],ALL(Retail))
    	return switch(TRUE(),
    	[Margin %]>_avgMargin && [Discount %] <_avgDisc , "Green",
    	[Margin %]>_avgMargin && [Discount %] >_avgDisc , "Blue",
    	[Margin %]<_avgMargin && [Discount %] <_avgDisc , "Yellow",
    	[Margin %]<_avgMargin && [Discount %] >_avgDisc , "Red", "Black")

     

    I have explained how to do it in this webinar

    https://youtu.be/Q1vPWmfI25o?t=2851

  • Greg_Deckler's avatar
    Greg_Deckler
    5 years ago

    vin26 - I think it is because of your logical expressions, perhaps:

    Measure = 
        var _avgDisc = CALCULATE('Midpoint1_X Axis'[Midpoint1 Value],ALL(Data))
    	var _avgMargin = CALCULATE('Midpoint2_Y Axis'[Midpoint2 Value],ALL(Data))
            return 
                switch(MAX('Table'[Category]),
                    "A",CALCULATE(COUNT(Data[Sl No]),FILTER(Data,[Measure_Value1]>_avgMargin && [Measure_Value2] <_avgDisc)),
                    "B",CALCULATE(COUNT(Data[Sl No]),FILTER(Data,[Measure_Value1]>_avgMargin && [Measure_Value2] >_avgDisc)),
                    "C",CALCULATE(COUNT(Data[Sl No]),FILTER(Data,[Measure_Value1]<_avgMargin && [Measure_Value2] <_avgDisc)),
                    "D",CALCULATE(COUNT(Data[Sl No]),FILTER(Data,[Measure_Value1]<_avgMargin && [Measure_Value2] >_avgDisc))
                )

    If not, maybe try eliminating some CALCULATE statements:

    Measure = 
        var _avgDisc = CALCULATE('Midpoint1_X Axis'[Midpoint1 Value],ALL(Data))
    	var _avgMargin = CALCULATE('Midpoint2_Y Axis'[Midpoint2 Value],ALL(Data))
            return 
                switch(MAX('Table'[Category]),
                    "A",COUNTROWS(FILTER(Data,[Measure_Value1]>_avgMargin && [Measure_Value2] <_avgDisc)),
                    "B",COUNTROWS(FILTER(Data,[Measure_Value1]>_avgMargin && [Measure_Value2] >_avgDisc)),
                    "C",COUNTROWS(FILTER(Data,[Measure_Value1]<_avgMargin && [Measure_Value2] <_avgDisc)),
                    "D",COUNTROWS(FILTER(Data,[Measure_Value1]<_avgMargin && [Measure_Value2] >_avgDisc))
                )