LOOKUP finds a value in one row or column and returns the matching value from another, with simpler (but riskier) syntax than VLOOKUP.
LOOKUP searches a single row or column for a value, then returns the corresponding value from a different row or column at the same position.
It always performs an approximate match — there is no exact-match option — so the lookup range must be sorted ascending or you will get a wrong result with no error to warn you.
=LOOKUP(lookup_value, lookup_vector, [result_vector])| Argument | Description |
|---|---|
| lookup_value required | The value to search for. |
| lookup_vector required | A single row or column to search, sorted ascending. |
| result_vector optional | The row or column to return a value from. If omitted, returns from lookup_vector itself. |
Unlike VLOOKUP and HLOOKUP, LOOKUP has no FALSE/exact-match argument. If your data is not sorted, results will be silently wrong.
=LOOKUP(B2,A2:A6,C2:C6)A2:A6 holds bracket thresholds sorted ascending, C2:C6 holds rates. Returns the rate for the highest threshold that does not exceed B2 — perfect for tiered systems.
=LOOKUP(85,{60,70,80,90})With only one vector, LOOKUP returns the closest value at or below 85 from the list itself — here, 80.
=LOOKUP(B2,{0,50,60,70,80},{"F","D","C","B","A"})A compact way to assign letter grades without a helper table, as long as the boundary array stays sorted.
=LOOKUP(2,1/(A:A<>""),A:A)A classic trick: this returns the last non-blank value in column A, since LOOKUP("falls through" to the last matching position when the value 2 is never found exactly.
LOOKUP assumes ascending order. If it is not sorted, results are simply wrong with no warning.
LOOKUP searches by position across a vector; VLOOKUP searches the first column of a table. They are not interchangeable syntax-wise.
If you need an exact match, use VLOOKUP/INDEX-MATCH/XLOOKUP instead — LOOKUP cannot do it.
ExcelPro has 700+ hands-on Excel exercises across 7 career tracks — free to start, no download needed.
Start practicing free →