Excel MATCH Function
MATCH is an Excel function used to locate the position of a lookup value in a row, column, or table. MATCH supports approximate and exact matching, and wildcards (* ?) for partial matches. Often, the INDEX function is combined with MATCH to retrieve the value at the position returned by MATCH.
- lookup_value - The value to match in lookup_array.
- lookup_array - A range of cells or an array reference.
- match_type - [optional] How to match, specified as -1, 0, or 1. Default is 1.
Use the MATCH function to get the relative position of an item in an array. Match offers several different matching modes, which makes it more flexible than other lookup functions. Used together with INDEX, MATCH can retrieve the value at the matched position.
Match type information
- If match_type is 1, MATCH finds the largest value that is less than or equal to lookup_value. The lookup_array must be sorted in ascending order.
- If match_type is 0, MATCH finds the first value exactly equal to lookup_value. lookup_array does not need to be sorted.
- If match_type is -1, MATCH finds the smallest value that is greater than or equal to lookup_value. The lookup_array must be sorted in descending order.
- If match_type is omitted, it is assumed to be 1.
- Note: All match types will find an exact match.
Basic exact match
When match type is set to zero, MATCH performs an exact match. In the example below, the formula in E3 is:
Basic approximate match
When match type is set to 1, MATCH will perform an approximate match on values sorted A-Z, finding the largest value less than or equal to the lookup value. In the example shown below, the formula in E3 is:
Basic wildcard match
When match type is set to zero, MATCH can perform a match using wildcards. In the example shown below, the formula in E3 is:
This is equivalent to:
- Match is not case-sensitive.
- Match returns the #N/A error if no match is found.
- The argument lookup_array must be placed in descending order: TRUE, FALSE, Z-A,...2, 1, 0, -1, -2,..., and so on.
- If match_type is 0 and lookup_value is text, the wildcard characters question mark (?) and asterisk (*) can be used in lookup_value.
- If match_type is 0 and lookup_value is text, lookup_value can contain the wildcard characters asterisk (*) and question mark (?). An asterisk matches any sequence of characters; a question mark matches any single character.