Forum Discussion

jeyare's avatar
jeyare
Helper II
5 years ago
Solved

Offset + Match (Excel) equivalent in DAX

In a learning mode,  can't find a solution for this example (simplified). Thank you for your tip.

 

to column "Index W":

- I need to MATCH the nearest greater value from "Weight B" for each evaluated row value of "Age A"

- then I need to write the value of "Weight A" matched

 

In Excel it is easy done by:

OFFSET(A1, MATCH(Age A, Age B , 1 ), 1)

 

Sample:

Age AWeight AAge BIndex W
1.0101.1 
1.2203.2 
3.6303.7 

 

Expected result:

Age AWeight AAge BIndex W
1.0101.120
1.2203.230
3.6303.7blank
  • Index W = 
    MAXX(
        TOPN(
            1,
            FILTER( DATA, DATA[Age B] > EARLIER( DATA[Age B] ) ),
            DATA[Age A], ASC
        ),
        DATA[Weight A]
    )

3 Replies

  • Hi,

    The below is for creating a calculated column.

     

     

    Index W CC =
    VAR _ageB = Data[Age B]
    VAR _condition =
    MINX ( FILTER ( Data, Data[Age A] > _ageB ), Data[Age A] )
    RETURN
    CALCULATE ( SUM ( Data[Weight A] ), FILTER ( Data, Data[Age A] = _condition ) )

     

    Link to the sample pbix file 

     

     

  • CNENFRNL's avatar
    CNENFRNL
    Community Champion
    Index W = 
    MAXX(
        TOPN(
            1,
            FILTER( DATA, DATA[Age B] > EARLIER( DATA[Age B] ) ),
            DATA[Age A], ASC
        ),
        DATA[Weight A]
    )