Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Daniel_Derbin
Frequent Visitor

Conditional formatting (background color) each cell separately in matrix

Hello, 

 

Im trying to apply logic into matrix but based on different rule for almost each cell in a row.
I'm using currently only one measure to give me percentage result.

 

What i have so far:
matrix new.jpg
Fields.jpg


What the result of formatting should look like:

matrix formatting.jpg

 

Appreciate your help, Dan 🙂

1 ACCEPTED SOLUTION
MFelix
Super User
Super User

Hi @Daniel_Derbin,

 

For this you need to create a metric similar to this:

 

 

Formating =
SWITCH (
    TRUE (),
    SELECTEDVALUE ( Table[Record age] ) = "0-30 days"
        && SELECTEDVALUE ( Table[Severity] ) = "Critical"
        && [% of vuln wo Sev] >= 0.92, "Green",
    SELECTEDVALUE ( Table[Record age] ) = "31-60 days"
        && SELECTEDVALUE ( Table[Severity] ) = "Critical"
        && [% of vuln wo Sev] <= 0.08
        && [% of vuln wo Sev] > 0, "Yellow",
    (
        SELECTEDVALUE ( Table[Record age] ) = "0-30 days"
            || SELECTEDVALUE ( Table[Record age] ) = "31-61 days"
    )
        && SELECTEDVALUE ( Table[Severity] ) = "High"
        && [% of vuln wo Sev] >= 0.95, "Green",
    SELECTEDVALUE ( Table[Record age] ) = "61-90 days"
        && SELECTEDVALUE ( Table[Severity] ) = "High"
        && [% of vuln wo Sev] <= 0.05
        && [% of vuln wo Sev] > 0, "Yellow",
    (
        SELECTEDVALUE ( Table[Record age] ) = "0-30 days"
            || SELECTEDVALUE ( Table[Record age] ) = "31-61 days"
            || SELECTEDVALUE ( Table[Record age] ) = "61-90 days"
    )
        && SELECTEDVALUE ( Table[Severity] ) = "Medium"
        && [% of vuln wo Sev] >= 0.95, "Green",
    SELECTEDVALUE ( Table[Record age] ) = "91-180 days"
        && SELECTEDVALUE ( Table[Severity] ) = "Medium"
        && [% of vuln wo Sev] <= 0.05
        && [% of vuln wo Sev] > 0, "Yellow",
    (
        SELECTEDVALUE ( Table[Record age] ) = "0-30 days"
            || SELECTEDVALUE ( Table[Record age] ) = "31-61 days"
            || SELECTEDVALUE ( Table[Record age] ) = "61-90 days"
            || SELECTEDVALUE ( Table[Record age] ) = "91-180 days"
    )
        && SELECTEDVALUE ( Table[Severity] ) = "Low"
        && [% of vuln wo Sev] >= 0.95, "Green",
    SELECTEDVALUE ( Table[Record age] ) = "180-360 days"
        && SELECTEDVALUE ( Table[Severity] ) = "Low"
        && [% of vuln wo Sev] <= 0.05
        && [% of vuln wo Sev] > 0, "Yellow",
    "Red"
)

This may need some adjustments, there is also an option to create a table with the values of your maximum and minimun values if you want I can try and setup that table that would allow you to give you a better editing option in the future.

 


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



View solution in original post

2 REPLIES 2
MFelix
Super User
Super User

Hi @Daniel_Derbin,

 

For this you need to create a metric similar to this:

 

 

Formating =
SWITCH (
    TRUE (),
    SELECTEDVALUE ( Table[Record age] ) = "0-30 days"
        && SELECTEDVALUE ( Table[Severity] ) = "Critical"
        && [% of vuln wo Sev] >= 0.92, "Green",
    SELECTEDVALUE ( Table[Record age] ) = "31-60 days"
        && SELECTEDVALUE ( Table[Severity] ) = "Critical"
        && [% of vuln wo Sev] <= 0.08
        && [% of vuln wo Sev] > 0, "Yellow",
    (
        SELECTEDVALUE ( Table[Record age] ) = "0-30 days"
            || SELECTEDVALUE ( Table[Record age] ) = "31-61 days"
    )
        && SELECTEDVALUE ( Table[Severity] ) = "High"
        && [% of vuln wo Sev] >= 0.95, "Green",
    SELECTEDVALUE ( Table[Record age] ) = "61-90 days"
        && SELECTEDVALUE ( Table[Severity] ) = "High"
        && [% of vuln wo Sev] <= 0.05
        && [% of vuln wo Sev] > 0, "Yellow",
    (
        SELECTEDVALUE ( Table[Record age] ) = "0-30 days"
            || SELECTEDVALUE ( Table[Record age] ) = "31-61 days"
            || SELECTEDVALUE ( Table[Record age] ) = "61-90 days"
    )
        && SELECTEDVALUE ( Table[Severity] ) = "Medium"
        && [% of vuln wo Sev] >= 0.95, "Green",
    SELECTEDVALUE ( Table[Record age] ) = "91-180 days"
        && SELECTEDVALUE ( Table[Severity] ) = "Medium"
        && [% of vuln wo Sev] <= 0.05
        && [% of vuln wo Sev] > 0, "Yellow",
    (
        SELECTEDVALUE ( Table[Record age] ) = "0-30 days"
            || SELECTEDVALUE ( Table[Record age] ) = "31-61 days"
            || SELECTEDVALUE ( Table[Record age] ) = "61-90 days"
            || SELECTEDVALUE ( Table[Record age] ) = "91-180 days"
    )
        && SELECTEDVALUE ( Table[Severity] ) = "Low"
        && [% of vuln wo Sev] >= 0.95, "Green",
    SELECTEDVALUE ( Table[Record age] ) = "180-360 days"
        && SELECTEDVALUE ( Table[Severity] ) = "Low"
        && [% of vuln wo Sev] <= 0.05
        && [% of vuln wo Sev] > 0, "Yellow",
    "Red"
)

This may need some adjustments, there is also an option to create a table with the values of your maximum and minimun values if you want I can try and setup that table that would allow you to give you a better editing option in the future.

 


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



Hi MFelix, 

 

That worked as a charm after smal adjustments.
Thank you a lot!! 🙂

 

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.