VLOOKUP即使第一个结果下面的行中有值,也返回0

时间:2016-08-02 04:41:38

标签: excel excel-formula vlookup

我的vlookup出了问题。

我的数据格式如下:(见截图)

VLOOKUP PROBLEM IM HAVING

我将我的VLOOKUP公式运行为= VLOOKUP(C6:C11,named_range,2,FALSE)

“named_range”是我用于命名范围的内容,因此所有内容都是绝对引用。命名范围是右侧的整个选择

我知道vlookup返回它找到的第一个结果的值,这就是为Steve,Ben和Jane返回“0”的原因。

但是我想弄清楚如何让它做到以下几点:

如果vlookup找到一个与之关联的空白单元格的匹配值,请向下查看该列表,直到找到在其旁边的单元格中具有某些内容的匹配值。

这是我想要的预期结果(当然是手动制作):

Expected Result

我做了很多研究,但找不到解决这个问题的方法......我倾向于MATCH和INDEX的方向,但似乎没有任何东西符合我的要求。

先谢谢,希望我解释好了。

3 个答案:

答案 0 :(得分:2)

解决问题的另一种方法是:

{=INDEX(K6:L17,MATCH(1,(K6:K17=C6)*(L6:L17>0),0),2)}

这也是一个数组公式(因此您需要使用Ctrl + Shift + Enter)。

星号是数组公式的AND运算符(OR运算符是+)。它的作用是MATCH公式正在寻找第一行,其中两个条件都为TRUE,即1:

  1. 列K = C6(Bob)
  2. 中的单元格

    1. 列L中的单元> 0
    2. 您可以在此处找到一个非常详尽的解释:Index-Match-Combination

答案 1 :(得分:1)

我能想到的最简单的方法是添加一个测试以查看单元格是否为空白:

=VLOOKUP(C6,IF(ISBLANK($L$6:$L$18),0,$K$6:$L$18),2,FALSE)

这是一个数组公式,因此需要使用Ctrl + Shift + Enter输入。

答案 2 :(得分:1)

这是一个“怪癖”之一。使用VLOOKUP。它会拉出它找到的第一场比赛。在这种情况下,第一个"史蒂夫"有一个空值,所以它是0.第一个Jane也是空白,所以它再次返回0等。有几种方法可以解决这个问题。你可以简单地对引用的表进行排序,这样第一个匹配就是带有值的表,或者你可以用单元格J6开始写一个不同的公式。

=IF(L6<>"",K6,"")

之后将VLOOKUP更改为以下

=VLOOKUP(C6,J:L,3,0)

您还可以更新您的命名范围参考,以便您可以使用它,但这些列可以正常使用此公式。这样做,VLOOKUP只会在L6中有值时拉动,等等。

请告诉我这是否适合您。