【问题标题】:VLOOKUP on multiple columns多列上的 VLOOKUP
【发布时间】:2014-05-21 10:02:11
【问题描述】:

是否可以执行一个公式,该公式将在 3 个不同的列中查找 vlookup 匹配以返回结果。例如查找零件编号 A,可能在 A、B 或 C 列中,并希望在 D 中返回结果。

【问题讨论】:

    标签: excel formula vlookup


    【解决方案1】:

    最短的答案是你不能。

    VLOOKUP 将始终在您传递给函数的 table_array 的第一列中进行搜索。如果未找到匹配项来搜索下一列中的值(依此类推),您可以尝试创建一个公式,该公式将使用 VLOOKUP 中的 #N/A 结果。

    【讨论】:

      【解决方案2】:

      其实没那么难,只要你的lookup_value在那个范围内恰好出现一次。

      例如,范围为 A2:D100 和搜索值,例如G2:

      =INDEX(D2:D100,SUMPRODUCT((A2:C100=G2)*(ROW(A2:C100)-MIN(ROW(A2:C100))+1)))

      问候

      【讨论】:

      • 这确实有效,但我无法将论坛复制下来,因为“excel 在尝试计算一个或多个公式时耗尽了资源,因此无法评估这些公式。”做 10 行然后停止。工作表中有大约 1000 行。
      • 您将范围设置为只有 A 到 C 列?你为结束范围输入了什么行号?
      • =INDEX('复制大库存包'!E:E,SUMPRODUCT(('复制大库存包'!B:D=A2)*(ROW('复制大库存包'!B :D)-MIN(ROW('复制大库存包'!B:D))+1)))
      • 具有整个列引用的 SUMPRODUCT 不是一个好主意,因为该公式计算了所有超过 100 万行,无论是否超出最后一个非空白单元格。尝试使用合适的上限,例如E2:E1000等
      • =INDEX('复制大库存包'!E$1:E$1000,SUMPRODUCT(('复制大库存包'!B$1:D$1000=A3)*(ROW('复制大库存Pack'!B$1:D$1000)-MIN(ROW('Copy Large Stock Pack'!B$1:D$1000))+1))) 似乎有效,仅在不匹配的情况下返回随机结果?非常感谢帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多