学习函数,只掌握其基本语法是远远不够的,还要不断练习,多解题,才能打开思路。
越学习,越会发现学无止境,自己会的那两把刷子,连百宝全书一只角都算不上。
比如 max 函数,它真的就是一个求最大值函数吗?
对于这一点如果有质疑,不妨参阅一下Excel – 万万没想到,max 函数还能用于二维查询。
很多看过上文的读者都表示:本来以为会的函数,看完后发现不会了。
如果这已经让人感到震惊,那么接下来我要讲解的案例,可能更加刷新三观。
案例:
下图 1 是每个销售当月的获客数和平均客单价,根据以下规则,计算出应得奖金数,结果如下图 2 所示。
根据获客数区间发放奖金:
>=3 &
>=6 &
9:13500
>=10:20000
根据客单价乘以奖金系数:
>500 &
>1000 &
>1500 &
>2000 &
>3000:0%
解决方案:
1. 根据需求,我们先分别构建出获客数和客单价两个区间条件表。
看到上面的两个条件查询表,不少同学就明白了,这是要按区间查找,于是想起了最常用的区间查找函数 lookup,类似的案例请参阅Excel – 用 lookup 函数按区间查找。
还有一些按区间统计的用法,例如:
然而前面说过了,今天的主角是 max 函数,要靠它实现按区间查找。
2. 在 D2 单元格中输入以下公式 --> 按 Ctrl+Shift+Enter 生成数组公式 --> 下拉复制公式:
=MAX((B2>=$F$2:$F$5)*$G$2:$G$5)*MAX((C2
公式释义:
这个公式中有两个 max 函数,分别对两个不同的区间进行查询,我依次来解释一下;
MAX((B2>=$F$2:$F$5)*$G$2:$G$5):
B2>=$F$2:$F$5:依次判断 B2 的值是否大于等于 $F$2:$F$5 区域的值,生成一个由逻辑值组成的数组,结果为 ,true 相当于 1,false 相当于 0;
...*$G$2:$G$5:将上述数组与 G 列的数据区域相乘,只有数组中为 true 的乘积有值,false 的乘积均为 0,结果为 ;
MAX(...):用 max 函数取出数组中的最大值,即 3000
MAX((C2
C2
...*$J$2:$J$6:将数组与 J 列的值相乘,只有 true 值的乘积不为 0;
MAX(...):用 max 函数取出数组中的最大值,即 20%
MAX(...)*MAX(...):将上述两个 max 的结果相乘,得到最后的奖金数 600
无论哪个数组函数中有多个 true 值,也没关系,max 会取结果中的最大值,即最接近的区间所对应的值。
* 参数中的区间都需要绝对引用。
Excel学习世界
转发、在看也是爱!
领取专属 10元无门槛券
私享最新 技术干货