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 dateJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
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.
Check out the July 2025 Power BI update to learn about new features.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
User | Count |
---|---|
15 | |
9 | |
7 | |
7 | |
6 |
User | Count |
---|---|
22 | |
11 | |
10 | |
10 | |
8 |