Excel 匹配函数
MATCH函数是Excel的一种内置函数,允许用户在行、列或表中定位查找位置。你也可以理解为MATH函数在一系列单元格中搜索指定项,并将其位置返回给用户。
例如, 一个Excel列包含四个值34,12,53,29,分别为A1:A4。要在范围A1:A4内查找53的位置,MATCH公式将为-
=MATCH(53, A1:A4, 0)
在找到指定范围内的53后,它将返回3,这意味着53是该范围中的第三个项目。
备注:MATCH()函数支持准确匹配、近似匹配和通配符(*,?)匹配。
MATCH()函数是LOOKUP函数的一种替代。当您需要在范围(由用户指定)中查找项的位置而不是项本身时,始终使用MATCH函数。
语法和参数
以下是MATCH函数的语法和参数值
“ MATCH()函数不区分大小写,所以 Happy 和 HAPPY 对它来说都是相同的 。”
LOOKUP_value(必选)
LOOKUP_value参数包含要在Excel工作表中的指定单元格范围中搜索的值。这是一个必需的参数,这意味着必须在此参数中传递值。它可以接受数字、文本或逻辑值。
例如 ,您想通过使用人名作为LOOKUP_value来查找某人的出生日期。因此,出生日期是您想要的值。
注:文本值必须用双引号(””)括起来。
LOOKUP_range(必选)
LOOKUP_range是一个参数,其中包含LOOKUP_value将要搜索的范围。
例如 ,范围将被指定为A1:A10。这是您将查找匹配值的范围。
match_type(可选)
与上述两个参数不同,这是一个可选参数,它接受一个数值。该数字可以是1、0或-1,默认值为此参数的1。
- 1表示精确或下一个最小匹配
- 0表示精确匹配
- -1表示精确或下一个最大匹配
此参数指定Excel将如何在LOOKUP_range数组参数中搜索LOOKUP_value的位置。
返回值
- MATCH()函数如果在指定的单元格范围中找到值,则返回该值的位置。
- 如果MATCH()函数找不到指定的值,则返回#N/A错误。
重要提示
以下是MATCH()函数需要注意的一些重要提示:
- MATCH()函数返回所搜索元素的位置,而不是值本身。
- 如果MATCH()函数无法在指定范围内找到值,则返回#N/A错误代码。
- 如果您正在搜索文本数据,请将值作为LOOKUP_value放在双引号中。例如,在A2:A15范围内搜索”蓝牙”。
- 在匹配文本值时,MATCH()函数会寻找完全匹配的拼写。它不区分大小写,因此无法区分大写和小写字母。
- 此函数从您在函数中提供的范围开始计算指定项的位置,而不是从A1单元格开始。因此,如果更改范围,返回位置也会改变。
- 如果lookup_value是一个文本字符串,并且您还使用了第三个参数match_type的值为0。您还可以在其中使用通配符字符。
?
(问号)用于匹配文本字符串中的任何单个字符。*
(星号)用于匹配文本字符串中的模式或字符序列。~
(波浪符运算符)是一个特殊运算符,用于在字符串中查找实际的问号(?)或星号(*)字符。
现在,让我们看一些不同的例子,以便更好地理解此函数的实际用法。
MATCH()函数在Excel中的用法
为了理解MATCH()函数的工作原理,以及不同参数值下它的不同工作方式,我们有几个例子如下所述。
当我们在Excel中有一个非常大的数据集,并且希望在其中查找某些内容时,使用MATCH()函数非常有帮助。您可以使用MATCH()函数中的一个特定单词来查找位置。如果该值存在于Excel工作表中,则MATCH()将返回其位置。
然后,您可以直接访问并查看完整的信息。这样可以节省用户搜索数据的时间。
注意:请记住,此函数从您在函数中定义的范围开始计算指定项的位置,而不是从A1单元格开始。因此,如果更改范围,它返回的位置也会改变。
精确匹配示例
首先,我们将讨论两个字符串数据的精确匹配示例。请参见以下示例:
示例1:查找字符串数据
假设我们有以下产品数据集,在其中我们将查找”Boat earphone”的位置。
请看下面的步骤如何完成:
步骤1: 选择一个单元格来存储返回的结果,并在公式栏中写入以下公式。
=MATCH("Boat Earphones",A2:A20,0)
这里 Boat Earphones 是要在 A2 到 A20 范围内搜索的值,而 0 用于精确匹配。
步骤2: 通过按下回车键,如果存在搜索的关键字,将返回其位置。
当找到LOOKUP_value时的结果
步骤3: 在Excel文件中找到 Boat earphones 后,查看MATCH()函数返回的位置。
当未找到LOOKUP_value时的结果
现在,我们将寻找一个在Excel表格中不可用的值。例如,在A1到A10范围内查找手套。
步骤4: 在目标单元格范围中找不到LOOKUP_value时,它不会返回任何位置。它将在单元格中返回#N/A错误,如下图所示。
示例2:查找行星的位置
让我们看一个简单的例子来搜索行星的位置。我们有一个行星列表,您可以使用MATCH()函数找到特定行星的位置。
我们需要找到一个精确匹配,而不是近似值。因此,我们将使用0作为第三个参数值进行精确匹配。
步骤2: 将以下MATCH()公式复制并粘贴到您的Excel公式栏中。
=MATCH("Saturn",A25:A35,0)
此处 Saturn 是要在 A25到A35 范围内搜索的查找值, 0 用于精确匹配。
步骤3: 现在,点击您键盘上的 Enter 键,并查看在找到与Saturn完全匹配后,MATCH()函数返回的位置。
返回值为 6 ,这意味着土星是列表中的第六个行星。
近似匹配
现在,我们将使用以下示例来寻找精确或近似匹配。因此,您将看到MATCH()函数如何通过近似匹配来查找位置。
有两种方法:一种是最接近匹配,另一种是最接近大的匹配。分别描述一个例子。
示例1:最接近匹配
现在,我们将使用MATCH()函数的第三个参数中的1(用于最接近匹配)来展示一个近似匹配的示例。在此示例中,我们将采用数值数据集。
我们在Excel工作表中有这个数值数据集。
我们将使用MATCH()函数从数据列中查找精确值和近似值。请按照以下步骤进行操作:
步骤1: 我们正在寻找以下可用数据中的4349或近似值。
步骤2: 在Excel工作表的公式栏中使用以下公式,然后通过点击 Enter 键获取结果。
=MATCH(4349,B38:B50,1)
步骤3: 观察到MATCH()函数在指定范围内返回了位置4。值4349不在指定范围内,它最接近4000。因此,它返回了近似值的位置,即4。
这是查找精确值或下一个最大近似值位置的示例。
示例2:下一个最大匹配
现在,我们将通过在MATCH()函数的第三个参数中提供-1(用于下一个最大匹配)来展示一个近似匹配的示例。对于这个示例,我们将使用前面示例中使用的相同数据集。
我们在Excel工作表中有这个数值数据集。
我们将使用MATCH()函数从数据列中查找确切值和下一个最大的近似值。按照以下步骤操作:
步骤1: 我们要查找相同的值,4349,并在下面的可用数据中找到它的确切或近似匹配项。
步骤2: 在Excel工作表的公式栏中使用以下公式,并通过点击 Enter 键来获取结果。
=MATCH(4349,B38:B50,-1)
步骤3: 看到MATCH()函数返回的位置为5位于指定范围内。值4349不在指定范围内;它是接近5000的下一个较大值。因此,它返回了近似值位置,即5。
这是找到精确或下一个最大近似值的示例。
示例3:通配符匹配
Excel允许用户使用MATCH()函数在数据上进行通配符匹配。您可以在Excel中执行两种通配符操作:使用星号(*
)和问号(?
)运算符。我们将通过使用MATCH()函数来展示通配符匹配的示例。
我们在Excel工作表中有一组数据,我们将在这些数据上执行通配符匹配。
使用问号 (?) 运算符
我们将使用带有 MATCH() 函数内的文本字符串的问号 (?) 符号来寻找某种模式。 例如 , Spe??er。MATCH() 函数将寻找包含与之类似的单词的文本,比如 Speaker。
步骤 1: 选择一个单元格来存储结果,并编写以下 MATCH() 公式。它将在产品列中查找具有 P?ndrive 的匹配项。
=MATCH("P?ndrive",A1:A15,0)
它将返回在“Product”列中找到的第一个匹配项的位置。记住,问号(?)将忽略指定文本的第二个字母。
步骤2: 它在获得第一个匹配项时返回了位置3。
使用星号(*
)运算符
我们可以使用星号(*
)符号在MATCH()函数中的文本字符串中查找一个模式。例如,Sp*
。MATCH()函数会寻找以 Sp 开头的文本。
步骤1: 选择一个单元格来存储结果,并编写以下MATCH()公式。它会寻找以 Sp 开头的产品名称的匹配项。
=MATCH("Sp*",A1:A15,0)
它将返回Product列中第一个匹配模式的位置。请记住,星号(*)运算符会导致文本字符串中指定的模式。
步骤2: 它在找到第一个匹配项时返回位置7。
如果数据不匹配怎么办
当MATCH()函数找不到指定的值时,Excel会生成一个错误(#N/A
)。这个#N/A
错误指的是 值不可用错误 。请看下方截图,显示了对于找不到值的MATCH()操作。
在给定的数据集中,我们正在搜索B38到B50范围内的值为4349的值。让我们看看#N/A结果的MATCH()函数。
看到4349的值没有在指定范围内找到。所以,它返回了 #N/A
错误,即,值不可用错误。