Sheet1
ID First Last Street City State Zip
--- ----- ------ ----------------- ---------- ----- -----
51 Alfred Obrien 636 Charla Lane Richardson TX 75081
52 Donald Lemmons 4956 Center Street Umatilla OR 97882
53 Corrine McCann 3149 West Street Grand Rap MI 49546
54 Monique Gavin 4078 Maryland Largo FL 34640
55 Steven Murray 965 Tree Top Lane Lansdowne PA 19050
56 Kelley Robins 1191 Earnhardt Louisville KY 40223
Sheet2
ID Zip State Last City first Street Zip
--- ----- ------ ----- ------ ------ ----- -----
56
51
87
52
55
53
54
需要复制数据行依赖于ID(唯一)如果ID匹配复制并粘贴该行,则列标题应该匹配。如果您观察到列标题相同但在sheet2中位置不同。
我得到了vlookup公式但是如果ID没有匹配正在覆盖数据的话,#N / A就会收到...所以我需要VBA代码
答案 0 :(得分:0)
我在您的示例中使用以下公式取得了成功:
将其置于Sheet2>内;细胞B2
=VLOOKUP($A2,Sheet1!$A$2:$G$7,2,FALSE)
这里我们查找单元格A2 ,从范围Sheet1!$ A $ 2:$ G $ 7 ,然后我们返回第二列的值,FALSE = 完全匹配
这是为了避免自定义消息出现#N / A错误。
=IF(ISNA(VLOOKUP($A2,Sheet1!$A$2:$G$7,2,FALSE)),VLOOKUP($A2,Sheet1!$A$2:$G$7,2,FALSE), "CUTOM ERROR MESSAGE")
如果vlookup 结果为数字,使用vlookup ,则使用自定义错误消息。
此处有一个示例,显示Sheet1中的内容!$ A $ 2:$ G $ 7 如果匹配,如果没有。< / p>
=IF(ISNA(VLOOKUP($A2,Sheet1!$A$2:$G$7,2,FALSE)),VLOOKUP($A2,Sheet1!$A$2:$G$7,2,FALSE), VLOOKUP($A2,Sheet1!$A$2:$G$7,2,FALSE))
答案 1 :(得分:0)
如果使用代码执行此操作,则需要指定忽略在单元格中输入值的条件。然后在评估输入或忽略单元格的结果之前,创建一个循环来测试针对此条件的单元格。
输入的结果可以基于与下面显示的图纸公式相同的逻辑。
有效的方法是使用index
和match
获取查找表中的行和列,这样如果您的数据在两个工作表的A1中开始,您可以将以下内容放入工作表2 B2和拖动以填充其他单元格。
=IFERROR(INDEX(Sheet1!$A$1:$G$7,MATCH($A2,Sheet1!$A$1:$A$7,0),MATCH(Sheet2!B$1,Sheet1!$A$1:$G$1,0)),"Not found")
以ID 56为例,公式首先索引工作表1中的查找表。这意味着您可以检索指定行和列参数的项目。
要查找行,公式会通过查看列A(我将范围限制为您正在使用的行)来匹配ID,并返回找到的行号(如果找到)。同样,通过将Zip与工作表1中的第1行匹配并返回找到的列来找到该列。
所以对于ID 56
,你得到了
Sheet1!$A$1:$G$7
作为查找范围
MATCH($A2,Sheet1!$A$1:$A$7,0)
= 7行
MATCH(Sheet2!B$1,Sheet1!$A$1:$G$1,0)
= 7列
所以INDEX(Sheet1!$A$1:$G$7,7,7)
= ZIP 40223
如果未找到匹配项,请将此包装在IFERROR中。在这里的示例中,&#34; Not Found&#34;归还。
答案 2 :(得分:0)
假设:
“Sheet1”作为“来源”表
“Sheet2”作为“目标”表
标题,范围从A到H列(即第1列到第7列)
数据范围从第2行到第100行
你可以用这个
duplicated xml ressources
只需根据实际需要调整工作表名称和列/行开始/结束索引