A Simple Guide to Excel’s XLOOKUP Function and What Each Parameter Means
Excel’s XLOOKUP function is one of those quiet upgrades that can simplify a lot of day-to-day data work — if you understand how it works.
At its core, XLOOKUP helps you find things. You give it a value to look for, tell it where to search, and it returns the match. Think of it like asking Excel, “When you see this, give me that.”
But to really make use of it — and to avoid those frustrating #N/A errors — you need to understand each of the parameters it uses.
Here’s a breakdown, in plain language.
The Syntax
XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])Let’s walk through what each part does.
| Parameter | Required? | What It Means |
|---|---|---|
| lookup_value | ✅ Yes | The value you want to search for — the thing you already have. |
| lookup_array | ✅ Yes | The range where Excel should look for that value. |
| return_array | ✅ Yes | The range from which Excel should return a corresponding result. |
| if_not_found | ❌ No | What to return if nothing is found. Can be a message, number, or blank. |
| match_mode | ❌ No | How precise the match should be:0 = exact (default)-1 = exact or next smaller1 = exact or next larger2 = wildcard match |
| search_mode | ❌ No | The direction or method of search:1 = top to bottom (default)-1 = bottom to top2 = binary search (ascending)-2 = binary (descending) |
Clarifying lookup_value: What Are You Really Looking For?
Here’s a great question someone asked:
“Isn’t the lookup_value the information I already have — not the thing I’m actually looking for?”
Exactly right — and this is a helpful mental shift.
Let’s break it down:
Example Use Case
Goal: Find the employee’s position
What you know: Department = “Marketing”, Salary = 72000
Your data table:
| Department | Salary | Position |
|---|---|---|
| Marketing | 72000 | Data Analyst |
| HR | 75000 | HR Specialist |
| IT | 72000 | Network Engineer |
In this case, you’re not looking for “Marketing” or 72000 — you already have those. You’re looking for the position.
But to get there, you need Excel to find where “Marketing” and 72000 line up — and that’s where lookup_value comes in.
It’s the clue you give Excel. Not the answer you want — the breadcrumb trail that leads to it.
Basic Single Condition Example
=XLOOKUP(72000, B2:B10, C2:C10)
- lookup_value:
72000(the salary you know) - lookup_array:
B2:B10(where Excel looks for it) - return_array:
C2:C10(what Excel gives you back → Position)
What if You Have Multiple Clues?
You can combine conditions like this:
=XLOOKUP("Marketing|72000", A2:A10 & "|" & B2:B10, C2:C10)
- lookup_value:
“Marketing|72000” - lookup_array:
A2:A10 & “|” & B2:B10(joins the two known columns) - return_array:
C2:C10(still gives you the position)
This trick works in Excel 365 and Excel 2021+. It simulates multiple-condition lookups using string concatenation.
A Helpful Reframe
Instead of thinking:
“The lookup_value is the thing I want.”
Think:
“The lookup_value is the thing I know — and I’m using it to find something I don’t.”
XLOOKUP isn’t magic — it’s pattern matching. You provide the known value, and Excel returns the value associated with it.
Why This Matters
XLOOKUP is more flexible than older functions like VLOOKUP:
- It works in any direction — left-to-right or right-to-left.
- It’s more robust when rows shift or are deleted.
- It supports wildcards and more advanced match/search modes.
Final Thought
Understanding how each part of XLOOKUP works — especially lookup_value — helps you build more confident, intentional spreadsheets.
And as we’ve seen, a small mental shift can change the way you think about how data connects. You’re not just asking Excel to find a value. You’re giving it a clue — and asking it to fill in the rest of the story.

