ZLOOKUP Function in Excel

The ZLOOKUP function is a unique feature introduced by Modern Functions Update (MFU) that does not exist in any version of Excel. You can now run it for free on your Excel from 2007 onward, including 365 and 2024 versions.


Description

The ZLOOKUP function searches for a value in the first column of a range and returns a value from another column in the same row. It is designed as a simpler, more intuitive alternative to VLOOKUP, with a syntax that makes it easier to use.

Unlike VLOOKUPZLOOKUP:

  • Does not require the lookup column to be the first column
  • Uses separate lookup and return ranges
  • Has exact match as the default behavior
  • Does not break when columns are inserted or deleted

Think of it as a lightweight, straightforward lookup function that works the way you’d expect it to.

This is particularly useful for:

  • Simple lookups: Find a value in a list and return a corresponding value
  • Data analysis: Match IDs to names, products to prices, etc.
  • Reporting: Pull related data from different columns
  • Data validation: Verify if a value exists in a list

Syntax

=ZLOOKUP(lookup_value, lookup_array, return_array, [if_not_found])
ArgumentDescription
lookup_valueRequired. The value to search for.
lookup_arrayRequired. The range or array to search. Must be a single row or column.
return_arrayRequired. The range or array from which to return the corresponding value. Must be the same size as lookup_array.
[if_not_found]Optional. The value to return if no match is found. If omitted, returns #N/A.
zlookup-excel-function
ZLOOKUP function in Excel 2007 in MFU.

Important Notes

  • ZLOOKUP uses exact match by default – no need to specify 0 or FALSE.
  • The lookup_array and return_array must be the same size.
  • The lookup_array can be any column or row – it does not need to be the first column.
  • If no match is found, ZLOOKUP returns the value specified in [if_not_found] or #N/A.
  • The function is case-insensitive: “APPLE” and “apple” are treated as the same value.
  • The function works with text, numbers, dates, and other data types.

Examples

Basic Usage

If you have product IDs in column A and prices in column B:

=ZLOOKUP("P001", A2:A100, B2:B100)

Returns the price from column B where the ID in column A matches “P001”.

With Custom “Not Found” Message

=ZLOOKUP("P001", A2:A100, B2:B100, "Product not found")

Returns the price if found, or "Product not found" if the ID doesn’t exist.

Lookup to the Left

Unlike VLOOKUPZLOOKUP can look up to the left because the lookup and return ranges are separate:

=ZLOOKUP("Smith", B2:B100, A2:A100)

Finds “Smith” in column B and returns the corresponding value from column A.

With Cell References

If the value to look up is in cell E2:

=ZLOOKUP(E2, A2:A100, B2:B100, "Not found")

With Dates

=ZLOOKUP(TODAY(), A2:A100, B2:B100, "No data for today")

Nested ZLOOKUP

To perform a two-way lookup (similar to INDEX-MATCH-MATCH):

=ZLOOKUP(D2, B6:B17, ZLOOKUP(C3, C5:G5, C6:G17))

This looks for “Gross Profit” in column B and “Qtr1” in the top row, then returns the value at the intersection.


ZLOOKUP: The Perfect Balance Between Simplicity and Power

If you’ve ever struggled with Excel’s lookup functions, ZLOOKUP is the function you’ve been waiting for. It sits in the sweet spot between the outdated VLOOKUP and the powerful but sometimes overwhelming XLOOKUP.


Why ZLOOKUP is Better than VLOOKUP

Let’s face it – VLOOKUP has limitations that have frustrated Excel users for decades:

  • ❌ The lookup column must be the first column – if your data isn’t structured that way, you’re stuck
  • ❌ Column index numbers break when you insert or delete columns
  • ❌ Approximate match is the default – a mistake that leads to wrong results
  • ❌ Cannot look to the left

ZLOOKUP solves all of this:

  • ✅ Lookup column can be anywhere
  • ✅ Uses separate lookup and return ranges – no column index numbers
  • ✅ Exact match is the default – no more accidental wrong results
  • ✅ Looks left, right, anywhere

Practical Use Cases

ScenarioFormula
Product lookup=ZLOOKUP(F2, A2:A100, B2:B100, "Not found")
Employee search (left lookup)=ZLOOKUP(F2, C2:C100, B2:B100)
Price lookup=ZLOOKUP(E2, A2:A100, C2:C100)
Date lookup=ZLOOKUP(TODAY(), A2:A100, B2:B100)
Two-way lookup=ZLOOKUP(D2, B6:B17, ZLOOKUP(C3, C5:G5, C6:G17))
Handle missing values=ZLOOKUP(E2, A2:A100, B2:B100, "No data")

Notes

  • ✅ Fully tested – The implementation in Modern Functions Update works reliably.
  • ✅ The function is fully compatible with Excel 2007, 2010, and all later versions.
  • ℹ️ ZLOOKUP is a unique MFU feature not found in any Excel version.
  • ℹ️ The function uses exact match by default – no need for a match mode argument.
  • ℹ️ The lookup_array can be any column or row – it does not need to be sorted.
  • ℹ️ The function is case-insensitive: “Apple” and “apple” are treated as the same value.
  • ⚠️ If there are duplicate values in lookup_arrayZLOOKUP returns the first match found.

See Also

IFNA – Handles #N/A errors gracefully

XLOOKUP – More advanced lookup function with additional features

XMATCH – Returns the position of a value

Leave a comment