Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.

Reply
Nepal101
Helper III
Helper III

Distinct count with two filter from different table (DAX)

Hello, 
I am new to Dax and I need some help in getting an optimized way to create these measures. When I use these measures it takes a longer time to get the result 
First measure=CALCULATE(

    DISTINCTCOUNT(factInspectionViolation[InspectionKey]),

    FILTER( 'dimInspection', dimInspection[InspectionLevelNumber] IN {3,2,1} )

    )
Second Measure =

CALCULATE(

    DISTINCTCOUNT(factInspectionViolation[InspectionKey]),

    FILTER ( factInspectionViolation, [IsOutOfService] = "Y" ),

    FILTER( dimViolation, [BASIC] IN { "Driver Fitness", "Hours of Service Compliance", "Controlled Substances / Alcohol"  }

))

Third Measure=DIVIDE([SecondMeasure],[First Measuer])

1 ACCEPTED SOLUTION
AlexisOlson
Super User
Super User

See if it help to filter columns rather than tables.

 

DIVIDE (
    CALCULATE (
        DISTINCTCOUNT ( factInspectionViolation[InspectionKey] ),
        FILTER (
            VALUES ( 'dimInspection'[InspectionLevelNumber] ),
            dimInspection[InspectionLevelNumber] IN { 3, 2, 1 }
        )
    ),
    CALCULATE (
        DISTINCTCOUNT ( factInspectionViolation[InspectionKey] ),
        FILTER (
            VALUES ( factInspectionViolation[IsOutOfService] ),
            factInspectionViolation[IsOutOfService] = "Y"
        ),
        FILTER (
            VALUES ( dimViolation[BASIC] ),
            dimViolation[BASIC]
                IN {
                "Driver Fitness",
                "Hours of Service Compliance",
                "Controlled Substances / Alcohol"
            }
        )
    )
)

 

 

It's a bit cleaner-looking like this:

 

DIVIDE (
    CALCULATE (
        DISTINCTCOUNT ( factInspectionViolation[InspectionKey] ),
        KEEPFILTERS ( dimInspection[InspectionLevelNumber] IN { 3, 2, 1 } )
    ),
    CALCULATE (
        DISTINCTCOUNT ( factInspectionViolation[InspectionKey] ),
        KEEPFILTERS ( factInspectionViolation[IsOutOfService] = "Y" ),
        KEEPFILTERS ( dimViolation[BASIC]
            IN {
            "Driver Fitness",
            "Hours of Service Compliance",
            "Controlled Substances / Alcohol"
        } )
    )
)

 

View solution in original post

1 REPLY 1
AlexisOlson
Super User
Super User

See if it help to filter columns rather than tables.

 

DIVIDE (
    CALCULATE (
        DISTINCTCOUNT ( factInspectionViolation[InspectionKey] ),
        FILTER (
            VALUES ( 'dimInspection'[InspectionLevelNumber] ),
            dimInspection[InspectionLevelNumber] IN { 3, 2, 1 }
        )
    ),
    CALCULATE (
        DISTINCTCOUNT ( factInspectionViolation[InspectionKey] ),
        FILTER (
            VALUES ( factInspectionViolation[IsOutOfService] ),
            factInspectionViolation[IsOutOfService] = "Y"
        ),
        FILTER (
            VALUES ( dimViolation[BASIC] ),
            dimViolation[BASIC]
                IN {
                "Driver Fitness",
                "Hours of Service Compliance",
                "Controlled Substances / Alcohol"
            }
        )
    )
)

 

 

It's a bit cleaner-looking like this:

 

DIVIDE (
    CALCULATE (
        DISTINCTCOUNT ( factInspectionViolation[InspectionKey] ),
        KEEPFILTERS ( dimInspection[InspectionLevelNumber] IN { 3, 2, 1 } )
    ),
    CALCULATE (
        DISTINCTCOUNT ( factInspectionViolation[InspectionKey] ),
        KEEPFILTERS ( factInspectionViolation[IsOutOfService] = "Y" ),
        KEEPFILTERS ( dimViolation[BASIC]
            IN {
            "Driver Fitness",
            "Hours of Service Compliance",
            "Controlled Substances / Alcohol"
        } )
    )
)

 

Helpful resources

Announcements
FabCon Global Hackathon Carousel

FabCon Global Hackathon

Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

Check out the October 2025 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.