Starting December 3, join live sessions with database experts and the Microsoft product team to learn just how easy it is to get started
Learn moreGet certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register now
Hello,
I have a matrix with working times of users, where rows represent invidividual users and columns are dates. Cells represent users working time in a specific day. I want to highlight all cells with value less than 8 and all blank cells with red colour. I need to do this by creating a measure using DAX and not the rules available in conditional formatting. Example data look like this:
UserTable:
DateTable:
HoursTable holding the actual data:
In the model, the UserTable.id is connected to HoursTable.userID and DateTable.Date is connected to HoursTable.Date. It looks like this:
In the HoursTable, I've created a measure Colouring that determines the colour of each cell in a matrix. If the value in cell is less then 8, assign red colour. If it is black, assign red colour. Otherwise, assign no colour.
I've created a Matrix visual using my data
And assigned conditional background colour formatting based on the measure value
As a result, I got a Matrix where cells with value less than 8 have red background. However, the blank values have no colour:
However, if I add the Colouring measure to the matrix as an additional value to be displayed
Then the background of blank cells is suddenly coloured in red
Naturally, this is not desirable because the Colouring measure should not be part of the Matrix values
What am I missing here? Why is it behaving like this and the background is coloured properly only when I add the Colouring measure to the Matrix visual? How should I create a DAX measure or modify my data model to achieve what I desire?
Solved! Go to Solution.
Hi @Anonymous ,
I tried to find other possible ways (conditional formatting Format style as Field value), but it failed... At the moment it seems to be possible to find a more feasible way which is the way you mentioned in your reply that the blank value will be treated as 0 when calculating the hours, and then the data with "blank values" will show the color correctly...
Best Regards
Hi,
Try adding OR to your condition. So something like this: OR(SUM(HoursTable[hours])<8,ISBLANK(SUM(HoursTable[hours])<8))
I hope this post helps to solve your issue and if it does consider accepting it as a solution and giving the post a thumbs up!
My LinkedIn: https://www.linkedin.com/in/n%C3%A4ttiahov-00001/
Proud to be a Super User!
I tried using following expressions, but all of them yield the same incorrect result.
1)
Hi @Anonymous ,
I created a sample pbix file(see attachment) base on your provided info and make the following changes in the file:
1. Create a measure as below to get the sum of hour per user per date
Working hours = SUM('HoursTable'[Hours])
2. Put the above measure to replace the original Values field on the matrix visual and make conditional formatting for this measure just as below screenshot
Best Regards
Hi @v-yiruan-msft ,
Thank you for your response. Unfortunately, this solution does not quite meet my requirements. I cannot use the rules in Conditional Formatting tab. The presented example is a simplification of a report I am preparing for my organization. In the report, the threshold value (in this case number 8 ) is not a fixed number but instead a dynamic number that can be set using a slicer. To my knowledge, Conditional Formatting rules only allow definition of fixed threshold values, and therefore it cannot be used in my situation. Using a measure created via DAX is the only way I can think of to achieve the goal.
Naturally, there is the possibility to replace blank values with 0. It makes the matrix harder to read, but its the only workaround I could come up with to make this work. Still, I'd like to come up with a DAX solution that colours the blank fields, or come to a conclusion that it is not possible.
Hi @Anonymous ,
I tried to find other possible ways (conditional formatting Format style as Field value), but it failed... At the moment it seems to be possible to find a more feasible way which is the way you mentioned in your reply that the blank value will be treated as 0 when calculating the hours, and then the data with "blank values" will show the color correctly...
Best Regards
Hi. I have the same issue and definetly this must be a bug. When the measure in the matrix visual is empty, the formatting measure is not even evaluated (you can test this by making the formatting measure a constant, and still, the matrix cell will be formatted as if it is empty when the matrix measure is empty, ignoring the formatting measure completely).
When you include the formatting measure in the matrix, the formatting measure now is evaluated even then the matrix measure is empty and it works as expected.
How can this be fixed?
(I can't use the 0 solution because I have a line chart that would display ALL dates because of the 0 even when the dates are filterede out (autoexist wouldn't apply and the line chart would explode ignoring the date filter)).
Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.
User | Count |
---|---|
21 | |
20 | |
19 | |
13 | |
12 |
User | Count |
---|---|
42 | |
27 | |
23 | |
22 | |
22 |