The Excel XMATCH function performs a lookup and returns a position in vertical or horizontal ranges. It is a more robust and flexible successor to the MATCH function. XMATCH supports approximate and exact matching, reverse search, and wildcards (* ?) for partial matches.
Syntax:= XMATCH (lookup_value, lookup_array, [match_mode], [search_mode])
The XMATCH function syntax has the following arguments:
- lookup_value – The lookup value.
- lookup_array – The array or range to search.
- match_mode – [optional] 0 = exact match (default), -1 = exact match or next smallest, 1 = exact match or next larger, 2 = wildcard match.
- search_mode – [optional] 1 = search from first (default), -1 = search from last, 2 = binary search ascending, -2 = binary search descending.
Match type
The third argument for XLOOKUP is match_type. This is an optional argument that controls match behavior as follows:
Search mode
The fourth argument for XLOOKUP is search_mode. This is an optional argument that controls search behavior as follows:
Example: Let’s look at some Excel XMATCH function examples and explore how to use the XMATCH function as a worksheet function in Microsoft Excel:Binary searches are very fast, but take care data is sorted as required. If data is not sorted properly, a binary search can return invalid results that look perfectly normal.
Example 1: Exact match
In the example shown, XMATCH is used to retrieve the position in a list of the range A2:A17. The formula is:
Syntax: =XMATCH(G2;A2:A17)
Result:
Based on the Excel spreadsheet above, the following XMATCH examples would return:
Syntax: =XMATCH(G2;A2:A17)
Result: 6
Syntax: =XMATCH(G3;A2:A17)
Result: 10
Syntax: =XMATCH(G4;A2:A17)
Result: 11
Notice XMATCH defaults to an exact match. If “Jack Albertson” G2 was misspelled “Jack Albertsol”, XMATCH would return #N/A.
Example 2: Match behavior
Syntax: =XMATCH(G2;B2:B17;0)
Result:
Based on the Excel spreadsheet above, the following XMATCH examples would return:
Syntax: =XMATCH(G2;B2:B17;0)
Result: 3
Syntax: =XMATCH(G3;B2:B17;0)
Result: #N/A
Syntax: =XMATCH(G4;B2:B17;2)
Result: 5
Syntax: =XMATCH(G5;B2:B17;-1)
Result: 2
Syntax: =XMATCH(G6;B2:B17;1)
Result: 3
Example 3: INDEX and XMATCH
XMATCH can be used just like MATCH with the INDEX function. To retrieve the age of Jack Albertson based on the original example above, the formula is:
Syntax: =INDEX(D2:D17;XMATCH(G2;A2:A17))
Result:
Based on the Excel spreadsheet above, the following XMATCH examples would return:
Syntax: =INDEX(D2:D17;XMATCH(G2;A2:A17))
Result: 30
Syntax: =INDEX(D2:D17;XMATCH(G3;A2:A17))
Result: 27
Syntax: =INDEX(D2:D17;XMATCH(G4;A2:A17))
Result: 50
Note:
- XMATCH can work with both vertical and horizontal arrays.
- XMATCH will return #N/A if the lookup value is not found.