Forum Discussion
Dynamic category on slicer section
- 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
- 6 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)) )
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
- vin266 years ago
Resolver I
Hi amitchandak thank you for this solution, it works fine for color changes in chart.
I would also require group the values by category, for that I have created a table with categories and created a measure like below:
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]),[Measure_Value1]>_avgMargin && [Measure_Value2] <_avgDisc), "B",CALCULATE(COUNT(Data[Sl No]),[Measure_Value1]>_avgMargin && [Measure_Value2] >_avgDisc), "C",CALCULATE(COUNT(Data[Sl No]),[Measure_Value1]<_avgMargin && [Measure_Value2] <_avgDisc), "D",CALCULATE(COUNT(Data[Sl No]),[Measure_Value1]<_avgMargin && [Measure_Value2] >_avgDisc) )it is not working and getting below error:
- Greg_Deckler6 years ago
Community Champion
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)) )- vin266 years ago
Resolver I
Hi Greg_Deckler Perfect!, thanks a ton, both works!