Excel -基于查找值从另一个工作表复制行

enxuqcxy  于 2023-03-04  发布在  其他
关注(0)|答案(2)|浏览(178)

我有两张excel表格,表1和表2。
第1页

第2页

用户数据在两个工作表之间拆分。每个用户由两个工作表中的列中存在的唯一ID标识。
我需要在工作表2中搜索工作表1中的每个ID。如果工作表2中存在该ID,我需要将工作表2中整行的数据复制到工作表1中,并将其粘贴到与该ID相同的行中。
结果应更新表1

我可以使用VLOOKUP一次复制一行数据,但这对实际数据不可行,而且我不知道如何使用vba。是否有任何方法可以使用VLOOKUP或其他命令完成此操作?

kuuvgm7e

kuuvgm7e1#

基于你的样本数据,你可以在你的vlookup公式中使用COLUMN()函数作为你的column_index_number,这将保存你进行100次替换所需的时间。

=IFERROR(VLOOKUP($A4,Sheet2!$A:$C,COLUMN()-2,FALSE),"")

或者更好的是,如果您有一些列没有信息,但找到了ID,这将防止0:

=IFERROR(IF(LEN(VLOOKUP($A4,Sheet2!$A:$C,COLUMN()-2,FALSE))=0,"",VLOOKUP($A4,Sheet2!$A:$C,COLUMN()-2,FALSE)),"")

jaxagkaj

jaxagkaj2#

我不确定你是否需要VBA。你可以使用它,但是使用VLOOKUP更容易。
例如,假设您在Sheet 1的A列中有一列ID,在Sheet 2的2-100行中有一组数据,其中A列中有ID,在B-G列中有六段数据。您希望将这些数据复制到Sheet 1的B-G单元格中。
最简单的方法是在单元格Sheet 1!B2中使用公式=VLOOKUP(A2,Sheet 2!A$2:B$100,2,0)。在单元格Sheet 1!C2中使用公式= VLOOKUP(A2,Sheet 2!A$2:C$100,3,0),依此类推。对于每个单元格,增加要查找的区域的宽度和列数。
同时执行其他四个操作,填充整个第2行。然后复制单元格B-G的内容,使其与A列中的数据长度相等。
执行此操作时,请务必在Sheet 2的单元格引用中使用$。否则,当您将公式复制到第3行时,您将在A3:B101区域中查找。行号前的美元符号表示,当您在Sheet 1上逐行复制这些公式时,Sheet 2上该区域的行不会更改。
话虽如此,当我开始使用VBA时,我要做的第一件事是记录一个宏,它正在做我想做的事情。我会查看这个宏,看看我可以修改什么。
例如,假设Sheet 1上的第一个记录ID位于单元格A2中。处理完成后,您需要查看单元格A3中的记录。宏会将其记录为类似Range的内容(“A3”)。选择,但你需要更通用的东西,所以你会去到下一个单元格,无论它是什么。你可以用选择。偏移(1,0).Select,意思是“向下移动一个单元格”,或者您可以将您的行分配给MyRow这样的变量,使用MyRow = MyRow + 1递增它,然后执行Range(“A”+ MyRow). Select。
任何你必须做不止一次的事情,你都会想放进一个循环中。我通常会从电子表格的最底部开始,然后向上选择找到最后一行数据。你可以让你的循环在遇到空行时停止,但是如果有人在你的工作表上留下了空行,你需要跳过这一行继续处理呢?

相关问题