Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3611|回复: 13

[已解决]询问一下两个表格比较并填充内容的问题

[复制链接]
发表于 2010-7-29 15:26 | 显示全部楼层 |阅读模式

麻烦各位高手给答复一下:(非常感谢)

 

问题:

有两个表格 表1    表2

表格1,2中都有相同的列A(姓名),表2中有表1中没有填写的列B(年龄)和C(电话)

 

想做的操作是:用表2的A列与表1的A列作对比,如果有相同的内容,(比如刘二)就将表2中相同行的B和C列(刘二的年龄和电话)增加到表1中,以此类推(有多行)

 

表1

 姓名 民族 年龄电话 
 张一 汉  
 刘二 苗  
 李三 汉  

 

表2

 

 姓名年龄  电话 
 刘二 28 15987126665 
    
    
最佳答案
2010-7-29 15:30

年龄=if(iserror(VLOOKUP($A2,Sheet2!$A:$C,2,0)),"",VLOOKUP($A2,Sheet2!$A:$C,2,0))

号码=if(iserror(VLOOKUP($A2,Sheet2!$A:$C,3,0)),"",VLOOKUP($A2,Sheet2!$A:$C,3,0))

或年龄、号码=if(iserror(VLOOKUP($A2,Sheet2!$A:$C,column()-1,0)),"",VLOOKUP($A2,Sheet2!$A:$C,column()-1,0))

qPcwPxSM.rar (1.99 KB, 下载次数: 6)
发表于 2010-7-29 15:30 | 显示全部楼层    本楼为最佳答案   

年龄=if(iserror(VLOOKUP($A2,Sheet2!$A:$C,2,0)),"",VLOOKUP($A2,Sheet2!$A:$C,2,0))

号码=if(iserror(VLOOKUP($A2,Sheet2!$A:$C,3,0)),"",VLOOKUP($A2,Sheet2!$A:$C,3,0))

或年龄、号码=if(iserror(VLOOKUP($A2,Sheet2!$A:$C,column()-1,0)),"",VLOOKUP($A2,Sheet2!$A:$C,column()-1,0))

qPcwPxSM.rar (1.99 KB, 下载次数: 6)
回复

使用道具 举报

发表于 2010-7-29 15:31 | 显示全部楼层
回复

使用道具 举报

发表于 2010-7-29 15:32 | 显示全部楼层

年龄=VLOOKUP(A1,sheet2!$A:$B,2,0)

电话=VLOOKUP(A1,sheet2!$A:$B,3,0)

[此贴子已经被作者于2010-7-29 15:34:02编辑过]
回复

使用道具 举报

发表于 2010-7-29 15:39 | 显示全部楼层


[em01]
[此贴子已经被作者于2010-7-29 15:41:22编辑过]

DOtARbCN.rar

1.99 KB, 下载次数: 7

询问一下两个表格比较并填充内容的问题

回复

使用道具 举报

 楼主| 发表于 2010-7-29 15:44 | 显示全部楼层

谢谢大家热心帮忙,尤其谢谢chensir
回复

使用道具 举报

 楼主| 发表于 2010-7-29 15:45 | 显示全部楼层

能麻烦高手给俺解释一下原理么?非常非常感谢
回复

使用道具 举报

 楼主| 发表于 2010-7-29 15:46 | 显示全部楼层

QUOTE:
以下是引用chensir在2010-7-29 15:30:00的发言:

年龄=if(iserror(VLOOKUP($A2,Sheet2!$A:$C,2,0)),"",VLOOKUP($A2,Sheet2!$A:$C,2,0))

号码=if(iserror(VLOOKUP($A2,Sheet2!$A:$C,3,0)),"",VLOOKUP($A2,Sheet2!$A:$C,3,0))

或年龄、号码=if(iserror(VLOOKUP($A2,Sheet2!$A:$C,column()-1,0)),"",VLOOKUP($A2,Sheet2!$A:$C,column()-1,0))



高手能麻烦帮俺解释一下原理么?谢谢谢谢

回复

使用道具 举报

发表于 2010-7-29 15:49 | 显示全部楼层

QUOTE:
以下是引用haiwan_mm在2010-7-29 15:46:00的发言:

高手能麻烦帮俺解释一下原理么?谢谢谢谢

VLOOKUP

请参阅

在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。当比较值位于数据表首列时,可以使用函数 VLOOKUP 代替函数 HLOOKUP。

在 VLOOKUP 中的 V 代表垂直。

语法

VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

Lookup_value    为需要在MSITStore:C:\Program%20Files\Microsoft%20Office\OFFICE11\2052\xlmain11.chm::/html/xlfctVLOOKUP1.htm#">数组第一列中查找的数值。Lookup_value 可以为数值、引用或文本字符串。

Table_array    为需要在其中查找数据的数据表。可以使用对区域或区域名称的引用,例如数据库或列表。

  • 如果 range_lookup 为 TRUE,则 table_array 的第一列中的数值必须按升序排列:…、-2、-1、0、1、2、…、-Z、FALSE、TRUE;否则,函数 VLOOKUP 不能返回正确的数值。如果 range_lookup 为 FALSE,table_array 不必进行排序。

  • 通过在“数据”菜单中的“排序”中选择“升序”,可将数值按升序排列。

  • Table_array 的第一列中的数值可以为文本、数字或逻辑值。

  • 文本不区分大小写。

Col_index_num    为 table_array 中待返回的匹配值的列序号。Col_index_num 为 1 时,返回 table_array 第一列中的数值;col_index_num 为 2,返回 table_array 第二列中的数值,以此类推。如果 col_index_num 小于 1,函数 VLOOKUP 返回错误值值 #VALUE!;如果 col_index_num 大于 table_array 的列数,函数 VLOOKUP 返回错误值 #REF!。

Range_lookup    为一逻辑值,指明函数 VLOOKUP 返回时是精确匹配还是近似匹配。如果为 TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值;如果 range_value 为 FALSE,函数 VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值 #N/A。

说明

  • 如果函数 VLOOKUP 找不到 lookup_value,且 range_lookup 为 TRUE,则使用小于等于 lookup_value 的最大值。
  • 如果 lookup_value 小于 table_array 第一列中的最小数值,函数 VLOOKUP 返回错误值 #N/A。
  • 如果函数 VLOOKUP 找不到 lookup_value 且 range_lookup 为 FALSE,函数 VLOOKUP 返回错误值 #N/A。

示例

如果您将示例复制到空白工作表中,可能会更易于理解该示例。

MSITStore:C:\Program%20Files\Microsoft%20Office\OFFICE11\2052\xlmain11.chm::/html/xlfctVLOOKUP1.htm#">显示msitstore:msohlp11.chm::/html/blueup.gif" border="0"/> 操作方法

该示例使用 1 个大气压的空气值。

 
1
2
3
4
5
6
7
8
9
10
ABC
密度粘度温度
.4573.55500
.5253.25400
.6162.93300
.6752.75250
.7462.57200
.8352.38150
.9462.17100
1.091.9550
1.291.710
公式说明(结果)
=VLOOKUP(1,A2:C10,2)在 A 列中查找 1,并从相同行的 B 列中返回值 (2.17)
=VLOOKUP(1,A2:C10,3,TRUE)在 A 列中查找 1,并从相同行的 C 列中返回值 (100)
=VLOOKUP(.7,A2:C10,3,FALSE)在 A 列中查找 0.746。因为 A 列中没有精确地匹配,所以返回了一个错误值 (#N/A)
=VLOOKUP(0.1,A2:C10,2,TRUE)在 A 列中查找 0.1。因为 0.1 小于 A 列的最小值,所以返回了一个错误值 (#N/A)
=VLOOKUP(2,A2:C10,2,TRUE)在 A 列中查找 2,并从相同行的 B 列中返回值 (1.71)

回复

使用道具 举报

 楼主| 发表于 2010-7-29 16:00 | 显示全部楼层

QUOTE:
以下是引用chensir在2010-7-29 15:49:00的发言:

该示例使用 1 个大气压的空气值。

 
1
2
3
4
5
6
7
8
9
10
ABC
密度粘度温度
.4573.55500
.5253.25400
.6162.93300
.6752.75250
.7462.57200
.8352.38150
.9462.17100
1.091.9550
1.291.710
公式说明(结果)
=VLOOKUP(1,A2:C10,2)在 A 列中查找 1,并从相同行的 B 列中返回值 (2.17)
=VLOOKUP(1,A2:C10,3,TRUE)在 A 列中查找 1,并从相同行的 C 列中返回值 (100)
=VLOOKUP(.7,A2:C10,3,FALSE)在 A 列中查找 0.746。因为 A 列中没有精确地匹配,所以返回了一个错误值 (#N/A)
=VLOOKUP(0.1,A2:C10,2,TRUE)在 A 列中查找 0.1。因为 0.1 小于 A 列的最小值,所以返回了一个错误值 (#N/A)
=VLOOKUP(2,A2:C10,2,TRUE)在 A 列中查找 2,并从相同行的 B 列中返回值 (1.71)

如果比较的值不是第一列,是否要改使用 HLOOKUP?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-29 12:52 , Processed in 0.341366 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表