提问人:BrianFreud 提问时间:7/28/2016 更新时间:9/29/2022 访问量:76447
Excel VLOOKUP,其中键不在第一列中
Excel VLOOKUP where the key is not in the first column
问:
“查找值所在的范围。请记住,查找值应始终位于 VLOOKUP 正常工作的范围内的第一列中。例如,如果您的查找值位于单元格 C2 中,则您的范围应以 C 开头。
但有时我希望能够进行双向查找。即,使用 A 列中的键查找以获取 B 列中的值,同时在其他公式中查找 B 中的值以获取 A 中的值。
我知道的唯一方法是添加一个镜像 A 的列 C,然后使用 AB 进行第一次查找,使用 BC 进行第二次查找。但必须有一些更清洁的解决方案。有没有办法强制 VLOOKUP 使用除第一列以外的其他列来查找键值,或者是否有不同的函数可以允许等效的列?
顺便说一句,我问的是 Excel,但我实际上使用的是 LibreOffice。据推测,这些功能应该是相同的,但最好是在 LibreOffice 中也有效的答案。
答:
51赞
Scott Craner
7/28/2016
#1
因此,对于您的 B --> A 示例:
=INDEX(A:A,MATCH(yourCriteria,B:B,0))
MATCH 返回匹配项的行号。第三个标准是可选的。这与 VLOOKUP 的第四个标准相同,因为它寻找完全匹配。0
0
FALSE
默认情况下,对数据进行排序后,它将返回小于或等于条件的匹配项,例如 VLOOKUP 的 TRUE。1
从中,INDEX 找到并返回正确的值。
随着动态数组公式 XLOOKUP 的引入,我们可以使用:
=XLOOKUP(yourCriteria,B:B,A:A,"",0)
评论
0赞
BrianFreud
7/28/2016
非常感谢!让它工作有点麻烦,但它有效。:)
0赞
David Leal
3/21/2019
@Scott Craner,您是否有类似的 excel 表而不是范围的解决方案?
0赞
Scott Craner
3/21/2019
@DavidLeal这是一个新问题,请发布一个新问题,而不是在旧线程上提问。
3赞
David Leal
3/29/2019
@ScottCraner 我使用您的想法找到了它: ,其中分别是 excel 表对象和第一列和第二列的名称。INDEX(Table1[A], MATCH(yourCriteria, Table1[B],0)
Table1
A
B
0赞
David Leal
9/30/2022
@ScottCraner我删除了我的答案,对不起,我没有意识到在您的答案末尾,您为引入的新 excel 函数提供了解决方案。我很抱歉。XLOOKUP
评论
Index | Match