在Excel中match和index函数如何将两个工作表中的数据进行匹配

在Excel中match和index函数如何将两个工作表中的数据进行匹配,第1张

1、首先启动excel2013,打开一个含有需要核对工作表的工作薄。

2、选择单元格b1,执行插入函数命令,选择match函数。

3、设置lookup_value为a1,第二个参数通过点击选择函数参数为Sheet2!A:A。

4、第三个参数match_type设置为0,点击确定按钮。

4、点击确定按钮,查看结果,这样就出现了具体的数值,有具体数值就说明sheet1中的数值在sheet2中的位置。说明数据存在。

5、接着填充其他单元格,如果出现错误数值,说明sheet1中的数值在sheet2中没有找到,说明数据不存在。

注意事项:

Excel虽然提供了大量的用户界面特性,但它仍然保留了第一款电子制表软件VisiCalc的特性:行、列组成单元格,数据、与数据相关的公式或者对其他单元格的绝对引用保存在单元格中。

上一篇介绍的VLOOKUP实现对根据范围内的第一列某值可以快速找到其在范围内同行的某列的结果,同样match+index可以实现同样的结果。

先说match的语法

MATCH(lookup_value, lookup_array, [match_type])

第一个参数lookup_value和VLOOKUP函数第一个参数一样为查找值,为将要在lookup_array中匹配到的值。

第二个参数lookup_array,查找范围,单独为查找lookup_value的一列或者一列的某一片区域。

第三个参数[match_type],匹配类型,可选。数字 -1、0 或 1。 match_type  参数指定 Excel 如何将  lookup_value  与  lookup_array  中的值匹配。此参数的默认值为 1。

1 或省略 MATCH  查找小于或等于  lookup_value  的最大值。 lookup_array  参数中的值必须以升序排序,例如:-2, -1, 0, 1, 2, , A-Z,FALSE, TRUE。

0 表示 MATCH  查找完全等于  lookup_value  的第一个值。 lookup_array  参数中的值可按任何顺序排列。

-1表示MATCH 查找大于或等于  lookup_value  的最小值。 lookup_array  参数中的值必须按降序排列,例如:TRUE, FALSE, Z-A, 2, 1, 0, -1, -2, 。

match函数返回结果为匹配值在选定范围的行数

我们一般选精确匹配值就是0作为匹配类型,如下图1所示要查找的值

如图1所示,a处在A1:A5的第一个位置所以返回1,d在第四个位置返回4,找不到则返回#N/A。

下面介绍index函数的功能

先说index的语法

INDEX(array, row_num, [column_num])

第一个参数array表示索引的范围

第二个参数row_num表示要索引的值在array的第几行

第三个参数column_num表示要索引的值在array的第几列

index就是返回某个范围具体几行几列位置的值。下面具体举个示例

如图2所示,要找范围A1:B5范围内第三行第二列的值,则可通过index查找,返回值cc,cc值位于A1:B5范围的第三行第二列符合条件。

下面介绍match结合index实现vlookup功能

如图3所示,E列求得b处在A1:A5的范围的第几行,已知行数后就可以求得具体其相同行第几列的位置。

match结合index可以实现向左查询

如图4所示,先在范围b值在B1:B5处在第几行,知道行数后通过index索引范围,可以查找处在索引范围的相同行的第几列的值,这里取b值左边第一列位置值。得到bbb值。

欢迎交流

在F2中输入或复制粘贴下列公式

=INDEX($A$1:$E$1,MATCH(E2,A2:D2,0))

=INDEX(A$1:E$1,MATCH(E2,A2:D2,0))

下拉填充

在F2中输入或复制粘贴下列公式

=INDEX($A$1:$E$1,MATCH(E2,A2:D2,0))

=INDEX(A$1:E$1,MATCH(E2,A2:D2,0))

下拉填充

这个公式一般用在2维匹配的应用情况下。你得有数据情景,才说的明白。

问题如下:比如有下表(假设从a1开始放以下数据表)

n b c d e f

x 1 2 3 4 5

y 8 7 5 4 3

z 4 7 3 6 8

希望通过函数查出y和d交叉处的值5,就得用这个嵌套的公式了。

查一查match,index这2个函数的用法,自己做这个题目,就没问题了。

最后写好的公式是:

=INDEX(B2:F4,MATCH("y",A2:A4,0),MATCH("d",B1:F1,0))

你问题所列的写法,只不过是大概意思的表达。

这要看C列是日期是什么格式的。

如果是文本格式的,公式是

=INDEX($D$67:$J$72,MATCH(TEXT($L67,"e年m月"),$C$67:$C$72,),MATCH(M$66,$D$66:$J$66,))

如果是日期格式的,公式可以是

=INDEX($D$67:$J$72,MATCH(TEXT($L67,"em"),TEXT($C$67:$C$72,"em"),),MATCH(M$66,$D$66:$J$66,))

这个是数组公式,按Ctrl+Shift+Enter结束公式输入。

在X3中输入或复制粘贴下列公式

=SMALL(IF($B3:$U3=$W3,$B1:$U1),COLUMN(A:A))

按三键CTRL+SHIFT+ENTER结束公式输入

右拉填充

在X3中输入或复制粘贴下列公式之一

=INDEX(1:1,SMALL(IF($A$3:$U$3=$W3,COLUMN($A:$U),256),COLUMN(A:A)))&""    

=INDEX($B$1:$U$1,SMALL(IF($B$3:$U$3=$W3,COLUMN($B:$U)-1,256),COLUMN(A:A)))&""

=IF(COLUMN(A:A)<=COUNTIF($B$3:$U$3,$W3),INDEX(1:1,SMALL(IF($A$3:$U$3=$W3,COLUMN($A:$U),256),COLUMN(A:A))),"")    

=IF(COLUMN(A:A)<=COUNTIF($B$3:$U$3,$W3),INDEX($B$1:$U$1,SMALL(IF($B$3:$U$3=$W3,COLUMN($B:$U)-1,256),COLUMN(A:A))),"")

按三键CTRL+SHIFT+ENTER结束公式输入

右拉填充

公式结果分别为文本型数值及数值

=CONCATENATE(C2,D2,E2,F2,G2)

=CONCATENATE(M2,N2,O2,P2,Q2)

=VLOOKUP(K2,$A$2:$B$5,2,FALSE)

如果觉得这样回答帮到了您,请点击下方的 “采纳答案" 支持我!还有疑问的话可以点击上方的 头像联系我,谢谢啦!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12155792.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存