千家信息网

CHOOSE,Excel 里最会做选择的函数

发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,原文标题:《只会 IF 函数 Out 了!它是 Excel 里最会做选择的函数,可惜 90% 的人没用过!》说到 IF 函数,可谓「天下谁人不识君」,很多人接触的第一个 Excel 函数就是它。至于
千家信息网最后更新 2024年11月28日CHOOSE,Excel 里最会做选择的函数

原文标题:《只会 IF 函数 Out 了!它是 Excel 里最会做选择的函数,可惜 90% 的人没用过!》

说到 IF 函数,可谓「天下谁人不识君」,很多人接触的第一个 Excel 函数就是它。

至于 IF 的加强版 --CHOOSE 函数,却是「未遇行藏谁肯信」的窘迫。

今天,小花就和大家分享下这个低调的高能函数,为它正名。

01、基础用法

举个简单的例子,我们需要根据学号的尾数,将全部学生分为三组,该怎么用公式设置好呢?

如果你还不了解 CHOOSE 函数,那我猜你会使用 IF 来解决这个问题。

C2 公式如下:

=IF (MOD (B2,3)=1,"一组",IF (MOD (B2,3)=2,"二组","三组"))

公式说明:

MOD 函数用于返回两数相除的余数,MOD (B2,3) 即可返回学号除以 3 的余数,可能的值为 1、2 和 0。再使用 IF 函数嵌套公式来进行两层逻辑判断,返回对应的分组。

显而易见,IF 函数嵌套公式设置非常繁琐,而且当条件判断式(如:MOD (B2,3))比较复杂,或者需判断的情况增多(比如,分为 7 个组)时,仍然使用 IF 函数将十分吃力。

但如果你会使用 CHOOSE 函数,那公式就简练得多了。

CHOOSE 函数是根据索引值返回数值列表中对应位置的数值。

我们只需运用简单的计算式将逻辑判断转变为数字,CHOOSE 就可以据此索引,从而实现多条件判断。

C2 公式如下:

=CHOOSE(MOD(B2,3)+1,"三组","一组","二组")

公式说明:

MOD (B2,3)+1 即可返回学号除以 3 的余数 + 1,可能的值为 2、3 和 1,CHOOSE 根据 MOD (B2,3)+1 的值返回对应参数列表 {"三组","一组","二组"} 中的一个。

C2 单元格由于 MOD (B2,3)+1 等于 2,所以 CHOOSE 返回参数列表的第二个值,即 "一组"。

02、核心能力

上述例子并不能充分展现 CHOOSE 函数的作用,VLOOKUP 似乎能够更好地胜任这类返回值仅是特定单元格引用或特定常量的多条件判断问题

当不同条件下返回值适用不同的计算规则时,CHOOSE 函数的优势就十分明显,佣金计算就是典型案例。

举个例子,某公司采用如下规则核发佣金,问如何设置公式才能快速计算出每个员工的佣金呢?

查询类函数如 VLOOKUP 者显然无法完成这类复杂规则计算,IF 函数多重嵌套又费力不讨,而 CHOOSE 函数则刚好妥妥拿捏。

D2 公式如下:

=CHOOSE(C2+1,B2*1%,B2*1.5%+1000,B2*2%+3000,B2*3%+5000)

公式说明:

CHOOSE 函数的首个参数如果为小数,则仅取整数部分作为索引值。

运用 CHOOSE 的这个特点,我们通过 C2+1 将完成率快速转变为指向适用计算规则的索引值,大大简化了运算。

随后,将各个情况的计算公式一一罗列,公式即可正确计算。

03、脑洞组合

每一个函数的高级用法基本都与数组有关,CHOOSE 函数也不例外。

最常被提及的用法,是将 CHOOSE 与 VLOOKUP 组合起来,实现逆向查询。

VLOOKUP 作为高频函数,用于查询数据非常方便,但确有一个显著的缺陷,就是它只能匹配查询区域首列并返回首列右侧指定列的结果值。

当出现下面这种情况时,VLOOKUP 无法通过匹配 B 列的学号,返回 A 列的姓名值,因为 A 列在 B 列左侧。

这时,我们可以使用 CHOOSE 函数来构建一个虚拟区域,将 A 列调整到 B 列的右侧,此时,VLOOKUP 函数就能够顺利完成查询了。

G2 公式如下:

=VLOOKUP(F2,CHOOSE({1,2},B2:B7,A2:A7),2,0)

公式说明:

如果 CHOOSE 函数的首个参数 Index_num 为一个数组,则在函数 CHOOSE 计算时,每一个值都将计算。

本公式中 CHOOSE 函数的首个参数为数组 {1,2},即可返回由 VALUE1「B2:B7」和 VALUE2「A2:A7」组成的以 B 列为首列、A 列为第二列的新区域,这就解决了结果列在匹配列左侧的问题。

此时,VLOOKUP 查询就没有障碍了。

此外,我们也可以用 CHOOSE 来帮助 LOOKUP 实现交叉查询

C2 公式如下:

=LOOKUP($A2,$A$5:CHOOSE(MATCH(C$1,$B$4:$D$4,0),$B$10,$C$10,$D$10))

公式说明:

采用 LOOKUP 的数组形式

LOOKUP (lookup_value,array),仅需输入两个参数,LOOKUP 根据查询值 A2,在查询区域的首列匹配,并返回查询区域最后一列对应位置的值。

CHOOSE 函数正好可以根据 MATCH 匹配交叉条件计算出的列序,返回查询区域末尾单元格,从而与首个单元格 A5 连结成 LOOKUP 所需要的查询区域位置。

以上,就是小花分享的 CHOOSE 函数的用法,包括:

❶ 根据索引值返回对应参数的基础用法。

❷ 根据不同情况执行不同计算规则的核心能力。

❸ 辅助查询函数实现复杂功能的脑洞级用法。

这样的 CHOOSE 函数,你爱了吗?

本文来自微信公众号:秋叶 Excel (ID:excel100),作者:小花,编辑:雅梨子、竺兰

0