Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
Hi everyone,
I need some help solving the following problem:
I have 3 tables (1 fact + 2 dimensions) which contain the following columns:
| Fact_Table | |||
| ProductID | Grade | DefectCode | DateID |
| 1 | B | D1 | 20230101 |
| 1 | B | D4 | 20230101 |
| 1 | C | D4 | 20230101 |
| 2 | B | D1 | 20230102 |
| 3 | B | D2 | 20230105 |
| 3 | C | D3 | 20230105 |
| 3 | C | D4 | 20230105 |
| 4 | B | D2 | 20230106 |
| 5 | B | D1 | 20230114 |
| 5 | C | D1 | 20230114 |
| Dim_Table | |
| DefectCode | DefectDescription |
| D1 | Defect 1 |
| D2 | Defect 2 |
| D3 | Defect 3 |
| D4 | Defect 4 |
The second dimension table is a standard date dimension.
My goal is to build a matrix visual which looks like this:
| Matrix | ||||
| ProductID | Defect 1 | Defect 2 | Defect 3 | Defect 4 |
| 1 | B | A | A | C |
| 2 | B | A | A | A |
| 3 | A | B | C | C |
| 4 | A | B | A | A |
| 5 | C | A | A | A |
In order to achieve this a created the following measure which I use in the matrix visual:
On the first sight this works pretty well but a problem occures as soon as I want to filter the data inside the matrix using a slicer. (e.g. Date) Date date slicers is using the date dimension with a relationship to my fact table. When I set the date range starting at 20230102, all values for ProductID = 1 will bet set a "A". I know that the visual is supposed the replace not existing values with "A" but in this case, I don't want to show ProductID = 1 at all.
I think that the problem is located in the "ALLSELECTED" part of the FILTER function but I can't figure out what to change in order to get the result needed.
Best regards
Hi @Nico_Saar ,
Here I create a sample to have a test.
I think you can try this code to create a measure.
M_Grade =
VAR _Count =
CALCULATE (
COUNT ( Fact_Table[DefectCode] ),
ALLEXCEPT ( Fact_Table, Fact_Table[ProductID], Dim_Date[DateID] )
)
VAR _LowestGrade =
CALCULATE ( MAX ( Fact_Table[Grade] ) )
RETURN
IF ( _Count = 0, BLANK (), IF ( ISBLANK ( _LowestGrade ), "A", _LowestGrade ) )
Result is as below.
By Default:
Select "20230102" in slicer:
Best Regards,
Rico Zhou
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
Check out the November 2025 Power BI update to learn about new features.
| User | Count |
|---|---|
| 20 | |
| 11 | |
| 10 | |
| 4 | |
| 4 |
| User | Count |
|---|---|
| 34 | |
| 31 | |
| 19 | |
| 12 | |
| 11 |