Excel比较两个工作表(Sheet)的两组列数据,并返回相应数据

本文介绍了如何使用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,计算机硬件:现状、趋势与开发详解,"['硬件开发', '处理器技术', '图形处理', '存储技术', '物联网硬件']

近日有朋友问我有关于怎么比较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帮助好了,我就不多说了

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值