我对excel和vba还是比较陌生,这就是我的问题所在,列“ A”的ID列在“ B”上,列C的总列表不包含在“ A”中,这是我要尝试的do is(“ if” A“ =” C“)然后使用” B“中的ID并将其/副本放在” D“前面
= INDEX(B2,MATCH(A2,C2))
我正在考虑创建一个宏,在其中我可以将测试列表复制到另一张纸然后匹配值,因为列“ A”和“ C”不同,然后将值从“ B”复制到“如果在“ C”上找到“ A”,则为D” 我有超过2500个值将成为“ C”列的一部分,但“ A”列将永远不会与“ C”列具有相同的行数 我知道从屏幕截图看它很简单,但是命名约定却不同。
答案 0 :(得分:1)
您的“ IF”逻辑可以被IF功能捕获。因此,您将此公式放在D2中,然后将其向下拖动至所需位置即可。
=if(A2=C2,B2,"")
修订:如果要在同一行中检查匹配项,则以上内容将起作用。但是我现在知道我们应该查看整个A列。在这种情况下,我们可以在D2中执行以下操作并拖动,
=iferror(indirect(address(1+match(C2,A$2:A,0),2)),"")
如果匹配失败,则iferror会使事物保持为空。如果匹配成功,则1 + match为行,2为B列。我们为该地址创建一个地址,然后找到该地址上的内容。