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
Please help me with this scenario at hand
I have a factless fact table imported into a Power BI Desktop model that contains the product modules with Testcase Groups and Testcases as shown in the example below:
| Module | TestCaseGroup | TestCaseID |
| A | G1 | 101 |
| A | G1 | 102 |
| A | G2 | 101 |
| A | G2 | 102 |
| A | G2 | 103 |
| A | G2 | 104 |
| A | G3 | 102 |
| A | G3 | 105 |
| B | G4 | 201 |
| B | G4 | 203 |
| B | G5 | 201 |
| B | G5 | 202 |
| B | G5 | 203 |
What I need to calculate and show in Power BI Desktop is two things:
Please kindly help.
Solved! Go to Solution.
HI @sujaisparks
Try these MEASURES
Test_Cases_Covered = DISTINCTCOUNT ( TableName[TestCaseID] )
Test_Cases_Not_Covered =
CALCULATE (
DISTINCTCOUNT ( TableName[TestCaseID] ),
ALL ( TableName[TestCaseGroup] )
)
- [Test_Cases_Covered]
To get the Names of IDs not covered, you can use this MEASURE
IDs not covered =
CONCATENATEX (
EXCEPT (
CALCULATETABLE (
VALUES ( TableName[TestCaseID] ),
ALL ( TableName[TestCaseGroup] )
),
VALUES ( TableName[TestCaseID] )
),
[TestCaseID],
", "
)
HI @sujaisparks
Try these MEASURES
Test_Cases_Covered = DISTINCTCOUNT ( TableName[TestCaseID] )
Test_Cases_Not_Covered =
CALCULATE (
DISTINCTCOUNT ( TableName[TestCaseID] ),
ALL ( TableName[TestCaseGroup] )
)
- [Test_Cases_Covered]
Tons of thanks to you sir for the help!!
What changes do I have to do the measure (Test_cases_not_covered) if need to put the TestcaseGroup Dimension attribute (TestcaseGroupDescription) as a slicer. This is a snapshot of the relationship with the factless fact table.
Here is the copy of the poc i'm working on My POC
Tons of thanks to you sir for the help!!
What changes do I have to do the measure (Test_cases_not_covered) if need to put the TestcaseGroup Dimension attribute (TestcaseGroupDescription) as a slicer. This is a snapshot of the relationship with the factless fact table.
Here is the copy of the poc i'm working on My POC
To get the Names of IDs not covered, you can use this MEASURE
IDs not covered =
CONCATENATEX (
EXCEPT (
CALCULATETABLE (
VALUES ( TableName[TestCaseID] ),
ALL ( TableName[TestCaseGroup] )
),
VALUES ( TableName[TestCaseID] )
),
[TestCaseID],
", "
)
Check out the November 2025 Power BI update to learn about new features.
Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!