在 Excel 中,Match函数用于返回查找值在引用单元格中的相对位置。它共有三个参数,第一个参数为查找值,第二参数为查找区域,第三个参数为匹配选项;匹配选项可以设置为精确匹配和模糊匹配,其中模糊匹配需要排序。
组合实现对变化区域动态跨表求和。以下是Match函数的使用方法的8个实例。
中文表达式:MATCH(查找值, 查找区域, [匹配类型])
A、如果 Match_Type 省略或取 1,则查找小于等查找值的最大值,并且查找区域要按升序排序,否则可能返回不正确的值。
B、如果 Match_Type 取 0,则查找第一个完全等于查找值的值,查找区域不需要排序。
C、如果 Match_Type 取 -1,则查找大于等于查找值的最小值,查找区域要按降序排序,否则可能返回不正确的值。
(2)当 Match_Type 为 0 且查找值是文本,可在查找值中使用通配符“问号 (?) 和星号 (*)”;问号表示任意一个字符,星号表示任意一个或一串字符;如果要查找问号或星号,需要在它们前加转义字符(~);例如:查找问题应该这样写:~?,查找星号应该这样写:~*。
(3)如果Match函数找不到值,将返回错误值 #N/A;另外,查找文本时,Match函数不区分大小写。
二、Excel Match函数的使用方法及实例
1、假如要查找员工表中“姓名”为“黄子辛”的位置。双击 A9 单元格,把公式 =MATCH("黄子辛",A2:A8) 复制到 A9,按回车,返回错误值 #N/A;框选 A2:A8,选择“数据”选项卡,单击“升序”图标,打开“排序提醒”窗口,保持默认选项“扩展选定区域”,单击“确定”,则表格按“姓名”升序排列;再次双击 A9,按回车,返回“黄子辛”在 A2:A8 的位置 1;双击
A9,给公式添加第三个参数 1,按回车,也返回 1;操作过程步骤,如图1所示:
A、公式 =MATCH("黄子辛",A2:A8) 中,“黄子辛”为查找值,A2:A8 为查找区域,它省略了参数 Match_Type,当没有对 A 列按升序排序时,返回错误值 #N/A,当排序后才能返回“黄子辛”在 A2:A8 中的位置 1,当给公式加上参数 Match_Type(设置为 1)后,同样返回 1,说明参数 Match_Type 省略或取 1
时,查找区域需要按升序排序且查找小于等于查找值的最大值。
B、另外,查找值在查找区域中的位置从选定区域开始算起,这里的选定区域从第二行开始算起,因此返回 1。
1、同样以查找员工表中“姓名”为“黄子辛”的位置为例。双击 A9 单元格,把公式 =MATCH("黄子辛",A2:A8,0) 复制到 A9,按回车,返回 3;双击 A9,把公式后面的 0 删除,按回车,也返回 3;操作过程步骤,如图2所示:
A、当参数 Match_Type 取 0 时,在不按升序排序时,仍能正确返回“黄子辛”在 A2:A8 中的位置 3,说明 Match 取 0 时,查找区域不用排序。
1、假如要在水果销量表中查找销量 2050 和 2000 的位置。双击 D8 单元格,把公式 =MATCH(,-1) 复制到 D8,按回车,返回错误值 #N/A;选中 D8,按 Delete 键把公式删除;选择“数据”选项卡,单击“降序”图标把表格按“销量”降序排序;再次把公式 =MATCH(,-1) 复制到 D8,按回车,返回 2050 在 D2:D8 中的位置 3;双击
D8,把 2050 改为 2000,按回车,同样返回 3;操作过程步骤,如图3所示:
A、当 Match_Type 取 -1 时,在未对查找区域“销量”列排序前,公式返回错误值 #N/A,当按“降序”排序后,能返回 2050 在 D2:D8中的正确位置 3,说明 Match_Type 取 -1,查找区域必须按降序排序;当把 2050 改为 2000 后,由于 D2:D8 中没有 2000,所以查找大于等于 2000 的最小值,即 2050,最后返回该值的位置。
(四)查找值使用通配符问号(?)或星号(*)的实例
1、假如要查找以任意一个字或三个字开头且以“瓜”结尾的水果名称在 A 列中的位置。双击 D8 单元格,把公式 =MATCH("?瓜",A2:A7,0) 复制到 D8,按回车,返回 2;双击 D8,把 "?瓜" 改为 "???瓜",按回车,返回 4;再次双击 D8,把 "???瓜" 改为 "*桃",按回车,返回 5;操作过程步骤,如图4所示:
公式 =MATCH("?瓜",A2:A7,0) 中的查找值 "?瓜" 有一个问号,它表示任意一个字,找到的是“香瓜”,因此返回位置 2;"???瓜" 表示由任意三个字开头且以“瓜”结尾,因此找到“青皮西瓜”;"*桃" 表示以任意一个或多个字开头且以“桃”结尾,因此找到“猕猴桃”。使用通配符除以上几种查找方式外,还可以组合出多种查找方式,在前面的篇章中已经介绍过多次。
三、Excel Match函数的使用方法扩展实例
(二)Indirect + Match 组合实现返回行列对应的多个值(提取数据)实例
右下角单元格填充柄上,按住左键往下拖,则提取“香瓜”的所有数据;双击 B13,把公式 =INDEX($A$1:$D$7,MATCH($A13,$A$1:$A$7,),MATCH(B$9,$A$1:$D$1,)) 复制到 B13,按回车,同样返回“浆果”,再用往右拖和往下拖的方法提取剩余数据;操作过程步骤,如图5所示:
A、$A10 表示绝对引用列相对引用行,往右拖时,A10 不会变为 B10、C10、……;往下拖时,A10 会变为 A11、A12、……;$A$1:$A$7以数组形式返回 A1:A7 中的“名称”。
1、假如要返回大于等于查找值的最小值对应的某列的值,例如要查找价格为 3.5 或 3.8 对应的“名称”。先把 C 列按“降序”排序(方法在上面“Match_Type 取 -1 的实例”已经介绍),双击 B10 单元格,把公式 =OFFSET(A1,MATCH(A10,C2:C7,-1),) 复制到 B10,按回车,返回“猕猴桃”;双击 C10,把公式
1、假如要汇总每个月的女装和男装的销量,女装销量与男装销量分别在一个表,要把它们汇总到“汇总”表。当前工作表为“服装销量女装”,单击“服装销量男装”切换到该表,单击“汇总”表切换到该表;双击 B2 单元格,把公式 B2,用往右拖的方法返回“女装”剩余月份的销量汇总结果,再用往下拖的方法返回“男装”各月的销量汇总结果;操作过程步骤,如图7所示:
A、"服装销量"&$A2&" 用于组合工作表名称,每个工作表都以“服装销量”开头,A2 中为“女装”,因此,公式执行时,"服装销量"&$A2&" 变为“服装销量女装”。当往下拖时, A2 变为 A3,"服装销量"&$A2&" 变为 "服装销量"&$A3&",即“服装销量男装”。
E、则公式变为 =SUM(OFFSET(服装销量女装!$B$3:$B$7,,2,))),进一步计算用 OffSet 返回“服装销量女装!$D3$3:$D$7”,是怎么返回的呢?执行到 OffSet 时,首取出 B3,然后返回与 B3 相隔两列的单元格,即返回 D3;第二次取出 B4,返回与 B4 相隔两列的单元格
D4;其它的以此类推,因此最后返回“服装销量女装!$D3$3:$D$7”;则公式变为 =SUM(服装销量女装!$D$3:$D$7),最后用 Sum 对 D3:D7 求和,所以返回 2407。