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

Score big with last-minute savings on the final tickets to FabCon Vienna. Secure your discount

Reply
joshua1990
Post Prodigy
Post Prodigy

Calculated Column Lookup next greater value

Hi experts!

I have a dimensional table that shows me the number of working steps per Article and a different table that contains the current state per article.

Dimensional table

ArticleStepValue
AB15
AB24
AB38
AT18
AT27

 

 Value Table

ArticleCurrent StepNext Step Value
AB28
AB14

 

Both tables are linked Many-to-Many.

What I would like to get is the column "Next Step Value" that shows me the Value for the next step.

How is this possible using DAX? 

If the current step is the last step, I would like to get "Current Step" value

1 ACCEPTED SOLUTION
tamerj1
Super User
Super User

Hi @joshua1990 

please use

Next Step Value =
VAR CurrentStep = 'Value Table'[Current Step]
VAR RelatedStepsTable =
    RELATEDTABLE ( 'Dimensional table' )
VAR CurrentStepTable =
    FILTER ( RelatedStepsTable, 'Dimensional table'[Step] = CurrentStep )
VAR CurrentValue =
    MAXX ( CurrentStepTable, 'Dimensional table'[Value] )
VAR NextStepsTable =
    FILTER ( RelatedStepsTable, 'Dimensional table'[Step] > CurrentStep )
VAR NextStep =
    MINX ( NextStepsTable, 'Dimensional table'[Step] )
VAR NextValue =
    MAXX (
        FILTER ( NextStepsTable, 'Dimensional table'[Step] = NextStep ),
        'Dimensional table'[Step]
    )
RETURN
    IF ( ISBLANK ( CurrentValue ), NextValue, CurrentValue )

View solution in original post

2 REPLIES 2
CNENFRNL
Community Champion
Community Champion

As composite keys are not supposed in either PBI or SSAS tabular model, such a rookie's question is, in fact, fairly tricky and demanding.

CNENFRNL_0-1655655657216.png

 

A showcase of powerful Excel worksheet formula,

CNENFRNL_1-1655657664466.png


Thanks to the great efforts by MS engineers to simplify syntax of DAX! Most beginners are SUCCESSFULLY MISLED to think that they could easily master DAX; but it turns out that the intricacy of the most frequently used RANKX() is still way beyond their comprehension!

DAX is simple, but NOT EASY!

tamerj1
Super User
Super User

Hi @joshua1990 

please use

Next Step Value =
VAR CurrentStep = 'Value Table'[Current Step]
VAR RelatedStepsTable =
    RELATEDTABLE ( 'Dimensional table' )
VAR CurrentStepTable =
    FILTER ( RelatedStepsTable, 'Dimensional table'[Step] = CurrentStep )
VAR CurrentValue =
    MAXX ( CurrentStepTable, 'Dimensional table'[Value] )
VAR NextStepsTable =
    FILTER ( RelatedStepsTable, 'Dimensional table'[Step] > CurrentStep )
VAR NextStep =
    MINX ( NextStepsTable, 'Dimensional table'[Step] )
VAR NextValue =
    MAXX (
        FILTER ( NextStepsTable, 'Dimensional table'[Step] = NextStep ),
        'Dimensional table'[Step]
    )
RETURN
    IF ( ISBLANK ( CurrentValue ), NextValue, CurrentValue )

Helpful resources

Announcements
August Power BI Update Carousel

Power BI Monthly Update - August 2025

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

August 2025 community update carousel

Fabric Community Update - August 2025

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