Xlookup Function
Xlookup Function
Excel for Office 365 Excel for Office 365 for Mac Excel for the web
Use the XLOOKUP function when you need to find things in a table or a range by row. For
example, look up the price of an automotive part by the part number, or find an employee name
based on their employee ID. With XLOOKUP, you can look in one column for a search term, and
return a result from the same row in another column, regardless of which side the return column
is on.
SYNTAX
The XLOOKUP function searches a range or an array, and returns an item corresponding to the first
match it finds. If a match doesn't exist, then XLOOKUP can return the closest (approximate) match.
Argument Description
Required
Required
Required
[if_not_found] Where a valid match is not found, return the [if_not_found] text you supply.
Optional If a valid match is not found, and [if_not_found] is missing, #N/A will be returned.
Optional 0 - Exact match. If none found, return #N/A. This is the default.
Optional 1 - Perform a search starting at the first item. This is the default.
2 - Perform a binary search that relies on lookup_array being sorted in ascending order. If
not sorted, invalid results will be returned.
-2 - Perform a binary search that relies on lookup_array being sorted in descending order.
If not sorted, invalid results will be returned.
Example 1
This example uses a simple XLOOKUP to look up a country name, then return its telephone country
code. It only includes the lookup_value (cell F2), lookup_array (range B2:B11), and return_array (range
D2:D11) arguments. It does not include the match_mode argument, as XLOOKUP defaults to an exact
match.
Note: XLOOKUP is different from VLOOKUP in that it uses separate lookup and return arrays, where
VLOOKUP uses a single table array followed by a column index number. The equivalent VLOOKUP
formula in this case would be: =VLOOKUP(F2,B2:D11,3,FALSE)
Example 2
In this example, we're looking up employee information based on an employee ID number. Unlike
VLOOKUP, XLOOKUP is able to return an array with multiple items, which allows a single formula to
return both employee name and department from cells C5:D14.
Example 3
Example 4
The following example looks in column C for the personal income entered in cell E2, and finds a
matching tax rate in column B. It sets the if-not_found argument to return a 0 if nothing is found. The
match_mode argument is set to 1, which means the function will look for an exact match, and if it can't
find one, it will return the next larger item. Finally, the search_mode argument is set to 1, which means
the function will search from the first item to the last.
Note: Unlike VLOOKUP, the lookup_array column is to the right of the return_array column, where
VLOOKUP can only look from left-to-right.
Example 5
Next, we'll use a nested XLOOKUP function to perform both a vertical and horizontal match. In this case,
it will first look for Gross Profit in column B, then look for Qtr1 in the top row of the table (range C5:F5),
and return the value at the intersection of the two. This is similar to using
the INDEX and MATCH functions in conjunction. You can also use XLOOKUP to replace
the HLOOKUP function.
The formula in cells D3:F3 is: =XLOOKUP(D2,$B6:$B17,XLOOKUP($C3,$C5:$G5,$C6:$G17)).
Example 6
This example uses the SUM function, and two XLOOKUP functions nested together to sum all the values
between two ranges. In this case, we want to sum the values for grapes, bananas, and include pears,
which are between the two.
How does it work? XLOOKUP returns a range, so when it calculates, the formula ends up looking like
this: =SUM($E$7:$E$9). You can see how this works on your own by selecting a cell with an XLOOKUP
formula similar to this one, then go to Formulas > Formula Auditing > Evaluate Formula, and press
the Evaluate button to step through the calculation.