我在Excel工作簿中有两张纸。 第一张纸有
1)客户ID –每个客户的唯一值。
2)问题ID –每个问题的唯一ID
3)问题
Customer ID Question ID question
1 34 name
1 45 company
2 34 name
2 45 company
3 34 name
3 45 company
4 34 name
4 45 company
5 34 name
5 45 company
第二张纸有三列
1)客户ID –每个客户的唯一值。
2)问题ID –每个问题的不合法ID
3)问题
Customer ID Question ID Answer
1 34 Amy
1 45 GEICO
2 34 Steph
3 34 Anna
3 45 GEICO
4 34 Adam
5 34 Mark
5 45 AAA
在此工作表中,并非工作表1中的每个客户ID和问题ID在工作表2中都有答案
第3张预期产出
我想做一个vba宏来合并sheet1和sheet2并具有所有列。对于任何客户ID,如果没有问题的答案,则该字段应留空。
Sheet3中的预期输出
Customer ID Question ID question Answer
1 34 name Amy
1 45 company GEICO
2 34 name Steph
2 45 company
3 34 name Anna
3 45 company GEICO
4 34 name Adam
4 45 company
5 34 name Mark
5 45 company AAA
答案 0 :(得分:1)
有几种方法可以在不编写代码的情况下完成。
下面是我头顶上的一种方法。其他包括内置查询编辑器(Get & Transform)或PivotTables以及其他访问consolidate data in multiple worksheets的方法。
在Sheet2
上,由于要匹配多个列,因此请先设置“帮助列”。在此示例中,公式为:=C2&D2
从单元格B2
开始。
...然后,在Sheet1
(示例中为单元格E2
)中,使用类似以下公式:
=IFERROR(VLOOKUP(B2&C2,Sheet2!$B$1:$E$9,4,FALSE),"")
两个公式都会根据需要进行复制或“拖拽”,很明显,该公式已调整为引用正确的单元格。
不需要第三张工作表,但是如果需要,可以将Sheet1
复制到Sheet3
。
VLOOKUP
Function IFERROR
Function