Forum Discussion

joshua1990's avatar
joshua1990
Icon for Post Prodigy rankPost Prodigy
4 years ago
Solved

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

  • 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 )

2 Replies

  • CNENFRNL's avatar
    CNENFRNL
    Icon for Community Champion rankCommunity 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.

     

    A showcase of powerful Excel worksheet formula,

  • tamerj1's avatar
    tamerj1
    Icon for Community Champion rankCommunity Champion

    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 )