我的vlookup出了问题。
我的数据格式如下:(见截图)
我将我的VLOOKUP公式运行为= VLOOKUP(C6:C11,named_range,2,FALSE)
“named_range”是我用于命名范围的内容,因此所有内容都是绝对引用。命名范围是右侧的整个选择
我知道vlookup返回它找到的第一个结果的值,这就是为Steve,Ben和Jane返回“0”的原因。
但是我想弄清楚如何让它做到以下几点:
如果vlookup找到一个与之关联的空白单元格的匹配值,请向下查看该列表,直到找到在其旁边的单元格中具有某些内容的匹配值。
这是我想要的预期结果(当然是手动制作):
我做了很多研究,但找不到解决这个问题的方法......我倾向于MATCH和INDEX的方向,但似乎没有任何东西符合我的要求。
先谢谢,希望我解释好了。
答案 0 :(得分:2)
解决问题的另一种方法是:
{=INDEX(K6:L17,MATCH(1,(K6:K17=C6)*(L6:L17>0),0),2)}
这也是一个数组公式(因此您需要使用Ctrl + Shift + Enter)。
星号是数组公式的AND运算符(OR运算符是+)。它的作用是MATCH公式正在寻找第一行,其中两个条件都为TRUE,即1:
和
您可以在此处找到一个非常详尽的解释: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中有值时拉动,等等。
请告诉我这是否适合您。