Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Calculate with multiple filters

Hi everyone, I am trying to calculate a percentage here by using the CALCULATE function with multiple filters. Here is the dax code that I have written. This measure works as it should, but it takes time to load. I am wondering if there is another way of writing the DAX for better performance?

 
% of hires within 15 workdays = 
VAR NoHiresWithin15WorkDays = CALCULATE(countrows(filter(Request,Request[Hired within 15 Workdays]="Yes")),FILTER(REQUEST, Request[AcceptanceDt]<>BLANK() && [Candidate Confirmed Date]<>BLANK() && Request[RPI2 - DateFlag by RequestID]=tRUE() && [Feedback Workdays by requestID]<=5))
var requestidcount = CALCULATE(COUNT(Request[RequestID]), FILTER(REQUEST, Request[AcceptanceDt]<>BLANK() && [Candidate Confirmed Date]<>BLANK() && Request[RPI2 - DateFlag by RequestID]=tRUE() && [Feedback Workdays by requestID]<=5))
RETURN
NoHiresWithin15WorkDays/requestidcount

Thank you in advance!

  • Anonymous's avatar
    Anonymous
    4 years ago

    Anonymous 

    Try use IF instead of add multiple filters.

    % of hires within 15 workdays = 
    VAR NoHiresWithin15WorkDays = IF([AcceptanceDt]<>BLANK()
                                        && [Candidate Confirmed Date]<>BLANK()
                                            && RPI2 - DateFlag by RequestID]=TRUE()
                                                && [Feedback Workdays by requestID]<=5,
                                                countrows(filter(Request,Request[Hired within 15 Workdays]="Yes")))
    var requestidcount =IF([AcceptanceDt]<>BLANK() 
                            && [Candidate Confirmed Date]<>BLANK() 
                                && [RPI2 - DateFlag by RequestID]=TRUE() 
                                    && [Feedback Workdays by requestID]<=5,
                                        COUNT(Request[RequestID])
    RETURN
    NoHiresWithin15WorkDays/requestidcount

     

     

    Best regards
    Paul Zheng _ Community Support Team
    If this post helps, please Accept it as the solution to help the other members find it more quickly.

1 Reply

  • Anonymous's avatar
    Anonymous
    Not applicable

    Anonymous 

    Try use IF instead of add multiple filters.

    % of hires within 15 workdays = 
    VAR NoHiresWithin15WorkDays = IF([AcceptanceDt]<>BLANK()
                                        && [Candidate Confirmed Date]<>BLANK()
                                            && RPI2 - DateFlag by RequestID]=TRUE()
                                                && [Feedback Workdays by requestID]<=5,
                                                countrows(filter(Request,Request[Hired within 15 Workdays]="Yes")))
    var requestidcount =IF([AcceptanceDt]<>BLANK() 
                            && [Candidate Confirmed Date]<>BLANK() 
                                && [RPI2 - DateFlag by RequestID]=TRUE() 
                                    && [Feedback Workdays by requestID]<=5,
                                        COUNT(Request[RequestID])
    RETURN
    NoHiresWithin15WorkDays/requestidcount

     

     

    Best regards
    Paul Zheng _ Community Support Team
    If this post helps, please Accept it as the solution to help the other members find it more quickly.