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

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

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
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

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.