【问题标题】:Is there another way to use vlookup to decide which results based on further criteria?是否有另一种方法可以使用 vlookup 根据进一步的标准来决定哪些结果?
【发布时间】:2021-08-25 01:05:30
【问题描述】:

我有一个基于 VLOOKUP 的 Lookup Table,它引用 Data Table 来提取其值。 实质上,当在查找表中粘贴几个主机名时,会填充区域和所有者。 在此示例中,我的问题是多次列出数据表中的主机名的情况。具体来说,正如您所见,查找“Alpha8”会返回 North 和 Jeff,因为它是数据表中的第 1 次出现。

现在看看实际的数据表...有 3 行列出了 Alpha8。如何让查找表(VLOOKUP 公式)返回第 10 行而不是第一次出现的第 9 行?例如,我希望我的 VLOOKUP 基本上说“如果发现重复值,则返回 'Zone' 列中具有 'west' 的行。

我知道有一些变通方法可以解决较小的数据子集的问题,例如我在此处的示例,但我正在寻找可以在数据表有数千个条目(有很多重复项)和在查找表中“搜索”的值可能是几百个。

【问题讨论】:

    标签: excel vlookup


    【解决方案1】:

    也许我错了,但我认为 VLOOKUP 无法实现您正在寻找的内容,我在这里有一个使用带有 INDEX 的数组公式的解决方案:

    =INDEX(B$1:B$8,MAX(IF(COUNTIF($A$1:$A$8,$E3)>1,($B$1:$B$8="west"),1)*($A$1:$A$8=$E3)*ROW($A$1:$A$8)))
    

    看公式开头和结尾的括号,因为是数组公式,所以必须按Ctrl+Shift+Enter才能按预期工作。

    我在这里给你举个例子:

    https://docs.google.com/spreadsheets/d/1eXiMBGTjLr-VxKWW_UWGO9EHAXF3spuu/edit?usp=sharing&ouid=109997475435544900987&rtpof=true&sd=true

    【讨论】:

    • 我确实希望我的答案会依赖于 index 函数而不是 vlookup,所以感谢您找到使用 index.js 解决问题的方法。也就是说,我想在实践中我的公式会很长,以适应各种其他情况。例如,我将真正匹配 3 个其他列的数据,而不仅仅是一个。我认为在 excel 中应该有一种更原生的方式来做到这一点,不幸的是,这变得过于复杂了!不过,谢谢!
    • 您考虑过使用辅助列吗?
    猜你喜欢
    • 1970-01-01
    • 2014-12-13
    • 2019-04-07
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 2014-12-18
    • 1970-01-01
    • 2018-01-10
    相关资源
    最近更新 更多