xlsdocs.com
Excel Functions · 9 min read
EXCEL

Mastering XLOOKUP in Excel

The function that finally killed VLOOKUP. Faster, more flexible, and now the default lookup tool in modern Excel. Here's everything you need to know.

Why XLOOKUP Changed Everything

For decades, VLOOKUP was the go-to lookup function in Excel. It was limited, error-prone, and required workarounds for basic tasks. XLOOKUP, introduced in 2019 and now ubiquitous in Excel 365 and Excel 2021+, fixes nearly every complaint.

Key Advantage

XLOOKUP can look left or right, return multiple values, handle errors gracefully, and supports wildcards and exact/approximate matches — all in one clean function.

Adoption & Impact

92% Excel 365 users
3.8x Faster than VLOOKUP
68% Fewer #N/A errors

XLOOKUP Syntax

The function signature is clean and intuitive:

XLOOKUP Syntax=XLOOKUP(lookup_value, lookup_array, return_array, 
   [if_not_found], [match_mode], [search_mode])

Parameter Breakdown

Argument Required? Description
lookup_value Yes The value you want to find
lookup_array Yes The array/range to search in
return_array Yes The array/range to return from
if_not_found No Custom value if no match (default #N/A)
match_mode No 0 = exact, 1 = exact or next larger, -1 = exact or next smaller, 2 = wildcard
search_mode No 1 = first-to-last, -1 = last-to-first, 2 = binary ascending, -2 = binary descending

Practical Examples

Basic Replacement for VLOOKUP

Finding a product price:

Basic XLOOKUP=XLOOKUP(A2, Products[SKU], Products[Price], "Not Found")

Left Lookup (The Killer Feature)

No more INDEX + MATCH required:

Left Lookup=XLOOKUP("Widget", Products[ProductName], Products[SKU])

Return Multiple Columns

XLOOKUP can spill multiple values:

Multiple Return=XLOOKUP(A2, Products[SKU], Products[[Price]:[Category]])
[ XLOOKUP spill example with dynamic arrays ]

Advanced Use Cases

Built-in Error Handling

No more IFNA wrappers:

Graceful Errors=XLOOKUP(A2, Products[SKU], Products[Price], "Product not in catalog")

Wildcard & Approximate Matches

Find partial text or tax brackets:

Wildcard Match=XLOOKUP("*Widget*", Products[ProductName], Products[Price], , 2)

XLOOKUP vs VLOOKUP

Feature VLOOKUP XLOOKUP
Search direction Right only Left or Right
Return multiple columns No Yes (spill)
Default error value Requires IFNA Built-in
Performance Slower Faster
Binary search support No Yes

Best Practices in 2026

  • Use structured references with Excel Tables for dynamic ranges
  • Combine with FILTER for powerful data extraction
  • Leverage LET to avoid repeating the same XLOOKUP
  • Always specify if_not_found for user-friendly spreadsheets
  • Use binary search (-2 or 2) on sorted data for massive performance gains
Optimized with LET=LET(
  sku, A2,
  price, XLOOKUP(sku, Products[SKU], Products[Price], "N/A"),
  IF(price="N/A", "Check SKU", price * 1.15)
)

What's Next for Lookups

Microsoft continues to enhance dynamic array functions. Expect deeper integration between XLOOKUP, FILTER, and the upcoming Python in Excel integration for even more powerful data analysis workflows.

Pro Tip

Master XLOOKUP + FILTER + LET together and you'll rarely need complex Power Query steps for everyday analysis.

XLOOKUP isn't just another function — it's a mindset shift toward cleaner, more maintainable spreadsheets. Start using it today and watch your formulas become dramatically more readable and robust.

On this page