Excel公式技巧38: 向左查找值的技术

2020-07-14 16:17:15 浏览数 (2)

通常,我们使用经典的INDEX/MATCH函数来实现向左查找。如下图1所示,想要查找净销售为1088的销售人员,显然是单元格B6中的“John”。

图1

使用INDEX/MATCH函数组合的公式:

=INDEX(B5:B17,MATCH(1088,D5:D17,0))

很顺利地获得了要查找的结果。

我们知道,VLOOKUP函数通常查找并返回表右侧的值。然而,这里介绍的技术却能让VLOOKUP函数实现向左查找。

这里的关键是使用CHOOSE函数,公式如下:

=VLOOKUP(1088,CHOOSE({2,1},B5:B17,D5:D17),2,0)

主要看看公式中的:

CHOOSE({2,1},B5:B17,D5:D17)

被解析为:

{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},则需要将B5:B17和D5:D17相交换,即:

=VLOOKUP(1088,CHOOSE({1,2},D5:D17,B5:B17),2,0)

将上面的公式扩展应用。现在想要查找净销售为1088的销售人员“John”对应的客户数,可以使用公式:

=VLOOKUP(1088,CHOOSE({1,2,3},D5:D17,B5:B17,

使用CHOOSE函数生成了一个供VLOOKUP函数查找的表,并执行查找返回结果。

注意,CHOOSE函数中第1个参数数组的顺序,一定要确保要查找的值在生成的数组的最左侧,使其符合VLOOKUP函数的语法。

小结:熟悉各个函数的基本用法,相互配合,往往会得出意想不到的解决方案。

注:本文讲解的技术整理自chandoo.org。

0 人点赞