使用 Vlookup 多次出现并找到非空值

Jun*_*ang 1 excel vba excel-formula vlookup

在此处输入图片说明

我有一个看起来像这样的表,我想使用 VLOOKUP 之类的东西来查找非空的第二列值。

一个例子是:

VLOOKUP("Kiwi", Range A:B, 2, 0) 应该返回绿色

VLOOKUP("Apple", Range A:B, 2, 0) 应该返回红色

VLOOKUP("Pineapple", Range A:B, 2, 0) 应该返回 Yellow

请注意,第一次出现的 Pineapple 是空的,但它仍然应该返回 Yellow。而且我不必使用 VLOOKUP,我也对其他方法持开放态度。

我会感谢帮助。

谢谢你。

Mic*_*isk 7

您可以使用INDEX/MATCH数组公式:

多列多个条件的 INDEX MATCH 数组公式

公式为:

{=INDEX(B1:B7;MATCH(1;(A1:A7=E1)*(B1:B7<>"");0))}
Run Code Online (Sandbox Code Playgroud)

请注意,这是一个数组公式,您需要使用CTRL + SHIFT + ENTER输入它。

此公式将检查 A 列是否为“菠萝”,B 列是否为空白。您将得到一个如下所示的(虚构的)数组:

虚数组

两个数组中的值相乘,仅最后两行的结果将为1。在该数组中MATCH查找 的1(仅第一次出现!)并将“黄色”的行号传递给INDEX函数。INDEX然后获取第 6 行中的值 - 即“黄色”。

我希望这对你有帮助。

  • 这里有一个正常输入的小技巧:`=INDEX(B1:B7;MATCH(1;INDEX((A1:A7=E1)*(B1:B7&lt;&gt;""););0))`。赞成一个解释清楚的答案=) (3认同)