Forum Discussion
conditional formatting based on measurement not working
Having hard time trying to sort this out. I have a conditional formatting based on a measure but I am getting an anything.
SalesTble (table that contains the main data)
Table ThresRefre (table that contains metric thresholds depending on region)
This is my dax code thus far:
sales_Threshold
= CALCULATE (
IF (
SUM ( SalesTble[sales] ) >= MIN ( 'ThresRefre'[Upper] )
&& MIN ( ThresRefre[Metric] ) = "sales"
&& VALUES ( 'SalesTble'[Region] ) = MIN ( 'ThresRefre'[Region] ),
"#5CB85C",
IF (
SUM ( SalesTble[sales] ) >= MIN ( 'ThresRefre'[Lower] )
&& SUM ( SalesTble[sales] ) < MIN ( 'ThresRefre'[Upper] )
&& MIN ( ThresRefre[Metric] ) = "sales"
&& VALUES ( 'SalesTble'[Region] ) = MIN ( 'ThresRefre'[Region] ),
"#F0AD4E",
IF (
SUM ( SalesTble[sales] ) < MIN ( 'ThresRefre'[Lower] )
&& MIN ( ThresRefre[Metric] ) = "sales"
&& VALUES ( 'SalesTble'[Region] ) = MIN ( 'ThresRefre'[Region] ),
"#D9534F",
BLANK ()
)
)
)
)Thank you so much
- Anonymous3 years ago
Hi Anonymous ,
According to your screenshot, I couldn't find [Region] columns in 'SalesTble' and 'ThresRefre' tables. And I think there should be something wrong in your code.
Firstly VALUES() will return a table based on 'SalesTble'[Region], however MIN() will return a single value based on 'ThresRefre' [Region], so '=' is not a good idea to compare these two conditions, try "in".
sales_Threshold = VAR _SALES_UPPER = CALCULATE ( MIN ( 'ThresRefre'[Upper] ), FILTER ( 'ThresRefre', ThresRefre[Metric] = "sales" ) ) VAR _SALES_LOWER = CALCULATE ( MIN ( 'ThresRefre'[Lower] ), FILTER ( 'ThresRefre', ThresRefre[Metric] = "sales" ) ) RETURN CALCULATE ( IF ( SUM ( SalesTble[sales] ) >= _SALES_UPPER && MIN ( ThresRefre[Metric] ) = "sales" && MIN ( 'ThresRefre'[Region] ) IN VALUES ( 'SalesTble'[Region] ), "#5CB85C", IF ( SUM ( SalesTble[sales] ) >= _SALES_LOWER && SUM ( SalesTble[sales] ) < _SALES_UPPER && MIN ( ThresRefre[Metric] ) = "sales" && MIN ( 'ThresRefre'[Region] ) IN VALUES ( 'SalesTble'[Region] ), "#F0AD4E", IF ( SUM ( SalesTble[sales] ) < _SALES_LOWER && MIN ( ThresRefre[Metric] ) = "sales" && MIN ( 'ThresRefre'[Region] ) IN VALUES ( 'SalesTble'[Region] ), "#D9534F", BLANK () ) ) ) )If this reply still couldn't help you solve your problem, please share a sample file with me and show me a screenshot with the result you want. This will make it easier for me to find the solution.
Best Regards,
Rico ZhouIf this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
1 Reply
- AnonymousNot applicable
Hi Anonymous ,
According to your screenshot, I couldn't find [Region] columns in 'SalesTble' and 'ThresRefre' tables. And I think there should be something wrong in your code.
Firstly VALUES() will return a table based on 'SalesTble'[Region], however MIN() will return a single value based on 'ThresRefre' [Region], so '=' is not a good idea to compare these two conditions, try "in".
sales_Threshold = VAR _SALES_UPPER = CALCULATE ( MIN ( 'ThresRefre'[Upper] ), FILTER ( 'ThresRefre', ThresRefre[Metric] = "sales" ) ) VAR _SALES_LOWER = CALCULATE ( MIN ( 'ThresRefre'[Lower] ), FILTER ( 'ThresRefre', ThresRefre[Metric] = "sales" ) ) RETURN CALCULATE ( IF ( SUM ( SalesTble[sales] ) >= _SALES_UPPER && MIN ( ThresRefre[Metric] ) = "sales" && MIN ( 'ThresRefre'[Region] ) IN VALUES ( 'SalesTble'[Region] ), "#5CB85C", IF ( SUM ( SalesTble[sales] ) >= _SALES_LOWER && SUM ( SalesTble[sales] ) < _SALES_UPPER && MIN ( ThresRefre[Metric] ) = "sales" && MIN ( 'ThresRefre'[Region] ) IN VALUES ( 'SalesTble'[Region] ), "#F0AD4E", IF ( SUM ( SalesTble[sales] ) < _SALES_LOWER && MIN ( ThresRefre[Metric] ) = "sales" && MIN ( 'ThresRefre'[Region] ) IN VALUES ( 'SalesTble'[Region] ), "#D9534F", BLANK () ) ) ) )If this reply still couldn't help you solve your problem, please share a sample file with me and show me a screenshot with the result you want. This will make it easier for me to find the solution.
Best Regards,
Rico ZhouIf this post helps, then please consider Accept it as the solution to help the other members find it more quickly.