通常,我们使用经典的INDEX/MATCH函数来实现向左查找。如下所示,想要查找净销售为1088的销售人员,显然是单元格B6中的“John”。
使用INDEX/MATCH函数组合的公式:
=INDEX($B$5:$B$17,MATCH(1088,$D$5:$D$17,0))
很顺利地获得了要查找的结果。
我们知道,VLOOKUP函数通常查找并返回表右侧的值。然而,这里介绍的技术却能让VLOOKUP函数实现向左查找。
这里的关键是使用CHOOSE函数,公式如下:
=VLOOKUP(1088,CHOOSE({2,1},$B$5:$B$17,$D$5:$D$17),2,0)
主要看看公式中的:
CHOOSE({2,1},$B$5:$B$17,$D$5:$D$17)
被解析为:
{1592,”Joseph”;1088,”John”;1680,”Josh”;2133,”Jamie”;1610,”Jackie”;1540,”Johnson”;1316,”Jonathan”;1799,”Jagjit”;1624,”Jairam”;726,”Jessy”;2277,”Javed”;714,”Jimmy”;2682,”Juno”}
是一个13行2列的数组。
传递给VLOOKUP函数作为参数table_arry的值,即:
VLOOKUP(1088, {1592,”Joseph”;1088,”John”;1680,”Josh”;2133,”Jamie”;1610,”Jackie”;1540,”Johnson”;1316,”Jonathan”;1799,”Jagjit”;1624,”Jairam”;726,”Jessy”;2277,”Javed”;714,”Jimmy”;2682,”Juno”},2,0)
在第1列中找到1088,返回其对应的第2列中的值“John”。
如果你要使用{1,2},则需要将$B$5:$B$17和$D$5:$D$17相交换,即:
=VLOOKUP(1088,CHOOSE({1,2},$D$5:$D$17,$B$5:$B$17),2,0)
将上面的公式扩展应用。现在想要查找净销售为1088的销售人员“John”对应的客户数,可以使用公式:
=VLOOKUP(1088,CHOOSE({1,2,3},$D$5:$D$17,$B$5:$B$17,$C6:C18),3,0)
使用CHOOSE函数生成了一个供VLOOKUP函数查找的表,并执行查找返回结果。
注意,CHOOSE函数中第1个参数数组的顺序,一定要确保要查找的值在生成的数组的最左侧,使其符合VLOOKUP函数的语法。
小结:熟悉各个函数的基本用法,相互配合,往往会得出意想不到的解决方案。