在上几期的函数介绍中,分别介绍了Match和XMatch、Index以及TextSplit这几个函数。
1、Match和XMatch函数相关的文章----《Match和XMatch就像是excel界的“北斗系统”,定位数据老厉害啦!》
2、Index函数相关的两篇文章---《知道数据项在表中的位置,怎么用Index来获取数据?》和《Index的这种用法连微软和WPS都没预料到,仅仅只需要改个符号…》
3、TextSplit函数相关的文章---《excel函数再添新成员,WPS里竟然没有相关介绍,学会了提效明显!》
今天我们正式将这几个函数放在一起,看看它们神奇的能力。这将给你的工作带来巨大便利,长此以往升职加薪,年薪5万不是梦!
Index和Match这对黄金搭档,解除了Vlookup的限制。
为什么有了Vlookup还要推出《Index和Match》这对黄金搭档呢?主要是因为Vlookup要求查找的值必须是在数据区域中的第一列,否则查不到数据。这也是Vlookup函数无法“超神”的根本原因。
那为什么有了Xlookup为什么要使用它们呢?主要原因是Xlookup是有版本要求的。
因此为了让我们的工作一路平坦,我们还要让这Index和Match这对黄金搭档为我们升职加薪的道路发光发热。
看演示:
由此可见这对黄金搭档组合起来,查找数据是相当灵活的。
最终各种用法的公式静态图
为什么index第三个参数会出现{2,3}这样式的?
虽然是黄金搭档,但是他们也只能返回一行数据。那么将index和XMatch组合起来,那可就厉害的了。
Index和XMatch新搭档,提效强助力。
XMatch是Match的升级版,这个函数对excel版本有要求,因此在使用的时候要注意版本,请参阅《Match和XMatch就像是excel界的“北斗系统”,定位数据老厉害啦!》一文了解XMatch的用法和限制。
为了使这对组合能返回多行数据,我们还需要给他们加点料——TextSplit函数
我们来看演示:
我们成功获取了多行数据。
公式讲解:
INDEX(A1:E16,XMATCH(TEXTSPLIT(G2,,{",",";"},TRUE,0,0),B1:B16,0,1),{1,2,3,4,5})
这组公式要分三个部分进行讲解
一、TEXTSPLIT部分讲解
TEXTSPLIT(G2,,{",",";"},TRUE,0,0)
1、G2:即是我们要查找的内容所在单元格
2、第二个参数:是按行分裂结果,我们这里需要按列分裂结果,所以这个参数空着
3、{",",";"}:第三个参数,即是将G2中各个学生姓名进行分隔的所有符号
4、第四个参数:true是忽略空格
5、第五个参数是0不区分大小写
6、第六个参数:意思是如果没有匹配结果则显示成0
而我们要进行拆分的内容是“张浩,周浩成,钟函;罗宇浩;陈然尔”,其中的分隔符是“,”号和";"。
最终分裂的出来的结果就是
-------------------
张浩
周浩成
钟函
罗宇浩
陈然尔
------------------
以上的形式,在excel中以数组形式表示就是:{"张浩";"周浩成";"钟函";"罗宇浩";"陈然尔"}
二、XMatch部分讲解
XMATCH(TEXTSPLIT(G2,,{",",";"},TRUE,0,0),B1:B16,0,1)
根据我们第一步部分TEXTSPLIT(G2,,{",",";"},TRUE,0,0)讲解,
公式的这一部分的结果是{"张浩";"周浩成";"钟函";"罗宇浩";"陈然尔"}
那么将XMATCH公式简化一下就是
XMATCH({"张浩";"周浩成";"钟函";"罗宇浩";"陈然尔"},B1:B16,0,1)
1、第一个参数:{"张浩";"周浩成";"钟函";"罗宇浩";"陈然尔"}这部分数组参数就是我们要获取相对行号
的匹配值。
2、第二个参数:B1:B16,是我们需要进行匹配的的数据所在列。
3、第三个参数:0,表示进行精确匹配。
4、第四个参数 :1,表示执行从第一行到最后一行的匹配顺序
该部分最终将得到以上名单中的几位同学在B1:B16这一列所在位置的相对行号
将会取得行号数组{3;4;9;13;14}
三、Index部分讲解
INDEX(A1:E16,XMATCH(TEXTSPLIT(G2,,{",",";"},TRUE,0,0),B1:B16,0,1),{1,2,3,4,5})
根据前两部分的讲解,该公式可以简化如下:
INDEX(A1:E16,{3;4;9;13;14},{1,2,3,4,5})
第一个参数:A1:E16即是整个学生成绩表,也就是我们需要取数读的表
第二个参数:{3;4;9;13;14},即是我们需要读取数据的行,我们需要从这五行读取数据。
第三个参数:{1,2,3,4,5},即是我们想要读取的数据的列,我们需要将所有列都读取出来。
如果我只需要其中某几列,只需要将这几列对应的数字以数组的形式列于第三个参数中,
并且这几个数的出现顺序将是我们最终读取数据的列的出现顺序。
Index和Xmatch的组合是不是比Index和Match组合还要更加强大?
那么Index和Xmatch组合 和XLookUp哪个更强大呢?
怎么样?你学会了吗?本期就到此为止