Forum Discussion
Lookupvalue only first result
Hello
I've got a table that looks like this:
| Column A | Column B | Column C | Calculated Column |
| 3 | 99 | P 18 | =LOOKUPVALUE([Column C];[Column A];1;[Column B];"99") |
| 4 | 88 | P 144 | =LOOKUPVALUE([Column C];[Column A];1;[Column B];[Column B]) |
| 2 | 77 | P 2 | |
| 2 | 77 | P 2 | |
| 1 | 88 | P 1 | |
| 1 | 99 | P 4 | |
| 2 | 44 | P 5 | |
| 3 | 22 | P 7 | |
| 1 | 88 | P 99 |
My goal is that the LOOKUPVALUE finds the row where in [Column A]=1 and [Column B] is the same value as on its own row, and then gives [Column C] as output.
So the first row would give "P 4" as output. This works as long there arent 2 possible entries in the table. In this case, i just want the first one. The Second row would give "P 1" then.
Can someone help?
You should use EARLIER() in your filter:
Column = CALCULATE ( FIRSTNONBLANK ( Table4[Column C], TRUE () ), FILTER ( Table4, Table4[Column A] = 1 && Table4[Column B] = EARLIER ( Table4[Column B] ) ) )Regards,
7 Replies
- malagariContinued Contributor
You can try the FIRSTNONBLANK function instead of LOOKUPVALUE. This would look like:
CALCULATE( FIRSTNONBLANK(ColumnC, TRUE()), FILTER(Table, ColumnA = ColumnB) )
- ArocFrequent Visitor
Hello
I tried what u said and used
=CALCULATE( FIRSTNONBLANK('Table'[Column C]; TRUE()); FILTER('Table';'Table'[Column A]=1); FILTER('Table';'Table'[Column B]='Table'[Column B]) )It works half. It ignores kinda the second Filter, so the output currently is "P 1" for every line. If i replace the second 'Table'[Column B] with the actual Value of the Row (e.g. 99 for the first row, 88 for the second one...) it shows the correct value.
Any other Ideas?
- v-sihou-msftMicrosoft Employee
You should use EARLIER() in your filter:
Column = CALCULATE ( FIRSTNONBLANK ( Table4[Column C], TRUE () ), FILTER ( Table4, Table4[Column A] = 1 && Table4[Column B] = EARLIER ( Table4[Column B] ) ) )Regards,