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

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now

Reply
Anonymous
Not applicable

Identifying a MAX value from other rows that are less than row value

Example.png

 

Hi, could someone help me figure out how to write a dynamic measure that looks at any remaining records when filtering and determines the max of the remaining records relative to it's own value?  I've attempted various things such as:

 

Max_Of_Other_Stages = CALCULATE(MAX(OppHistory[StageNameValue]),ALLEXCEPT(OppHistory,OppHistory[StageNameValue]))

 

This is not behaving as expected since it always returns 11.

 

This is a one step toward the true goal which is to calculate the days between those two records, each row's date vs. the max of the records that have a stage value < its own.

 

Any help will be much appreciated!

 

1 ACCEPTED SOLUTION
Eric_Zhang
Microsoft Employee
Microsoft Employee

@Anonymous

Add a filter to the DAX formula.

 

Max_Of_Other_Stages_In_The_Same_Opportunity =
CALCULATE (
    MAX ( OppHistory[StageNameValue] ),
    FILTER (
        ALLEXCEPT ( OppHistory, OppHistory[OpportunityID] ),
        OppHistory[StageNameValue] < MAX ( OppHistory[StageNameValue] )
    )
)

Capture.PNG

 

View solution in original post

3 REPLIES 3
Eric_Zhang
Microsoft Employee
Microsoft Employee

@Anonymous

Add a filter to the DAX formula.

 

Max_Of_Other_Stages_In_The_Same_Opportunity =
CALCULATE (
    MAX ( OppHistory[StageNameValue] ),
    FILTER (
        ALLEXCEPT ( OppHistory, OppHistory[OpportunityID] ),
        OppHistory[StageNameValue] < MAX ( OppHistory[StageNameValue] )
    )
)

Capture.PNG

 

Anonymous
Not applicable

Hi Eric,

 

I noticed that this does not respect filters that have been selected...  For example if I exclude stage name value 4, then I would expect the value for anything StagenameValue of 6 to recognize that the max of the records below it has now become the -1 value.

 

Do you know how to do this?

 

Thanks,

 

Joaquin

Anonymous
Not applicable

Thanks Eric.  I was also able to come up with a similar alternative...

 

Max_Of_Other_Stages = if(HASONEVALUE(OppHistory[StageNameValue]),
CALCULATE(MAX(OppHistory[StageNameValue]),
ALLEXCEPT(OppHistory,OppHistory[StageNameValue]),
OppHistory[StageNameValue]<values(OppHistory[StageNameValue])),
blank())

Helpful resources

Announcements
November Power BI Update Carousel

Power BI Monthly Update - November 2025

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

Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

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.

Top Solution Authors