SUMIF函数你会吗?我想大部分人应该都可以回答OK的,因为基本都用过,但是SUMIF远比你想象的要强大,今天SUMIF函数最后压轴!
直接来看第一个问题。
每个人的测试都以最后一次为准,现在要统计总分,如何处理?
我们先来聊聊常规思路:
如果你是基础选手,那么应该想到先添加一列,把每个人的最后一次求出再求和!
▍新手解法
那么,用什么函数可以统计最后一次呢?
比较简单的,可以使用LOOKUP函数处理,算是一个通用的套路!
=LOOKUP(1,1/(B2:E2<>""),B2:E2)
再求和应该就不用说了,直接SUM函数即可!
有同学说LOOKUP函数我不熟,有没有更简单的方法?
其实使用简单的IF函数+MAX函数也可以,这里用的是错位的思路,这个思路很重要。
=MAX(IF(B2:F2="",A2:E2))
说完新手解法,我们来看看进阶的一些处理方法!
▍进阶解法
新版本更新后,我们有了很多新增的数组函数,解决这类问题,非常轻松,比如从后往前提取数据,我们可以使用TAKE函数,删除空白单元格,可以使用TOROW第三参数,配合起来!
如果我们想直接得到结果,有办法吗?
直接使用BYROW函数,字面意思,逐行处理,也就是把辅助列搬到了公式内部处理!其中的x就表示每次循环的当前行!
=SUM(BYROW(B2:E9,LAMBDA(x,TAKE(TOROW(x,3),,-1))))
不管是辅助列,还是上面的解法,多多少少都有点麻烦,其实问题非常简单,一个SUMIF函数即可搞定,压轴来了!
▍SUMIF压轴
对没错,就是下面这么简单!
=SUMIF(B2:F9,"",A2)
这里用的还是我们上面提到的错位的思维!SUMIF函数会把第一参数满足条件的对应的第三参数部分相加!
下面这张图就是上面的核心逻辑,SUMIF的判断条件是空,条件区域和求和区域是错开一列的,求和区域是从A列开始,条件区域从B列开始,但是要保证两个区域大小一致!
SUMIF的第三参数会根据单元格参数的大小自动扩展,如果我们只写一个起始单元格!
更多函数教程,可以参考今天的次条推文,上百个函数,一次学透!