Forum Discussion

joshua1990's avatar
joshua1990
Icon for Post Prodigy rankPost Prodigy
6 years ago

VLOOKUP with MAX

Hello everyone!

I have two tables:

tblOrder

OrderDateValue
100101.01.2020500
100201.01.2020 

 

tblWork

OrderSEQStateString
1001501AAA
1001502

BBB


Now I would like to add the first table a calculated column that shows me the String for the row of tblWork where SEQ & State = MAX

 

How would you do that?

3 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable
    // Please note I'm not using CALCULATE here
    // because if the tblOrder table is big,
    // it would be agonizingly slow.
    [String] =
    var __order = tblOrder[Order]
    var __maxSEQ =
    	MAXX(
    		topn(1,
    			filter(
    				tblWork,
    				tblWork[Order] = __order
    			),
    			tblWork[SEQ],
    			DESC
    		),
    		tblWork[SEQ]
    	)
    var __maxState =
    	MAXX(
    		topn(1,
    			filter(
    				tblWork,
    				tblWork[Order] = __order
    				&&
    				tblWork[SEQ] = __maxSEQ
    			),
    			tblWork[State],
    			DESC
    		),
    		tblWork[State]
    	)
    var __string =
    MAXX(
    	filter(
    		tblWork,
    		tblWork[Order] = __order
    		&&
    		tblWork[SEQ] = __maxSEQ
    		&&
    		tblWork[State] = __maxState
    	),
    	tblWork[String]
    )
    return
    	__string
    	

     

    Best

    D

    • joshua1990's avatar
      joshua1990
      Icon for Post Prodigy rankPost Prodigy

      Thanks for your approach! Unfortunately, I get the following error:
      Calculation error in measure YXX : A single value for column 'XX' cannot be determined in table 'XX'. This can happen when a measure formula references a column that contains many values ​​without specifying an aggregation such as 'min', 'max', 'count' or 'sum' to get a single result.

      • Anonymous's avatar
        Anonymous
        Not applicable
        This is not a measure. It's a calculated column. This is what you asked for.

        Best
        D