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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
Anonymous
Not applicable

DAX: When same values in column, evaluate the max and return 0 or 1 based on the condition

Hello there!

I'm basically trying to calculate a KPI called OTIF (on time in full delivery) and OTIF%

Easiest to explain through a table:

 

Order numberPart numberDifference in delivery date (days)OTIF

1000

ABC-20
1000CDE40
1000EFG-20
1001ABC-11
1001CDE-11
1002ABC01
1002CDE-11

 

So basically, if the order number is the same --> get the max of difference in delivery days --> if max is less than or equal to 0, OTIF = 1 but if it is greater than 0 = 0.

 

Then I want to calculate the percentage for all those lines:

2 orders was OTIF and 1 was not --> 2/3 OTIF. How do I only calculate the OTIF = 1 once per order number?

 

Thanks for any help. This has bothered me for a couple of days.

2 ACCEPTED SOLUTIONS
Mariusz
Community Champion
Community Champion

Hi @Anonymous 

 

Try the below calculation it can be used as a Column or Measure.

 

Column = 
CALCULATE(
    VAR __max = MAX( 'Table'[Difference in delivery date (days)] )
    RETURN INT( __max <= 0 ),
    ALLEXCEPT( 'Table', 'Table'[Order number] )
)

 

Best Regards,
Mariusz

If this post helps, then please consider Accepting it as the solution.

View solution in original post

Hi @Anonymous 

 

Try this 

Measure = 
DIVIDE(
    CALCULATE(
        DISTINCTCOUNT( 'Table'[Order number] ),
        ALL( 'Table' ),
        'Table'[Column] = 1
    ),
    COUNTROWS( ALL( 'Table'[Order number] ) )
)

 

 

Best Regards,
Mariusz

If this post helps, then please consider Accepting it as the solution.

 

View solution in original post

5 REPLIES 5
Mariusz
Community Champion
Community Champion

Hi @Anonymous 

 

Try the below calculation it can be used as a Column or Measure.

 

Column = 
CALCULATE(
    VAR __max = MAX( 'Table'[Difference in delivery date (days)] )
    RETURN INT( __max <= 0 ),
    ALLEXCEPT( 'Table', 'Table'[Order number] )
)

 

Best Regards,
Mariusz

If this post helps, then please consider Accepting it as the solution.
Anonymous
Not applicable

Thanks alot! That was fast!

 

It worked at least as a calculated column to return 0 and 1.

Do you also happen to know how I could calculate the %?

 

I guess that would be a measure in a similar way, using allexcept also?

 

OTIF% = count distinct order number where OTIF = 1 / all orders

Hi @Anonymous 

 

Try this 

Measure = 
DIVIDE(
    CALCULATE(
        DISTINCTCOUNT( 'Table'[Order number] ),
        ALL( 'Table' ),
        'Table'[Column] = 1
    ),
    COUNTROWS( ALL( 'Table'[Order number] ) )
)

 

 

Best Regards,
Mariusz

If this post helps, then please consider Accepting it as the solution.

 

Anonymous
Not applicable

You're a genius! 

 

Thanks alot Mariusz

Hi @Anonymous 


Glad I could help.

 

Best Regards,
Mariusz

 

Helpful resources

Announcements
July PBI25 Carousel

Power BI Monthly Update - July 2025

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

Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 community update carousel

Fabric Community Update - June 2025

Find out what's new and trending in the Fabric community.