在 Excel 中,Match函数用于返回查找值在数组的位置,它共有三个参数,分别为 lookup_value、lookup_array 和 match_type;其中 match_type 有三个参数,即 1、0、-1,当取不同值时返回不同的结果,其中取 0 时,可用通配符问号(?)和星号(*)进行模糊查找。Match函数除单独使用外,还常常与Index函数一起使用。以下就是Match函数的使用方法及与Index组合使用实例的具体操作方法,实例中操作所用版本均为 Excel 2016。
一、Excel Match函数的用法
(一)match_type 取 1(或省略)的使用实例
1、假如要查找服装销量表中价格为 80 与 95 元在 E 列中的位置。首先把 E 列按升序排序,框选 E2:E12,选择“数据”选项卡,单击“升序”,在弹出的“排序提醒”窗口中,选择“扩展选定区域”,单击“确定”,则表格记录按价格升序排序;在 G2 中输入公式 =MATCH(80,E2:E12),按回车,则返回 80 在 E2:E12 中的位置 2;再在 G3 中输入公式 =MATCH(95,E2:E12,1),按回车,则返回 5,操作过程步骤,如图1所示:

2、说明:公式 =MATCH(80,E2:E12) 和 =MATCH(95,E2:E12,1),一个省略 1,另一个未省略,都表示查找小于或等于 lookup_value 的最大值;80 在 E2:E12 中有,因此返回它所在的位置 2,95 在 E2:E12 中没有,所以返回小于它的最大值 89 所在位置,E2:E12 中有两个 89,返回的是第二个 89 的位置。
(二)match_type 取 0 的使用实例
1、查找数值
A、假如要查找价格为 89 元在 E 列中的位置。把公式 =MATCH(89,E2:E12,0) 复制到 G2 单元格,按回车,返回结果为 4,正是 89 在 E2:E12 中位置,操作过程步骤,如图2所示:

B、当 match_type 取 0 时,数组不用排序。如果查找数组中没有的值,则会返回 #N/A 错误,例如查找 87,如图3所示:

按回车后,返回 #N/A 错误,如图4所示:

2、用通配符问号(?)与星号(*)
A、假如要查找以“T恤”结尾的服装在 B 列中的位置。把公式 =MATCH("*T恤",B2:B10,0) 复制到 G2 单元格,按回车,返回结果 1,正是“白色纯棉T恤”在 B2:B10 中的位置(返回的是第一个以“T恤”结束的服装在 B2:B10 中的位置),操作过程步骤,如图5所示:
图5B、假如要查找只有三个字的服装在 B 列中的位置。把公式 =MATCH("???",B2:B12,0) 复制到 G2 单元格,如图6所示:

按回车,返回结果 10,正是“白衬衫”在 B2:B12 中的位置,如图7所示:

(三)match_type 取 -1 的使用实例
1、假如要查找销量为 681 与 750 在 E 列中的位置。框选 F2:F12,选择“数据”选项卡,单击“降序”,在打开“排序提醒”窗口中,选择“扩展选项区域”,单击“确定”,将记录按销量降序排列;把公式 =MATCH(681,F2:F12,-1) 复制到 G2 单元格,按回车,返回结果为 5,正是 681 在 F:F12 中位置;把 681 改为 750,公式变为 =MATCH(750,F2:F12,-1),按回车,结果为 4,操作过程步骤,如图8所示:

B、说明:第二个公式 =MATCH(750,F2:F12,-1) 要查找 750,由于 F2:F12 中没有这个值,因此返回大于或等于 750 的最大值 874 在 F2:F12 中的位置,所以结果为 4。
三、Excel Index 与 Match 组合使用实例
1、假如要查找价格为 65 元的服装的编号。把公式 =INDEX(A:A,MATCH(65,E1:E12,0)) 复制到 G2 单元格,按回车,返回结果为 WS-585
,正是价格为 65 元的服装编号;操作过程步骤,如图9所示:

B、公式说明:
公式 =INDEX(A:A,MATCH(65,E1:E12,0)) 先用 MATCH(65,E1:E12,0) 返回价格为 65 元的服装在 E 列中的位置,结果为 8;再用Index函数返回行号为 8 的服装编号。
index函数的表达式为:INDEX(aray, row_num, [column_num]),第一个参数为数组,第二个参数为行号,第三个参数为列号(可选);示例中省略了列号,因此只返行号为的服装编号。如果既有行号又有列号,则返回行号与列号对应的值。
二、Excel Match函数的语法
1、表达式:MATCH(lookup_value, lookup_array, [match_type])
中文表达式:MATCH(查找值, 查找数组, [查找类型])
2、说明:
A、Match函数用于返回 lookup_value 在数组中的位置;lookup_value 和 lookup_array 是必选项,match_type 是可选项;如果省略 match_type,则默认值为 1。
B、match_type 的取值说明:取 1 表示查找小于或等于查找值 lookup_value 的最大值,返回该值在数组中的位置,要求数组按升序排序;取 0 表示查找等于 lookup_value 的第一个值,返回该值在数组中的位置,不要求数组按升序或降序排序;取 -1 表示查找大于或等于 lookup_value 的最小值,返回该值在数组中的位置,要求数组按降序排序。
C、当 match_type 为 0 且 lookup_value 是文本,可在 lookup_value 中使用通配符“问号 (?) 和星号 (*)”;问号表示任意一个字符,星号表示任意一个或一串字符;如果要查找问号或星号,需要在它们前加转义波形符(~)。