Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. 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.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.
User | Count |
---|---|
14 | |
10 | |
10 | |
9 | |
9 |
User | Count |
---|---|
20 | |
13 | |
13 | |
11 | |
8 |