【问题标题】:Combine multiple VLOOKUPs组合多个 VLOOKUP
【发布时间】:2015-03-13 18:45:05
【问题描述】:

我如何将这些组合在一起?:

=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 个团队。

【问题讨论】:

  • 数据会有所帮助,看来您为任务使用了错误的公式
  • 为什么vlookup的第一个参数是一个范围? vlookup 采用单个值作为它的第一个参数...不是范围。
  • 按照史蒂文提到的方式发布一些数据。但是,从公式中,您似乎正在尝试在 3 个(er 12)列表之一中搜索团队名称?为什么你有 12 个列表?为什么不只是一个列表?
  • 好的,12 个列表的原因是我有一个数据库,目前没有团队名称,但有员工姓名。为了解决这个问题并允许员工按团队​​搜索,而不仅仅是代理,我创建了一个新列,并将在该列中包含这个公式。然后,该公式在工作表 2 中搜索各个团队列,然后将相关团队名称放在工作表 1 中该代理旁边。
  • 我无法共享确切的数据库,因为它太大了,而且里面还有敏感数据。我在这里上传了一个例子>>filedropper.com/robsreportteamsearch。我还将考虑实施已经在这里的答案,看看它们是否有效。我在上面提供的公式确实有效,并且做了他们应该做的事情,只是他们只搜索 1 个团队,我需要它来搜索 12 个。谢谢

标签: excel if-statement excel-formula vlookup worksheet-function


【解决方案1】:

如果您希望按顺序处理每一对列,例如三对列,只需:

=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")))  

假设您的搜索词 (lookup_value) 是 B2,并且上面的公式在 Row2 中。在 VLOOKUP 中使用范围作为搜索词时,使用的行值是公式所在的行值(“隐含截距”)。

通常更喜欢使用这样的版本(例如短一点):

 =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 值”。堆叠在 A:B 列中(无论如何都要用空格分隔它们并为单独的团队添加标签),不需要复制您的公式之一,这应该足以代替所有 12 个:

 =IFERROR(VLOOKUP(B2,Sheet2!A:B,2,0),"No Match")  

如果可以保证在某处找到结果(如果没有,则接受#N/A,而不是“不匹配”),这可以进一步简化为:

  =VLOOKUP(B2,Sheet2!A:B,2,0)

【讨论】:

  • 我该如何给你一些代表,你帮了我很多忙?
  • @Jamesmook 对此给予 pnuts 代表,用他答案左侧数字上方的向上箭头投票赞成他的答案,然后单击复选标记将他的答案标记为答案。这给了他代表,并将问题标记为已回答,因此我们这些正在寻找未回答问题的人不会来这里发现 pnuts 已经击败了我们。
【解决方案2】:

=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),"不匹配")

会变成:

=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),"不匹配")
)
)

最终:

=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,因为 "B2:B11" 并且不接受作为 Lookup_value 输入的 >VLOOKUP @Ditto 提到的函数。

【讨论】:

  • 疯子,你是明星!!!你的答案就像一场梦!我让自己变得困难,你的答案很简单,我不知道为什么我以前没有看到它。 Thjis 工作得最好 =IFERROR(VLOOKUP(B2,Sheet2!A:B,2,0),"No Match")
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 2021-10-29
  • 1970-01-01
  • 2014-07-11
  • 1970-01-01
相关资源
最近更新 更多