曾经我以为我对 SUMIF 这个函数了如指掌,直到遇到了这些神奇的用法,我才发现,我还是 too young too simple……
(一言不合就开始说外语……)
接下来,请睁大你的 eyes,收拾好你随时可能掉落的 mouth,你没看错,SUMIF 还可以这么用↓
- 1 -
错位求和
难度系数 ★★★☆☆
SUMIF:如果你以为我是一个规矩刻板的函数君,那你一定是被我严肃的表情欺骗了。其实老纸也有一颗躁动的心,摩擦摩擦,看我的魔鬼步伐,轻松搞定让你头痛的错位求和。
案例
和常见的一维表格不同,这张表格中的城市和数量是不规则的二维表结构,成条纹状。这样的表格,我们如何快速求得每个城市的数量之和呢?
简单!一个「常见」的 SUMIF 就能把这个难题收拾得服服帖帖!
=SUMIF(B1:E8,A11,B2)
公式说明
SUMIF 函数的基本语法是:
=SUMIF(条件区域,条件,求和区域)
需要注意的是,求和区域首个单元格和条件区域首个单元格的相对位置至关重要,条件区域中的其他单元格会根据这个相对位置来确定其对应的求和单元格。
换句话说,第三个参数求和区域的有效引用仅仅在于它的第一个单元格,这就是公式第三个参数可以简写为 B2 的原因。
具体来说,由于求和区域首个单元格 B2 与条件区域 B1:E8 的首个单元格 B1 的相对位置关系是 B2 在 B1 下方一个单元格,即对 B1:E8 做判断,满足条件的将其下方一个单元格纳入求和范围。
于是条件单元格 B2 对应的求和范围是 B3,C1 对应 C2,C2 对应 C3,以此类推,条件区域 B1:E8 对应的求和区域就是 B2:E9。
完整的 SUMIF 求和公式可以表示为:
=SUMIF(B1:E8,A11,B2:E9)
- 2 -
最后一条记录求和
难度系数 ★★★☆☆
SUMIF:多次更新后取最后一条记录本就是个麻烦事儿,更麻烦的是还要把这些数字加起来。不怕,我可是智勇双全的小姐姐,本宫出马,一个顶俩儿!
案例
以预算价格更新为例,有些物料价格不断更新,而有些则早早就确定了下来。
我们把每次更新价格的记录列在下表中,每次有价格更新,就新增一行来记录新的价格。
现在,要统计四款物料的平均单价,我们需要使用每款物料的最新价格来做统计,也就是表格当中每款物料价格列中的最末一行数值,由于这几个数值并不在同一行中存放,常规手段很难做到自动判断位置,而使用 SUMIF 函数就可以轻松搞定这类问题。
=SUMIF(B3:E8,"",B2:E7)/4
公式说明
此处的公式也是采用相对位置来确定求和范围的,差别在于这次我们将""(空)作为条件,对条件范围 B3:E8(注意该参数比有效数据区域 B2:E7 多了一行)中的每个单元格进行条件验证,满足条件则将其上一个单元格纳入求和范围。
这里有两种情况:
❶ 空单元格的上一单元格是数字(即最末行当中的最新价格)
❷ 空单元格上一单元格也为空,其值为零。
于是该公式的返回结果为每一列单元格的最后一个数字和 N 个 0 的之和,故而实现了对最后一条记录求和的功能。
- 3 -
等级分数快速换算
难度系数 ★★★★★
SUMIF:多项指标等级制考核如何转换为数值,以便排列次序,优胜劣汰!这类令人绝望的问题,如果你还没找到趁手的解决之道,那接下来你一定会大有所获!
案例
某公司的一项晋升考核办法从五个维度对主管级人员进行考核,分 SABCD 五个级别,分别对应 5 分到 1 分,按总得分来核定考核结果。这里的难点是每个人的求和对象并不是数值,而是表示等级的文字,需要先经过一道换算,才能转变成数值进行汇总求和。
这里,我们可以巧妙的利用 SUMIF 来对五个级别进行换算,然后使用 SUM 将这些换算结果加总起来!
{=SUM(SUMIF($I$2:$I$6,$B2:$F2,$J$2:$J$6)}
公式说明
逆向思维,条件区域为全部等级 I2:I6,条件值为各个评定的等级 B2:F2,如果 I2:I6 与评定等级 B2:F2 相同,则将 I2:I6 对应的分值 J2:J6 加总。由于每一等级仅会与 I2:I6 中的一个值相等,即可实现将评定等级 B2:F2 对应转化为分值 J2:J6。
换句话说,这里的 SUMIF 起到的是查询的作用!
这里的难点是为什么第二个参数(条件值)可以使一个单元格区域,而非单一值?这是因为我们使用了数组运算,赋予 SUMIF 函数多个条件值参数,执行数组运算可返回多个条件求和结果,再使用 SUM 函数对求和结果进行求和,使公式最终返回单元格可以存储的单值。
切记输入公式后,需同时按【Ctrl+Shift+Enter】进行数组运算!!!
以上就是 SUMIF 函数鬼斧神工般的三种运用,从错位求和到最新单价求和再到等级转化分值求和,招招直击痛点!你都学会了吗?