Forum Discussion
Conditional formatting with rules... base maximum off of table value?
Again, I am trying to do something that should be simple, but I cannot figure out how to do it in Power BI. I am using a gauge-style visual with conditional formatting for the data color. I want to set it up with two rules: for values between zero and the "target value", I want it red. For values above the "target value", I want it green. Seems pretty straight-forward for this type of visual.
However, those fields for min/max seem to only accept numerical inputs. I need to drive these formatting rules with the "target value" from my table, because it changes from day to day.
Is this possible?
Thank you.
kwpbi create a measure for color like
KPI Color = IF( [Value] < [Target] , "Red", "Green" )
in conditional formatting, choose field value and select kpi color measure
6 Replies
- kwpbi
Helper II
Thanks, Parry2k, this is almost what I need... I think we need to take one step further?
The [value] that I am reporting is a sum from a visual-level, relative-date filter. Can you think of a way to make this work when that [value] is not coming from a table?
- kwpbi
Helper II
It took some trial and error, but I got this to work using a series of measures for each scenario. Here is what I came up with for my final code:
WEEK-TAR =VAR WETAR =SUM('Sales Visuals Data'[Weekly Target])RETURN WETARWEEK-COLOR =VAR WECOL =IF(SUM(YTD_Invoices[INVOICEAMOUNT])>='Sales Visuals Data'[WEEK-TAR],"GREEN","RED")RETURN WECOLMONTH-TAR =VAR MOTAR =SUM('Sales Visuals Data'[Monthly Target])RETURN MOTARMONTH-COLOR =VAR MOCOL =IF(SUM(YTD_Invoices[INVOICEAMOUNT])>='Sales Visuals Data'[MONTH-TAR],"GREEN","RED")RETURN MOCOL2019-YTD-TAR =VAR YTDTAR =SUM('Sales Visuals Data'[2019 YTD Target])RETURN YTDTARYTD-COLOR =VAR YTDCOL =IF(SUM(YTD_Invoices[INVOICEAMOUNT])>='Sales Visuals Data'[2019-YTD-TAR],"GREEN","RED")RETURN YTDCOLThanks again for your help!
- v-frfei-msft
Community Support
Hi kwpbi ,
We can set condiftional formatting by filed value based on measure like this.
Measure 2 = var a = SUM('FACT TABLE'[value]) return IF(a>='target table'[Target var],"#01B8AA","#FD625E")Before that, we can create a target measure as below.
Target var = var maxd = CALCULATE(MAX('target table'[date]),ALLSELECTED('target table')) return CALCULATE(MAX('target table'[target]),FILTER('target table','target table'[date] = maxd))Then we can get the result as below by table visual.