我需要一个Excel vba宏来... 循环通过表1 - 列(C),找到表2中的重复值(如果存在) - 列(G)并基于表1中的不同列的值 - 列(D),执行复制并粘贴“某个单元格“从表2到表1 - 列(P)。
实施例: 如果找到重复并且第1列D =红色,则将表2列T中的值复制并粘贴到相应的第1行列P. 如果找到重复且第1列D =橙色,则将第2列第V列的值复制并粘贴到相应的第1行第P列。 对于D列中的每个条件,等等......
表1
C D P.
219906红色01/01/2014
239241黄色
239243 Orange 02/15/2013
表2
G T V X Z.
219906 01/01/2014
254788 10/26/2010
239243 02/15/2013
非常感谢任何帮助
如果公式可以完成相同的操作,则不必是VBA宏。我有大约20个左右的条件。如果我可以创建前两个,我可以使用它作为模板来构建其他的。感谢
答案 0 :(得分:0)
这是一个适合你的公式:
=IFERROR(VLOOKUP(C2,Sheet2!$G:$Z,INDEX({14,16},MATCH(D2,{"Red","Orange"},0)),FALSE),"")
14是从G到T的列数(包括G和T),16是从G到V(包括G和V两者)的列数。您的示例数据并不清楚哪些日期在哪些列中,因此这是我的猜测。
公式将在Sheet1的P列中。我假设第1行是标题行,因此实际数据从第2行开始。因此,公式将进入单元格P2并被复制下来。
将列号与相应条件的顺序相同,如图所示。您可以通过使用逗号分隔{}中的值来添加更多内容。
或者,您可以创建一个包含条件和列号的单独表,而不是索引/匹配,然后使用嵌套的vlookup,它看起来像这样:
=IFERROR(VLOOKUP(C2,Sheet2!$G:$Z,VLOOKUP(D2,Sheet3!$A:$B,2,FALSE),FALSE),"")