你大概不知道的SUMIF函数用法和其底层原理讲解
作为表格的元老函数,估计大家对这个函数已经非常非常熟悉了,但我相信有一个用法是很多人没有掌握理解的;甚至是没见过的。
下面举例两个相关题目,各位可以稍作停顿,思考去解答一下
--------------------------------思考分割线-----------------------------------------
回到sumif函数本身,软件给出的官方使用提示如下图,即在指定的【区域】内,对满足特定【条件】的数值进行求和操作。
而我们知道,满足条件的标识是逻辑值TRUE,不满足条件的标识是逻辑值FALSE。
所以,函数的实现原理过程为:将【条件】应用于【区域】的所有元素后,得到TRUE和FALSE的结果表达;然后把逻辑值为TRUE的位置,对应到求和区域的位置,最后计算这些位置上的所有数值之和。
说得比较难懂,下面通过例子说明:求下面数据<10的数的总和;
题目比较简单,大家应该不难解答,其中公式之一:SUMIF(U5:Y15,"<10",U5:Y15)
下面将该公式代入上述的原理一步步说明:
Sumif函数将条件(<10)应用在条件区域(U5:Y15)后,得到下图对应TRUE和FALSE的逻辑值结果,(留意TRUE的位置)
2、然后以求和区域左上角单元格为基准,把整个结果中的TRUE和FALSE映射到【求和区域】中,TRUE所对应的数字之和即为结果,这就是该函数求和的原理。
可以看到,TRUE对应的数字分别为5-5-5-5-5-5-5-5-5-5,所以此题的最终结果是50.
下面,是该函数的一些使用要点:
【求和区域】可以省略,省略时,求和区域和条件区域相同。所以公式可简写为:SUMIF(U5:Y15,"<10")
在【求和区域】不省略的情况下,函数会把得到的逻辑值区域左上角对应求和区域的左上角,其他单元格正常拓展,用来确定true和false对应的每个值。(即使求和区域含有锁定符合$也同样无效)----此要点非常重要!!
所以公式也可改写为:SUMIF(U5:Y15,"<10",U5);SUMIF(U5:Y15,"<10",U5:V6)
下面我把求和区域稍作修改,左上角单元格不再选为U5,改为了W5!!这时逻辑值中true和false所对应的数值发生了改变,true对应的分别为:5-43-0-5-0-5-0-5-12-0,所以结果就变为了75。
到这里,估计大家对这个函数的执行过程理解得够清晰了,其使用的核心就是利用条件创建true和false的区域,再把true对应到想要的求和区域中。
---------------------------------题目讲解分割线-------------------------------------
那么,了解原理后,我们回到最开始的两个题目
题1解题思路:想要计算产品1的总销量,就需要把每一个小销量求出来,通过观察,若将产品列向右移动一列,便会与相应的销量一一对应,因此,我只需对产品列针对条件得到的逻辑值,放在产品列的右侧一列即可得到满足条件的销量,详细的思路看下面图示:
1、把含有产品名称的单元格区域和“产品1”做等值计算,即B6:H15="产品1”,会得到一个全是逻辑值的区域
2、当把这个区域整体移动到C6去,会发现TRUE对应的刚刚好为产品1的销量
所以,最后得到的公式可为:SUMIF(B6:H15,L6,C6:I15),也可简写为SUMIF(B6:H15,L6,C6),求解结果为278
因为区域和求和区域存在错位,此方法常叫错列求和,考虑到错行同样适用,所以我偏向叫它错位求和
同样的,题目2的解题思路也基本一致,
想要得到每行最后的一个数值,那可以利用最后一个数值后一位为空值作为条件,去创建含有true和false逻辑值的区域,然后将其整体左移一个单位,TRUE则会对应到每一个最后值
最终的公式求解为
SUMIF(W6:AC15,"",V6:AB15);可简写为:SUMIF(W6:AC15,"",V6)
题目中还有一个小小的拓展:计算10个产品最后两次调价总和,原理一样就不多说了
公式为=SUMIF(W6:AD15,"",U6:AB15),可简写为=SUMIF(W6:AD15,"",U6)
到此,SUMIF函数的底层原理已经讲解完成。举一反三,对于后来发布的SUMIFS函数,其原理也如出一辙,不过在sumif函数基础上多一层并的关系,这里就不展开叙述了。
由于文笔不好,本文可能表达不够清晰,大家可以看着图示去理解,如有不懂可在评论区留言;文中如有错误地方,也欢迎各位指出!
创作者俱乐部成员
创作者俱乐部成员