当前位置:首页 > 技术文章 > 正文内容

Match函数的那些小伎俩!(match 函数怎么用)

大家好,今天我们来讲讲Excel中的MATCH函数,MATCH这个查找类函数太常用了,它是很多其他函数组合嵌套的好伴侣,因为太基础,我们往往会忽视它的重要性。


MATCH函数的基本含义


MATCH函数用于在指定区域内查找特定值,并返回该值在区域中的相对位置(指定范围的行序号或列序号)。它是Excel和WPS表格中实现动态定位的根基函数,常与INDEX、OFFSET等函数组合使用。


MATCH函数的公式结构也够简单

=MATCH(查找值, 查找区域, [匹配模式])


查找值:要搜索的内容(文本、数值、单元格引用)

查找区域:单行或单列的数据范围

匹配模式(可选):

0:精确匹配(最常用)

1:升序模糊匹配(区域必须升序排列)

-1:降序模糊匹配(区域必须降序排列)

如果第三参数省略默认为“1”:升序模糊匹配




职场常见办公场景1

列标题的动态定位


比如我们想要确定以“姓名”为名称的列标题位于所选表格区域B1:D4的第几列位置(列序号)。


可以这样简单的输入函数公式:

=MATCH("姓名",B1:D1,0)


即查找文本值“姓名”在B1:D1单行中的精确匹配位置,很明显位于第2个单元格中,所以位置就是列号2。



因为在参数介绍中已经明确表明,MATCH函数的第一参数不仅可以是文本值,也可以是单元格引用:

=MATCH(C1,B1:D1,0)


所以我们可以将查找值文本值“姓名”用C1来代替。



职场常见办公场景2:

行标题的动态定位


这个案例与上一个案例(职场常见办公场景1)是类似的概念。只不过是把在行区域中查找变成了在列区域中查找罢了。


比如我们想要确定以“销量”为名称的行标题位于所选表格区域B1:B3的第几行位置(行序号)。


我们可以这样简单输入函数公式:

=MATCH("销量",B1:B3,0)


即查找文本值“销量”在B1:B3单列中的精确匹配位置,很明显位于第3个单元格中,所以位置就是行号3。



职场常见办公场景3

多条件位置查找


比如我们想要查找月份“3月”的姓名“李四”位于所选表格区域B1:D5的第几行。


可以这行输入函数公式:

=MATCH(1,(B1:B5="3月")*(C1:C5="李四"),0)



将两个条件用乘号连接表示同时满足成立:

(B1:B5="3月")*(C1:C5="李四")


(B1:B5="3月")会返回由逻辑值TRUE和FALSE组成的数组:

{FALSE;FALSE;TRUE;TRUE;FALSE}


(C1:C5="李四")会返回由逻辑值TRUE和FALSE组成的数组:

{FALSE;TRUE;TRUE;FALSE;FALSE}


两者相乘将会转换为由0和1组成的数组:

{0;0;1;0}


数组中的元素“1”则代表两个条件同时成立时的位置。


MATCH函数用查找值“1”,在数组{0;0;1;0}中查找,返回位置“3”。



职场常见办公场景4:

反向查找最后出现的位置


比如A列中的省份名称可能包含重复的数据,我们想要查找“河北”最后出现的单元格位置在第几行。


我们可以这样输入函数公式:

=MATCH(2,1/(A:A="河北"))

省略第3参数默认为升序模糊匹配,会查找小于等于查找值最接近的值。


条件判断:

A:A="河北"生成由逻辑值TRUE(1)和逻辑值FALSE(0)组成的数组。


数组转换:

1/(A:A="河北")将逻辑值TRUE转换为1,逻辑值FALSE转换为错误值#DIV/0!。


匹配逻辑:

MATCH(2, ...)会在转换后的数组中查找最后一个1的位置,因为2大于1,且所有1均小于2。所以最后一个1所在的“河北”位置位于A列的第5个单元格。



职场常见办公场景5

近似匹配


比如我们有一个销量区域对照表:销量小于100,没有折扣;销量大于等于100小于200,折扣为3%;销量大于等于200小于300,折扣为7%;销量大于等于300,折扣为12%。


我们可以这样输入函数公式

=MATCH(D3,A2:A4,1)


因为MATCH函数第三参数是1,所以查找区域A2:A4销量必须升序排序


以D3单元格的销量“215”举例,查找值“215”在A2:A4中不存在,则会返回小于等于215的最大值(销量200)所在的行为“2”



继续加个INDEX函数:

=INDEX(B2:B4,MATCH(D3,A2:A4,1))


确定B2:B4区域内第2行第1列(与参数1重合省略)交叉位置的折扣值“7%”。



这里值得注意的是当销量小于100时,也就是没有折扣,会返回错误值:

=IFERROR(INDEX(B2:B4,MATCH(D3,A2:A4,1)),"0")


嵌套一个IFERROR函数对可能返回的错误值(0折扣)显示空值即可。



职场常见办公场景6

逆向查询(最常见的案例)


我们想要根据“产品”从右向左查询“编码”。


可以这样输入函数公式:

=MATCH(D3,B2:B4,0)


用MATCH函数查找D3单元格“冰箱”在B2:B4区域的精准位置为2。



最后用INDEX函数外嵌:

=INDEX(A2:A4,MATCH(D3,B2:B3,0))


INDEX函数查找A2:A4区域内(编码列)第2行第1列(与编码列重合省略)的交叉位置值为“a2”。


扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/4321.html

分享给朋友:

“Match函数的那些小伎俩!(match 函数怎么用)” 的相关文章

nginx 概述以及学习

假设你是一名网站管理员,你的网站每天都有数百万次的访问量,但是最近你发现有些用户反映访问速度很慢,甚至会出现连接超时的错误。你怀疑是服务器负载过高导致的,因此决定使用nginx作为反向代理服务器来优化网站的性能。你打算将nginx部署在一台独立的服务器上,并将所有的客户端请求通过nginx进行分发和...

nginx多站点的配置

一、多站点配置的引入文件/etc/nginx/nginx.conf 中引入文件夹/etc/nginx/conf.d中的站点配置文件。引入的代码为:include /etc/nginx/conf.d/*.conf;二、nginx的配置文件1、查看nginx进程systemctl status ngin...

2022年从零开始,用一篇博客掌握 nginx 的初级配置

当 nginx 安装之后,默认的配置如下所示(数据来源为宝塔自动生成),本篇博客重点介绍的是配置虚拟机相关内容,即 server 块配置项。 server 块的指令主要用于设置主机和端口, location 块用于匹配网页路径,一个 http 块可以包含多个 server 。基础配置server {...

Nginx如何实现四层负载均衡

静态负载均衡Nginx的四层静态负载均衡需要启用ngx_stream_core_module模块,默认情况下,ngx_stream_core_module是没有启用的,需要在安装Nginx时,添加--with-stream配置参数启用,如下所示。./configure --prefix=/usr/l...

nginx location 多root理解location

由于应用需求,这个 r 目录需要单独拉出来做处理,nginx 最开始是这样写的: server { root /home/webadm/htdocs; index index.php; location /r/ { root /diska/htdocs; } location ~ \.php { f...

服务器排障nginx 499 错误地解决

问题描述:近期平台对外开放了数据查询接口,在数据量特别大时,返回结果时间可能会超过3秒,接口开放后,系统本身调用没有问题,其他第三方平台接入时,总会报链接超时问题;问题原因:查看tomcat日志无任何错误,一开始以为是tomcat接收参数最大限制问题,对tomcat做了一次整体优化,修改连接数、修改...