11个求和、计数案例,争取都学一次!这个要收藏!

网友:Sumproduct函数太好用了,导致现在Excel专门的条件求和、计数函数Sumif(Countif)都不去使用了。

卢子:一部《三国演义》让大家把诸葛亮当神看待:神机妙算,无所不能。以至于周瑜感叹:既生瑜,何生亮(既生Sumif(Countif),何生Sumproduct)。其实周瑜也是一个很有才华的人,只是被掩盖了。

扯远了,回到正题。

Sumif(Countif)其实也很好用,有好事者测试了Sumifs跟Sumproduct多条件求和统计速度,前者是后者的三倍。那sumif单条件统计速度比Sumproduct快一点还是可以肯定的。不过对于普通如你我的人,可以忽略这个速度的问题。

先来了解一下Countif函数,怎么学函数,老话【F1】调出帮助,不要对每次的重复操作厌倦,帮助可以给我们提供很多有用得信息。下图是Countif函数帮助。

通俗点的语法,统计区域满足条件的个数。

=COUNTIF(条件区域,条件)

下面通过几个小例子来说明Countif的用法,2006年电脑配件销售一览表。

1.数量大于30的有几个

=COUNTIF(D4:D22,">30")

2.营业部中含河字的有几个

=COUNTIF(A4:A22,"*河*")

通配符的说明:*代表所有字符,?代表一个字符,如果需要统计营业部中两个字符,且河字在最后面可以这么写公式

=COUNTIF(A4:A22,"?河")

3.在商品这列中是否有键盘

=IF(COUNTIF(B4:B22,"键盘")>0,"存在","不存在")

如果有存在键盘Countif统计出来的次数大于0,否则就等于0。公式可以稍做简化

=IF(COUNTIF(B4:B22,"键盘"),"存在","不存在")

网友:>0这部分怎么可以省略,这是什么原理?

卢子:一起来看看下面几个判断,第一参数只要不是0,就等同于TRUE。

=IF(3,"存在","不存在"),返回存在

=IF(-3,"存在","不存在"),返回存在

=IF(0,"存在","不存在"),返回不存在

4.统计每个营业部出现的次数

=COUNTIF($A$4:$A$22,L4)

因为公式是要下拉的,防止区域改变,加绝对引用。绝对引用、相对引用、混合引用三种可以通过用【F4】键不断切换得到。

5.统计共有几个不重复营业部

=SUMPRODUCT(1/COUNTIF(A4:A22,A4:A22))

=SUMPRODUCT(1/COUNTIF(区域,区域))是计算区域不重复个数的经典公式,需要好好理解。为了便于解读公式,把区域改小,公式变成=SUMPRODUCT(1/COUNTIF(A4:A9,A4:A9))

观察

=SUMPRODUCT(1/COUNTIF(A4:A9,A4:A9))

【F9】键抹黑

=SUMPRODUCT(1/{1;3;3;2;3;2})

【Esc】键返回

=SUMPRODUCT(1/COUNTIF(A4:A9,A4:A9))

【F9】键抹黑

=SUMPRODUCT({1;0.333333333333333;0.333333333333333;0.5;0.333333333333333;0.5})

【Esc】键返回,在单元格按回车看到结果:3

分析

【F9】键观察有时并不太直观,回到工作表中继续看看。

=COUNTIF(A4:A9,A4:A9)是多单元格数组,等同于=COUNTIF($A$4:$A$9,A4)下拉的结果,也就是统计每个单元格本身出现的次数,如1

=1/COUNTIF(A4:A9,A4:A9) 是多单元格数组,等同于=1/COUNTIF($A$4:$A$9,A4)下拉的结果,也就是1/每个单元格本身出现的次数,为了让数据更直观转换成分数形式,如2,出现3次就变成1/3,出现2次就变成1/2,出现1次就1。1/3+1/3+1/3=3*(1/3)=1,1/N+…+1/N=N*(1/N)=1,不管出现几次,相加都等于1。

最后将这些相加就是得到不重复的数量,如3

解读公式的一些习惯:

  1. 把区域改小,这样便于查看,如A1:A1000改成A1:A5

  2. 【F9】键配合【Ctrl+Z】或者【Esc】键不断地看运算过程再返回,重复到理解为止

  3. 输入公式回到单元格查看运算过程,这种相对比较直观

  4. 分析

第2,3点可选,看你对公式的熟练程度,如果不熟练选择3,熟练的话选择2。

关于计数就说到这里,回头再聊聊求和。

先来了解下SUMIF函数的帮助。

通俗语法:

=SUMIF(条件区域,条件,求和区域)

2006年电脑配件销售一览表,进行说明。

6. 汇总显示器的数量

=SUMIF(B4:B22,"显示器",D4:D22)

7.数量大于30的总数量

=SUMIF(D4:D22,">30")

第3参数省略,求和区域就相当于D4:D22,公式的作用等同于

=SUMIF(D4:D22,">30",D4:D22)

8.汇总数量在30至40的数量总和

=SUMIF(D4:D22,">=30")-SUMIF(D4:D22,">40")

[30,无穷大)跟(40,无穷大)的交集是(40,无穷大),[30,无穷大)减去交集(40,无穷大)刚好是[30,40]这个区间,所以>=30的总和减去>40的总和就是30至40的总和。

有的人喜欢缩减字符,而用下面的公式,虽然字符有所减少,但理解上就变得更费劲。

=SUM(SUMIF(D4:D22,{">=30",">40"})*{1,-1})

公式:*{1,-1},其实就是让>=30的汇总显示本身,>40的显示负数,也就是前面减去后面。

网友:这个没有点数学基础真的不好理解,看来数学还是挺重要的。

卢子:很多东西都是相互借鉴的,学好数学有助于学好函数。

9.最后字符为河且总字符为3个的营业部的总金额

=SUMIF(A4:A22,"??河",F4:F22)

?代表1个字符,??河就是最后字符为河且是3个字符。

10.数字包含错误值,怎么避开错误值求和

=SUMIF(A:A,"<9E+307")

9E+307是9乘以10的307次方,相当于Excel最大的数字,任何数字都比它小。数据的排序依据为数字<文本<逻辑值<错误值,再大的数字都比不上错误值,所以可以避开错误值求和。

11.多个区域求型号等于A03的总数量。

=SUMIF(A2:G10,"A03",B2)

=SUMIF(A2:G10,"A03",B2:H10)

两个公式的效果是一致的,Sumif第3参数会自动扩展区域,但不建议简写,会导致运算速度变慢。

帮助说明:

sum_range 参数与 range 参数的大小和形状可以不同。求和的实际单元格通过以下方法确定:使用 sum_range 参数中左上角的单元格作为起始单元格,然后包括与 range 参数大小和形状相对应的单元格。但是,当 SUMIF 函数中的range和 sum_range 参数不包含相同的单元格个数时,工作表重新计算需要的时间可能比预期的长。

网友:原来简单不一定好,简单是以付出效率作为代价的。

卢子:在使用的过程中还是使用标准用法,而学习过程中多了解下其他用法也好。

Sumif跟Countif函数有点相似,只要理解一个,要了解另一个就变得简单。多条件求和Sumifs跟Countifs也比较常见,有兴趣的话可以了解下。

推荐:SUMIF、SUMIFS和SUMPRODUCT三大函数详解

上文:IF和SUM组合套到晕,不妨试试这个万能套路!

你还知道求和、计数有什么新案例?

作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)

(0)

相关推荐