如何使用 Index/Match 或其他函数获取查找值左侧的单元格数据

如何使用 Index/Match 或其他函数获取查找值左侧的单元格数据

INDEX我正在尝试使用和的组合MATCH来使以下内容发挥作用。

在此处输入图片描述

您将在图像底部看到“High”值。我试图做的是搜索左侧的表格以找到该值。然后,我希望输出为“Floorplan”名称。所以本质上,我希望“D”出现在 J14 中。

我最初尝试过,VLOOKUP但发现第一列需要是查找值,所以我尝试了索引/匹配路由。但我无法让它工作。任何反馈都将不胜感激。

使用的公式:

=INDEX($A$9:$D$15,MATCH($I$14,A9:D15,4),1)

答案1

正如gns100评论所说,MATCH()失败是因为要匹配的范围不是单个列(或行)。使用XLOOKUP()在这里效果很好,但细节确实有时会让它不合适。它遵循相同的基本方法,因为INDEX/MATCH它给出了相同的基本知识:查找值、在哪里查找该值、去哪里找到要返回的内容。

VLOOKUP()如果出于某种原因您喜欢它,它可以起作用。我相信,它INDEX/MATCH可以在任何具有的 Excel 版本中工作VLOOKUP(),因此通过显示的微小调整gns100,当需要与旧版本兼容时,您始终可以使用它。

VLOOKUP()通过使用INDEX()为其第二个参数创建一个虚拟表来实现这一点,该虚拟表仅包含查找列和结果列,并按该顺序排列。例如:

=VLOOKUP($I$14,  INDEX(A9:D15, ROW(INDIRECT("1:"&ROWS(A9:D15)) ),{4,1}),  2,  FALSE)

{4,1}(“数组常量”) 指示首先INDEX()返回第 4 列,然后返回第 1 列,从而为您提供一个 (虚拟) 两列查找表,您VLOOKUP()可以在其中“向右查找”以找到结果。因此它仍然“向右查找”,但效果是“向左查找”。

中间的那部分ROW(INDIRECT("1:"&ROWS(A9:D15))只是从“1”到任意位置获取序列的老式方法,因此它指定返回所有行。如今,一个简单的方法SEQUENCE( ROWS(A1:D15) )就可以了,但过去的情况并非XLOOKUP()如此……它必须存在的原因是,当您直接使用数组常量指定行或列(或在某些其他用途中为“区域”),或者在其计算过程中生成数组常量的任何东西时,Excel 要求完全指定另一个参数,而不是仅使用,,(对于行参数没有任何内容)或,0,(“0”作为行参数),其中任何一个都指定“所有”行到 Excel。

是的,老派很讨厌。必须XLOOKUP()FILTER()

您可以使用类似的技术对行进行操作,尽管组成方式略有不同,但可以INDEX()创建一个自下而上、自上而下的虚拟表……最后一行现在是第一行,第一行现在是最后一行。这样您就可以找到“最新日期”以及您想要从下往上搜索的类似内容。

不过,所有这些都只是为了与旧版本兼容,因为XLOOKUP()只有在特殊情况下才会无法满足需要。FILTER()当然,现在的类似方法也只是为了与旧版本兼容。

有一件有趣的事情INDEX()可以做到这一点,但它还没有过时,至少没有完全过时(我认为新的数组处理函数也可能使它过时),那就是它可以在所有四种变化中转置一个范围,而不仅仅是像 一样从左到右变成从上到下,反之亦然TRANSPOSE()。但事实上,你在数以百万计的 Excel 帮助网站上从未听说过这样做,这可能意味着它在现实世界中永远不需要。

相关内容