【问题标题】:Excel VLOOKUP where the key is not in the first columnExcel VLOOKUP,其中键不在第一列
【发布时间】:2016-12-03 02:55:12
【问题描述】:

"查找值所在的范围。请记住,查找值应始终位于该范围的第一列,以便 VLOOKUP 正常工作。例如,如果您的查找值在单元格 C2 中,那么您的范围应该开始与 C。”

但有时我希望能够进行双向查找。即使用A列中的键查找B列中的值,同时在其他公式中查找B中的值以获取A中的值。

我知道的唯一方法是添加一个镜像 A 的列 C,然后使用 AB 进行第一次查找,使用 BC 进行第二次查找。但必须有一些更清洁的解决方案。是否有某种方法可以强制 VLOOKUP 使用不同于第一个列的其他列来查找键值,或者是否有不同的函数可以允许等效项?

作为旁注,我问的是 Excel,但我实际上使用的是 LibreOffice。大概功能应该是相同的,但是在 LibreOffice 中也可以使用的答案会更好。

【问题讨论】:

标签: excel spreadsheet vlookup libreoffice


【解决方案1】:

INDEX/MATCH 会在任何方向进行搜索。

因此,对于您的 B 示例 --> A:

=INDEX(A:A,MATCH(yourCriteria,B:B,0))

MATCH 返回匹配的行号。 0 的第三个标准是可选的。对于 VLOOKUP 的第四个标准,0FALSE 相同,因为它寻找完全匹配。

默认为1,对数据进行排序后,它将返回小于或等于条件的匹配项,例如 VLOOKUP 的 TRUE。

INDEX 从中找到并返回正确的值。


随着动态数组公式 XLOOKUP 的引入,我们可以使用:

=XLOOKUP(yourCriteria,B:B,A:A,"",0)

【讨论】:

  • 非常感谢!让它工作起来有点费劲,但它确实有效。 :)
  • @Scott Craner,对于 Excel 表格而不是范围,您有类似的解决方案吗?
  • @DavidLeal 这是一个新问题,请发布一个新问题,而不是在旧线程上提问。
  • @ScottCraner 我是根据你的想法找到的:INDEX(Table1[A], MATCH(yourCriteria, Table1[B],0),其中Table1 是 excel 表格对象,AB 分别是第一列和第二列的名称。跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多