excel或access中如何将两个表按照一个字段合成一个表

如图,左表是姓名和证件号码,右表是姓名和账号,两个表的姓名里面都有若干重名。因为我们是根据证件号码开卡,有部分人没有开成功,所以左表比右表的行数多。现在要把两个表按照姓名来合并起来,重名的可以先放在一边。
已经解决

1.确定基础表和关键字段列

确定哪个表格作为基础表,将其他表格内容匹配过来;并确定哪一列的字段是几个表格都有可以作为关键字段的。

如下面例子,表二的“姓名”列可以选定作为合并表格的关键字段。

2.利用vlookup函数匹配合并表格

VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

参考上例,具体含义如下:

3.例子

需求是将表一和表三中,表二不包含的列,合并到表二中来。

首先合并表一:

在表二左侧列输入:=VLOOKUP(I19,$E$7:$G$11,2,0)。

其中:I19为表二中第一行第一列“姓名”所在单元格。

$E$7:$G$11为表一中,以姓名列为第一列,需要合并过来的所有内容的区域,这里用绝对引用,便于将公示向下复制时始终选择这一区域。

2——表示此列取的是表一所选区域中第二列的值;

0——表示精确匹配。

具体如下图示:

4.接下来,将上述公式向下复制至该列整列,这一列就根据姓名全部匹配过来。再按照同样步骤,匹配表三所需列,即可完成表格合并。

5.需要说明,匹配后,可能会有单元格显示为#N/A,只是由于改行对应姓名列的姓名值在表二中有,但在表一中没有,即表一没有或者缺少这个人的信息。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-07
如果左表为Sheet1,右表为Sheet2,那么在Sheet1的C2单元格输入以下公式,然后向下填充公式
=VLOOKUP(A2,Sheet2!A:B,2,0)追问

对不上呀。。我左表比右表多750多行,但是你给我的公式返回的NA却有1085个,也就是说有300多张卡号没对应上去。。。。急急急。。。我的格式没问题的,没空格没符号没别的公式,都是纯文本

追答

C2单元输入
=IFERROR (VLOOKUP(A2,Sheet2!A:B,2,0),"")
如果右表姓名包含于左表,那么除了重名,不应有300多张卡无法匹配的情况。

追问

比如说有三个张三,且这三人都开卡成功,那么用公式拖就会出现三个张三的卡号都是第一个张三的卡号。。。。。。。。如图

追答

重名的用查找引用函数,无法区分。

追问

已经解决,我想起来可以在重名的名字后面加上1,2,3,4,。。。这样就等于消除了重名

本回答被网友采纳
第2个回答  2015-03-07

    使用【高级筛选】先把重名的数据刨除;

    使用【vlookup函数】,你需要先熟悉下vlookup函数用法;

相似回答