choose的用法 真正理解CHOOSE({1,2}后才顿悟CHOOSE({1,2,…...N}的神奇妙用!

在正常的办公工作中,很多原始数据源不支持直接的数据统计和计算,需要转换结构后再使用Excel函数公式进行自动计算。在这个过程中,往往需要构建一个内存阵列。
除了IF({1,0})的构造方法外,我们还可以根据需要使用CHOOSE({1,2})的方法构造内存数组,支持Excel函数直接计算出想要的结果。
由于大部分人还是不明白其中的奥妙,本文分两种情况介绍了构建内存数组的思路和方法,方便职场白领直接在工作中应用。
Excel查询要求从右到左:
左边是原始数据源,名字在分数右边;
求指定名字的英文分数。
场景示意图如下图所示。

choose的用法 真正理解CHOOSE({1,2}后才顿悟CHOOSE({1,2,…...N}的神奇妙用!


文章图片

要求使用Excel公式实现按条件自动查询。当条件改变时,公式结果将自动更新,如下图所示。

choose的用法 真正理解CHOOSE({1,2}后才顿悟CHOOSE({1,2,…...N}的神奇妙用!


文章图片

你能想到什么解决办法?自己想想,往下看。
Excel公式解决方案:
思路:使用CHOOSE构建内存数组,对原始数据源结构进行转换,将名称移到分值的左边,然后使用VLOOKUP函数根据条件查询数据。
使用的公式如下。
=VLOOKUP(D2,CHOOSE({1,2}, $B$2: $B$16, $A$2: $A$16),2,0)

choose的用法 真正理解CHOOSE({1,2}后才顿悟CHOOSE({1,2,…...N}的神奇妙用!


文章图片

这个公式的重点在于VLOOKUP函数的第二个参数,所以下面是一个特殊的解释。
利用CHOOSE函数构建存储阵列的原理;
为了让大家更容易理解这个内存数组,我们单独来解释一下,先看CHOOSE({1})的部分,如下图。
CHOOSE({1}, $B$2: $B$16, $A$2: $A$16)

choose的用法 真正理解CHOOSE({1,2}后才顿悟CHOOSE({1,2,…...N}的神奇妙用!


文章图片

看CHOOSE({2}),公式如下。
CHOOSE({2}, $B$2: $B$16, $A$2: $A$16)

choose的用法 真正理解CHOOSE({1,2}后才顿悟CHOOSE({1,2,…...N}的神奇妙用!


文章图片

然后将前两部分合并在一起,合并时注意摆放顺序。CHOISE({ 1,2})公式如下。
CHOOSE({1,2}, $B$2: $B$16, $A$2: $A$16)

choose的用法 真正理解CHOOSE({1,2}后才顿悟CHOOSE({1,2,…...N}的神奇妙用!


文章图片

这样名字就从年级栏的右侧移到了左侧,方便我们根据自己的需要进行各种查询。
当我们在工作中遇到更多的字段查询时,我们可以扩展这个思路和方法,使其兼容更多的情况,简化公式的编写,下面我们继续详细介绍。
选择的扩展用法({1,2,...n):
在解释原理之前,我们先来看一个案例,帮助你更好的理解。
现在需要继续升级。左边的原始数据源包含的学科分数较多,右边的数据需要按照数学、语文、英语、物理、化学的顺序进行查询。
只需扩展CHOOSE函数的内存构造方法,只用一个公式就可以查询五个字段的结果,如下图所示:

choose的用法 真正理解CHOOSE({1,2}后才顿悟CHOOSE({1,2,…...N}的神奇妙用!


文章图片

当查询条件发生变化时,公式结果自动更新,动画演示如下图所示。

choose的用法 真正理解CHOOSE({1,2}后才顿悟CHOOSE({1,2,…...N}的神奇妙用!


文章图片

【choose的用法 真正理解CHOOSE({1,2}后才顿悟CHOOSE({1,2,…...N}的神奇妙用!】这种方法是基于CHOOSE({1,2})的,下面将介绍详细的原理。
选择函数构建内存数组扩展方法;

推荐阅读