The Excel MATCH function finds the relative position of a value in a supplied array. The user can request either an exact match or can request the position of the closest match (above or below), if an exact match is not found.
The syntax of the function is:
Where the arguments are as follows:
|lookup_value||-||The value that you want to look up|
|lookup_array||-||The data array that is to be searched|
An optional logical argument, which can set to 1, 0 or -1 to return the following results:
The Match function can be used to match numeric values, logical values, or text strings. Note that, when used with text strings, the function is NOT case-sensitive. So, for example, the text strings "TEXT" and "text" will be considered to be a match.
You can also use the following wildcards in text matches:
? - matches any single character
* - matches any sequence of characters
if you do actually want to find the ? or * character, type the ~ symbol before this character in your search.eg. the condition "A*e" will match all cells containing a text string beginning with "A" and ending in "e".
It is also useful to know the wildcards that can be used with text strings, when the [match_type] argument is set to 0 (requiring an exact match). These are shown on the right.
Use of these wildcards is illustrated in the examples below.
The following spreadsheet shows the Excel Match function used with the [match_type] argument set to 0. Therefore, in these examples, the function only returns a result if an exact match to the lookup_value is found. Otherwise, the function returns an error.
Note that, in the above examples, as the [match_type] argument is set to 0, the text strings in the lookup_array (cells A1-A5) do not need to be ordered.
The following spreadsheet also shows the Excel MATCH function used with the [match_type] argument set to 0, but in this case the function is used to look up numeric values.
As in the previous examples, as the [match_type] argument is set to 0, the values in the lookup_array (cells A1-A6) do not need to be ordered.
The following spreadsheet shows the Excel MATCH function used with the [match_type] argument set to 1. Therefore, in this example, the data in the lookup_array must be in ascending order, and the function returns the position of the exact match to the lookup_value if this is found, or the position of the closest value below the lookup_value if an exact match is not found.
Note that the [match_type] argument could have been omitted from the functions in this spreadsheet, as this argument takes the value 1 by default.
Further information and examples of the Excel Match Function can be found on the Microsoft Office website.
If you get an error from the Excel Match function, this is likely to be one of the following :
Occurs if the match function fails to find a match for the lookup_value. This may be either :
Either of these cause the lookup_value and the values in the lookup_array to be seen by Excel as containing different values, and will therefore cause the Match function to fail.More information and solutions to these problems can be found on the Failure to match values page
You may also experience the following common problem with the Excel Match function:
Common Match Function Problem
The Excel Match function returns the wrong result
If your Excel Match function simply returns the wrong result, this is likely due to the lookup_array not being ordered correctly.
Check the following:
|1.||Make sure the [match_type] argument is set to the correct value (Note that if this argument is omitted, it will default to 1)|
|2.||If you have set the [match_type] argument to 1 or -1, check that the lookup_array is correctly ordered:|
|- if [match_type] is set to 1, the lookup_array should be in ascending order|
|- if [match_type] is set to -1, the lookup_array should be in descending order|