Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hi! I'm trying to do some conditional formatting on my matrix visual. There are a few conditions that I need to have:
1) If value > 100%, colour red
2) Based on the above, all months before the latest month that is red needs to be red too
3) Everything else that is in the first 2 months to be yellow
By creating a measure, I could accomplish 1) and 3), but I need some tips on how to accomplish 2).
Below is a sample data, of which i need the white cells outlined in red to be shaded in red.
Thanks!
Solved! Go to Solution.
Thank you for the reply @KHMJ
Here is the correct measure
Conditional Formatting =
VAR CurrentMonth =
SELECTEDVALUE ( Table[Month Index] )
VAR T1 =
CALCULATETABLE (
Table,
REMOVEFILTERS (
Table[Year - Month],
Table[Year Month Index],
Table[Month Index]
)
)
VAR T2 =
SUMMARIZE ( T1, [Month Index], "%Load", [% Load] )
VAR T3 =
FILTER ( T2, [%Load] > 1 )
VAR LastMonthAbove100 =
MAXX ( T3, [Month Index] )
VAR Result =
IF (
CurrentMonth <= LastMonthAbove100,
"#ff7276",
IF ( CurrentMonth IN { 2, 3 }, "#ffa500", "#f8f8ff" )
)
RETURN
Result
In T1 variable, please make sure to remove the filter from all the columns related to year month.
Have a great day!
Ho @KHMJ
can you please share some insensitive sample data to work with? What is the code for % Load?
Hi @tamerj1 ,
These are 2 columns that I've created:
Cumulative Load = CALCULATE(SUM(Table[Qty]), FILTER(ALLEXCEPT(Table,Table[Product]),Table[Month Index]<=EARLIER(Table[Month Index])))
Cumulative Capacity = CALCULATE(SUM(Table2[Qty]), FILTER(ALLEXCEPT(Table2,Table2[Product]),Table2[Month Index]<=EARLIER(Table2[Month Index])))
Afterwhich, the measure was created from the 2 columns:
Thank you for the reply @KHMJ
Here is the correct measure
Conditional Formatting =
VAR CurrentMonth =
SELECTEDVALUE ( Table[Month Index] )
VAR T1 =
CALCULATETABLE (
Table,
REMOVEFILTERS (
Table[Year - Month],
Table[Year Month Index],
Table[Month Index]
)
)
VAR T2 =
SUMMARIZE ( T1, [Month Index], "%Load", [% Load] )
VAR T3 =
FILTER ( T2, [%Load] > 1 )
VAR LastMonthAbove100 =
MAXX ( T3, [Month Index] )
VAR Result =
IF (
CurrentMonth <= LastMonthAbove100,
"#ff7276",
IF ( CurrentMonth IN { 2, 3 }, "#ffa500", "#f8f8ff" )
)
RETURN
Result
In T1 variable, please make sure to remove the filter from all the columns related to year month.
Have a great day!
This works, thank you!
Hi @KHMJ
it depends on the current measure. We meed to modify the existing one not to add a new measure. Can share the code that you are using right now?
Hi @tamerj1 ,
I have a month index that is tied to the months now (i.e. 2022-03 has index 1, 2022-04 has index 2, 2022-05 has index 3 etc).
My current measure for the formatting is:
Hi @KHMJ
You may try the following
Conditional Formatting =
VAR CurrentMonth =
SELECTEDVALUE ( Table[Month Index] )
VAR LastMonthAbove100 =
CALCULATE (
MAX ( Table[Month Index] ),
[% Load] > 1,
REMOVEFILTERS ( Table[Month Index] )
)
RETURN
IF (
CurrentMonth <= LastMonthAbove100,
"#ff7276",
IF ( CurrentMonth = 1 || CurrentMonth = 2, "#ffa500", "#f8f8ff" )
)
Or
Conditional Formatting =
VAR CurrentMonth =
SELECTEDVALUE ( Table[Month Index] )
VAR LastMonthAbove100 =
CALCULATE (
MAX ( Table[Month Index] ),
[% Load] > 1,
REMOVEFILTERS ( Table[Month Index] )
)
RETURN
IF (
CurrentMonth <= LastMonthAbove100,
"#ff7276",
IF ( CurrentMonth IN { 1, 2 }, "#ffa500", "#f8f8ff" )
)
Thanks @tamerj1! I tried and got the following error message though..
"A function 'PLACEHOLDER' has been used in a True/False expression that is used as a table filter expression. This is not allowed."
User | Count |
---|---|
22 | |
11 | |
8 | |
6 | |
6 |
User | Count |
---|---|
26 | |
13 | |
11 | |
9 | |
6 |