近日有朋友问我有关于怎么比较Excel两个工作表(Sheet)的两组列数据的方法,老实说我对Excel并不是很清楚,对Excel的研究也公仅限于VBA而已,既然朋友开口问了,不好推脱动手就试试吧。
问题简单描述如下:
Sheet1数据
A B C D(需要返回的值)
0001 说明1 编码1 名称1
0002 说明2 编码2 名称2
0003 说明3 编码3 名称3
.............................
Sheet2数据
A B C
1 编码2 ID1
2 编码2 ID2
3 编码3 ID3
4 编码1 ID4
5 编码3 ID5
.............................
(Sheet1与Sheet2的联系就是编码了)
结果:
在Sheet2加一列把Sheet1 的名称取过来,如
Sheet2数据
A B C D
1 编码2 ID1 名称2
2 编码2 ID2 名称3
3 编码3 ID3 名称3
4 编码1 ID4 名称1
5 编码3 ID5 名称3
先上网搜索一翻,没有结果,只找到同Sheet比较的例子,也不是我想要的,看来还是得看帮助了,发觉Excel的帮助和MSDN比,简直就是一个天一个地,没办法只能自己研究了,翻翻VBA的书再看看网上的例子,慢慢就研究出公式来了,废话就不多说了公式就是:
=IF(ISERROR(MATCH(B,Sheet1!B:B,0)),"false",INDIRECT("Sheet1!D"&MATCH(B,Sheet1!B:B,0)))
(注:联系的编码数据类型一定要一致)
在D1输入公式,然后选择D列,选择菜单 编辑->填充->向下填充,就可以了
具体ISERROR,MATCH,INDIRECT是什么意思,自己查Excel帮助好了,我就不多说了
本文介绍了如何使用VBA解决比较Excel Sheet1和Sheet2中基于编码的对应数据问题,并将Sheet1的名称填充到Sheet2相应位置。通过公式`=IF(ISERROR(MATCH(B,Sheet1!B:B,0)),"false",INDIRECT("Sheet1!D"&MATCH(B,Sheet1!B:B,0)))`,实现了跨工作表数据匹配和填充。"
133424408,20038127,计算机硬件:现状、趋势与开发详解,"['硬件开发', '处理器技术', '图形处理', '存储技术', '物联网硬件']
594

被折叠的 条评论
为什么被折叠?



