Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
Sign up nowGet Fabric certified for FREE! Don't miss your chance! Learn more
Hi all,
I'm currently doing a project and need some assistance. I'm still finding my way around DAX and I'm trying to get my MoM % change to turn red if the change is negative and green when it's positive. This is the DAX code, I've been using:
Please can someone assist me.
Thank you.
Solved! Go to Solution.
Hi @Anonymous00729,
This Approach should work with you give it a try :
Revenue MoM % with Arrow =
VAR upArrow = UNICHAR(9650) // ▲
VAR downArrow = UNICHAR(9660) // ▼
VAR change = [MoM % ▲]
VAR formattedText =
IF(
change > 0,
FORMAT(change, "0.00%") & " " & upArrow,
FORMAT(change, "0.00%") & " " & downArrow
)
RETURN
formattedTextTo apply conditional formatting in Power BI:
Go to Format → Data label → Conditional Formatting (fx)
Choose Field value → select your measure
Alternative DAX only approach (if you want everything in one measure):
Revenue MoM % with Arrow =
VAR upArrow = UNICHAR(9650)
VAR downArrow = UNICHAR(9660)
VAR change = [MoM % ▲]
VAR textColor =
IF(
change > 0,
"<span style='color:green'>",
"<span style='color:red'>"
)
VAR formattedText =
IF(
change > 0,
FORMAT(change, "0.00%") & " " & upArrow,
FORMAT(change, "0.00%") & " " & downArrow
)
RETURN
textColor & formattedText & "</span>"
The logic behind color formatting should be done with a measure based on a numerical value. Format() returns a text value.
My advice would be to seperate the calculation and the color designation.
I recreated your problem and with the following code you get your solution:
Revenue MoM % :=
VAR Curr = [Total Revenue] -- huidige maand
VAR Prev = [Previous Month Revenue] -- vorige maand
RETURN
DIVIDE( Curr - Prev, Prev )
Revenue MoM % with Arrow :=
VAR upArrow = UNICHAR(9650) -- ▲
VAR downArrow = UNICHAR(9660) -- ▼
VAR change = [Revenue MoM %]
RETURN
FORMAT( change, "0.00%" ) & " " &
IF( change > 0, upArrow, downArrow )
The above on is the value you use in the card visual
Measure for color formatting:
Revenue MoM Color :=
VAR change = [Revenue MoM %]
RETURN
SWITCH(
TRUE(),
ISBLANK(change), "#808080", -- gray when no value
change > 0, "#008000", -- green
change < 0, "#C00000", -- red
"#000000" -- black as fallback
)
And then you need to put the color measure in the formatting pane.
Format panel → Data label → Color → fx → Format by: Field value → Select Revenue MoM Color.
Hope this helps.
The logic behind color formatting should be done with a measure based on a numerical value. Format() returns a text value.
My advice would be to seperate the calculation and the color designation.
I recreated your problem and with the following code you get your solution:
Revenue MoM % :=
VAR Curr = [Total Revenue] -- huidige maand
VAR Prev = [Previous Month Revenue] -- vorige maand
RETURN
DIVIDE( Curr - Prev, Prev )
Revenue MoM % with Arrow :=
VAR upArrow = UNICHAR(9650) -- ▲
VAR downArrow = UNICHAR(9660) -- ▼
VAR change = [Revenue MoM %]
RETURN
FORMAT( change, "0.00%" ) & " " &
IF( change > 0, upArrow, downArrow )
The above on is the value you use in the card visual
Measure for color formatting:
Revenue MoM Color :=
VAR change = [Revenue MoM %]
RETURN
SWITCH(
TRUE(),
ISBLANK(change), "#808080", -- gray when no value
change > 0, "#008000", -- green
change < 0, "#C00000", -- red
"#000000" -- black as fallback
)
And then you need to put the color measure in the formatting pane.
Format panel → Data label → Color → fx → Format by: Field value → Select Revenue MoM Color.
Hope this helps.
Thank you so much for your help. This worked perfectly!
Hi @Anonymous00729,
This Approach should work with you give it a try :
Revenue MoM % with Arrow =
VAR upArrow = UNICHAR(9650) // ▲
VAR downArrow = UNICHAR(9660) // ▼
VAR change = [MoM % ▲]
VAR formattedText =
IF(
change > 0,
FORMAT(change, "0.00%") & " " & upArrow,
FORMAT(change, "0.00%") & " " & downArrow
)
RETURN
formattedTextTo apply conditional formatting in Power BI:
Go to Format → Data label → Conditional Formatting (fx)
Choose Field value → select your measure
Alternative DAX only approach (if you want everything in one measure):
Revenue MoM % with Arrow =
VAR upArrow = UNICHAR(9650)
VAR downArrow = UNICHAR(9660)
VAR change = [MoM % ▲]
VAR textColor =
IF(
change > 0,
"<span style='color:green'>",
"<span style='color:red'>"
)
VAR formattedText =
IF(
change > 0,
FORMAT(change, "0.00%") & " " & upArrow,
FORMAT(change, "0.00%") & " " & downArrow
)
RETURN
textColor & formattedText & "</span>"
Thank you so much for your help, this worked!
And thank you for the HTML bit as well, I will keep this for future reference.
If you love stickers, then you will definitely want to check out our Community Sticker Challenge!
Check out the January 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 5 | |
| 4 | |
| 4 | |
| 3 | |
| 2 |
| User | Count |
|---|---|
| 13 | |
| 9 | |
| 9 | |
| 7 | |
| 5 |