2016-08-02 36 views
0

我的vlookup出现问题。VLOOKUP即使在第一个结果下面的行中有一个值,也会返回0

我有在以下格式的数据:(见截图)

VLOOKUP PROBLEM IM HAVING

我跑我VLOOKUP公式= VLOOKUP(C6:C11,NAMED_RANGE,2,FALSE)

“named_range”就是我用来命名的范围,因此一切都是绝对的参考。命名范围是右侧的全部选择

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

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

如果VLOOKUP查找具有与之相关联的空白单元格相匹配的值,向下看列表,直到找到匹配值在它旁边的单元格中有很多东西。

这里是预期的结果,我想(这是由手动的过程):

Expected Result

我已经做了一吨的研究,但不能找到一种方法来解决这个问题?我倾向于MATCH和INDEX的方向,但似乎没有什么符合我的要求。

在此先感谢希望我解释好。

回答

1

我能想到的最简单的方法是添加一个测试,看看如果细胞空白:

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

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

+0

嘿,你知道它的工作是什么!谢谢,你有什么建议,我可以学习如何创建一个数组公式,可以处理那些存在这个问题的数据。我会开始做我自己的研究,但..再次感谢 – Kevin

0

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

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

后改变你的VLOOKUP以下

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

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

让我知道这是否适合你。

1

另一种方式来解决这个问题是这样的:

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

这也是数组公式(所以你需要使用Ctrl + Shift + Enter键)。

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

  1. 细胞

AND

  • 细胞在列L> 0
  • 你可以在这里找到一个非常全面的解释:Index-Match-Combination

    相关问题