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

来源:互联网 发布:barrager.js 弹幕循环 编辑:程序博客网 时间:2024/04/29 09:05

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