NO.1 平凡世界:SUM
作为求和的正统血脉,SUM函数是资历最老的求和函数。这个以求和的英文单词直接冠名的函数,相信很多小花瓣都不会陌生。点击按钮,或输入=SUM(求和区域)
,抑或按<Alt+=>
,都可以调用SUM函数来对数据源进行求和。在没有使用数组运算的情况下,SUM函数的运算原理是相对比较简单的,但仍需注意文本和逻辑值会被SUM函数当成0处理,而当求和区域有错误值,SUM函数也会报错。眼中不容沙子是SUM函数最显著的脾气。
图1 快速批量调用SUM函数:Alt+=
用法与说明:
<Alt+=>
是自动求和的快捷键,定位空值后,调用自动求和,能够为空单元格自动填充SUM函数,求和区域也能够智能识别为左方和上方的相邻连续单元格区域。例如B5单元格,其上方相邻连续单元格为B2:B4,则B5的公式为“=SUM(B2:B4)
”,即对B2、B3、B4进行求和。
图2 Alt+=
NO.2 单一条件求和:SUMIF
作为求和函数科班出身的SUMIF函数,可谓是给求和函数家族带来了革命性的变化。从SUMIF开始,求和不再是“一团和气”,真正做到求同存异,和而不同。=SUMIF(条件区域,条件,求和区域)
这样的函数语句想必花瓣们都已经烂熟于心了。今天,就让我们用SUMIF函数来秀演示一下如何解决隔列求和问题。
图3 单一条件隔列求和
公式说明:
以N3为例,SUMIF函数将条件区域B2:M2中的每一个单元格都与条件值N2单元格进行比对,如果相等,则将B3:M3中与之对应的单元格求和,因为B2、E2、H2和K2都与N2同为“销额”,所以对应的B3、E3、H3和K3都被加总起来。实例中的$符号表示锁定行列的标志,这样的操作是为了能够将公式拖动填充到N2:P8区域中。
NO.3 多条件求和:SUMIFS
SUMIFS函数作为SUMIF函数的威力加强版,几乎具备了后者全部的本领。它的显著优势在于它可以为求和区域设定的条件数量不再仅限于一个,而是将条件区域与条件值的组合扩大到最多127组,这是一次质的飞跃。=SUMIFS(求和区域,条件区域1,条件1,条件区域2,条件2......)
是SUMIFS函数的基本语法,小花瓣们要注意它和SUMIF函数的差别在于SUMIFS函数的求和区域是前置的。
图4 多条件求和
公式说明:
以G2为例,SUMIFS函数的作用是将C2:C10中的每一个单元格与E2进行比较,同时将B2:B10中的每一个单元格与F2进行比较,将同时满足两个条件的对应求和区单元格C2和C5进行求和。
NO.4 交叉条件求和:SUMPRODUCT
SUMPRODUCT在函数届具有不可撼动的霸主地位,原因便是它兼具多项才能,除了我们常见的多条件查询,乘积求和和交叉条件求和也是它的拿手好戏。SUMPRODUCT的基本语法是=SUMPRODUCT(乘积区域1,乘积区域2)
,两个乘积区域中的数字会被一一对应相乘并求和,即乘积和;它还有一个非常著名的变形语法=SUMPRODUCT((条件区域1=条件1)*(条件区域2=条件2)......*(求和区域))
,这个语法实际上是一个数组运算,本文我们不深入探究其用法,仅以图5为例稍作演示。
图5 乘积和
公式说明:
SUMPRODUCT(A2:A10,B2:B10)
表示将A2:A10和B2:B10一一对应相乘,例如A2*B2、A3*B3等,最后将这些乘积求和。
图6 交叉条件求和
NO.5 可见求和:SUBTOTAL
SUBTOTAL函数对很多小花瓣还说,就像一个熟悉的陌生人,似曾相识却与不可名状。你一定用过它,但你很可能并不认识它。没错,当你在筛选的情况下点击,那么被调用的求和函数就不是SUM,而是SUBTOTAL函数。=SUBTOTAL(功能代码,求和区域1,求和区域2......)
是它的基本语法。参数1中的功能码有很多,其中与求和有关的有两个,9和109。当求和区域包含隐藏单元格时,9表示包含隐藏值求和,109忽略隐藏值求和,即可见求和。
图7 可见求和
公式说明:
C12中SUBTOTAL的功能码为9,包含隐藏单元格求和,其求和结果不会随隐藏行操作而变化;而D12中的功能码为109,不包含隐藏单元格,因此,当求和区域所在行被隐藏,隐藏单元格将不被纳入求和范围内。
NO.6 忽略求和:AGGREGATE
AGGREGATE作为求和函数界的“饮水机守护者”,一直默默无闻,了解或者说知道它的花瓣屈指可数。几乎把板凳坐穿的命运与它全能的战斗力并不匹配,怀才不遇的AGGREGATE函数需要一次放光发热的而机会。于是,连小花都不忍心再次埋没它了。=AGGREGATE(9,忽略类型码,求和区域)
就是运用AGGREGATE求和时的基本语句,其中9是AGGREGATE第一个参数中表示求和的功能码。而忽略类型吗共有8个,分别表示忽略不同类型的数据,具体如下表:
图8 忽略类型代码表
我们不妨使用AGGREGATE来完成上述函数都无法完成的忽略错误值求和。
图9 忽略错误求和
公式说明
SUM函数求和时,无法因对求和区域中有错误值的情况;而AGGREGATE则能克服这一缺陷,忽略求和公式中的错误值求和。
NO.7 数据库求和:DSUM
作为数据库函数的一员,DSUM函数难免默默无闻,充满未知和神秘的色彩。今天小花带你来揭开它的神秘面纱。DSUM的功能是返回列表或数据库中满足条件的记录字段列数字之和。=DSUM(列表区域或数据库,字段,条件区域)
是它的基本语句,其中条件区域是由字段标签单元格和表示条件的单元格组成。
图10 数据库求和
公式说明
求和列表区域为A1:D10,该区域必须包含求和列和条件列,且其首行必须为字段标题(品名、2L等);公式中的B1表示求和字段名为“2L”,该字段值为列表区域的标题行标签之一;而条件区域F1:G2的第一行为字段标签,该字段标签必须包含在列表区域中,它的第二行为公式值,F1:F2表示条件一为品名包含“C产品”,G1:G2表示条件二为2L的产量大于0。利用DSUM函数对满足两个条件对应的B列值进行求和。
本文介绍的求和函数应用实例都是比较简单的,主要目的是让小花瓣们熟悉它们,以便可以视情况择优使用。这些函数看似简单,但如果你深入研究,你会发现函数的变形写法、加入通配符的使用、数组求和等等都能大幅度提高求和函数的功能性。