合并多个 VLOOKUP
Combine multiple VLOOKUPs
如何将这些组合成一个?:
=IFERROR(VLOOKUP(B2:B11,Sheet2!A:B,2,FALSE),"No Match")
=IFERROR(VLOOKUP(B3:B12,Sheet2!D:E,2,FALSE),"No Match")
=IFERROR(VLOOKUP(B2:B11,Sheet2!G:H,2,FALSE),"No Match")
这只是三个,但最终我需要总共 12 个才能加入,因为它们正在搜索团队名称,总共有 12 个团队。
=IFERROR(VLOOKUP(B2:B11,Sheet2!A:B,2,FALSE),"No Match")
=IFERROR(VLOOKUP(B3:B12,Sheet2!D:E,2,FALSE),"No Match")
=IFERROR(VLOOKUP(B2:B11,Sheet2!G:H,2,FALSE),"No Match")
会变成:
=IFERROR(VLOOKUP(B2:B11,Sheet2!A:B,2,FALSE),
IFERROR(VLOOKUP(B3:B12,Sheet2!D:E,2,FALSE),
IFERROR(VLOOKUP(B2:B11,Sheet2!G:H,2,FALSE),"No Match")
)
)
最终:
=IFERROR(VLOOKUP(B2:B11,Sheet2!A:B,2,FALSE),IFERROR(VLOOKUP(B3:B12,Sheet2!D:E,2,FALSE),IFERROR(VLOOKUP(B2:B11,Sheet2!G:H,2,FALSE),"No Match")))
然而,结果仍将是 No Match,因为 "B2:B11",因此不被接受为 Lookup_value 使用 @Ditto 提到的 VLOOKUP 函数输入。
如果您希望按顺序处理每对列,例如三对,只需:
=IFERROR(VLOOKUP(B2:B11,Sheet2!A:B,2,0),IFERROR(VLOOKUP(B2:B11,Sheet2!D:E,2,0),IFERROR(VLOOKUP(B2:B11,Sheet2!G:H,2,0),"No Match")))
假设 B2 是您的搜索词 (lookup_value),并且上面的公式在第 2 行中。在 VLOOKUP 中使用范围作为搜索词的情况下,使用的行值是公式所在的行值 ("implied intercept")。
通常首选(例如短一点)使用这样的版本:
=IFERROR(VLOOKUP(B2,Sheet2!A:B,2,0),IFERROR(VLOOKUP(B2,Sheet2!D:E,2,0),IFERROR(VLOOKUP(B2,Sheet2!G:H,2,0),"No Match")))
然后将公式复制下来,当 B2 自动调整为 B3 等时(较短也是我倾向于 0
而不是 FALSE
的原因)
如@Ditto 所述,您的数据布局不寻常。除非您有十二对列的特殊原因,否则似乎只有一对就足够了,因为您似乎没有试图在搜索哪个团队的 "B2 value" 上设置任何条件。堆叠在 ColumnsA:B 中(一定要用空格分隔它们,并为单独的团队贴上标签)不需要复制你的一个公式,这应该足以代替所有 12 个:
=IFERROR(VLOOKUP(B2,Sheet2!A:B,2,0),"No Match")
如果可以保证结果将在某处找到(或者#N/A
接受,如果没有,而不是"No Match")这可以进一步简化为:
=VLOOKUP(B2,Sheet2!A:B,2,0)
如何将这些组合成一个?:
=IFERROR(VLOOKUP(B2:B11,Sheet2!A:B,2,FALSE),"No Match")
=IFERROR(VLOOKUP(B3:B12,Sheet2!D:E,2,FALSE),"No Match")
=IFERROR(VLOOKUP(B2:B11,Sheet2!G:H,2,FALSE),"No Match")
这只是三个,但最终我需要总共 12 个才能加入,因为它们正在搜索团队名称,总共有 12 个团队。
=IFERROR(VLOOKUP(B2:B11,Sheet2!A:B,2,FALSE),"No Match")
=IFERROR(VLOOKUP(B3:B12,Sheet2!D:E,2,FALSE),"No Match")
=IFERROR(VLOOKUP(B2:B11,Sheet2!G:H,2,FALSE),"No Match")
会变成:
=IFERROR(VLOOKUP(B2:B11,Sheet2!A:B,2,FALSE), IFERROR(VLOOKUP(B3:B12,Sheet2!D:E,2,FALSE),
IFERROR(VLOOKUP(B2:B11,Sheet2!G:H,2,FALSE),"No Match")
)
)
最终:
=IFERROR(VLOOKUP(B2:B11,Sheet2!A:B,2,FALSE),IFERROR(VLOOKUP(B3:B12,Sheet2!D:E,2,FALSE),IFERROR(VLOOKUP(B2:B11,Sheet2!G:H,2,FALSE),"No Match")))
然而,结果仍将是 No Match,因为 "B2:B11",因此不被接受为 Lookup_value 使用 @Ditto 提到的 VLOOKUP 函数输入。
如果您希望按顺序处理每对列,例如三对,只需:
=IFERROR(VLOOKUP(B2:B11,Sheet2!A:B,2,0),IFERROR(VLOOKUP(B2:B11,Sheet2!D:E,2,0),IFERROR(VLOOKUP(B2:B11,Sheet2!G:H,2,0),"No Match")))
假设 B2 是您的搜索词 (lookup_value),并且上面的公式在第 2 行中。在 VLOOKUP 中使用范围作为搜索词的情况下,使用的行值是公式所在的行值 ("implied intercept")。
通常首选(例如短一点)使用这样的版本:
=IFERROR(VLOOKUP(B2,Sheet2!A:B,2,0),IFERROR(VLOOKUP(B2,Sheet2!D:E,2,0),IFERROR(VLOOKUP(B2,Sheet2!G:H,2,0),"No Match")))
然后将公式复制下来,当 B2 自动调整为 B3 等时(较短也是我倾向于 0
而不是 FALSE
的原因)
如@Ditto 所述,您的数据布局不寻常。除非您有十二对列的特殊原因,否则似乎只有一对就足够了,因为您似乎没有试图在搜索哪个团队的 "B2 value" 上设置任何条件。堆叠在 ColumnsA:B 中(一定要用空格分隔它们,并为单独的团队贴上标签)不需要复制你的一个公式,这应该足以代替所有 12 个:
=IFERROR(VLOOKUP(B2,Sheet2!A:B,2,0),"No Match")
如果可以保证结果将在某处找到(或者#N/A
接受,如果没有,而不是"No Match")这可以进一步简化为:
=VLOOKUP(B2,Sheet2!A:B,2,0)