表格学院 赵建军
今天在学员群给大家分享了一个实际工作中经常遇到的难题,就是数据表中有错误值,这种情况下的快速的计算求和。
虽然题目中的数据条目设计的很少,但是我们实际工作中确实经常成千上万条数据的,我们如何去解决这样的问题呢??
有的同学说:我们可以从源头遏制的的出现,直接用iferror函数对错误值进行0赋值就好了,这真的是很好的一种习惯,非常可取;可是实际工作中很多时候我们自己不是直接的数提供者,我们拿到的数据就是包含这些错误值怎么办呢?
今天我们就把采集来的8套解决方案,一一分享给大家:
1、 筛选剔除,sum求和;
这个操作就是找到每一个错误数据然后剔除,再之后sum求和即可,求和公式=sum(J4:J13);
上面的方法总的感觉还是有点儿麻烦,因为有可能错误值是没有办法找到的或者删除干净的,所以就有了第2种到第10种方法了,大招马上就来了,准备接招吧!
2、 大招1:victor: =SUMIF(J4:J13\"<9e307\")
很多人看到这样的是函数可能有点儿懵,'9e307'是个什么鬼?敲黑板了,知识点:9e307是一个极大值,可以理解为一个大的没边儿的数据,用这个判断错误值,所以公式种'<9e307'就相当于是判断错误了。再深也别问了,到此为止,记住知识点哈
3、 大招2:victor:=AGGREGATE(9,6,J4:J13)
这个公式基本上小伙伴们真的很少见到过,用过的应该就更少了,今天就在这里简单为大家介绍一下:
这函数是一个大神级函数,多参数组合的函数,有一夫当关万夫莫开之勇。
返回列表或数据库中的合计。 AGGREGATE 函数可将不同的聚合函数应用于列表或数据库,并提供忽略隐藏行和错误值的选项。
具体公式:AGGREGATE(function_num, options, ref1, [ref2], …)
A、 第一个参数function_num是选择什么计算函数类型,可选项有19个大类分别用1—19表示,这里面我们就重点介绍几个:
1 平均值average
2 计数count;
3 字符计数COUNTA;
4 最小值min;
5 最大值max;
6 乘法product;
9 求和sum;
其余的可以去探索哟;
B、 第二个参数option,必须是一个数值,要明确剔除什么样的数值,对应关系如下:
0 或省略 忽略嵌套 SUBTOTAL 和 AGGREGATE 函数
1 忽略隐藏行、嵌套 SUBTOTAL 和 AGGREGATE 函数
2 忽略错误值、嵌套 SUBTOTAL 和 AGGREGATE 函数
3 忽略隐藏行、错误值、嵌套 SUBTOTAL 和 AGGREGATE 函数
4 忽略空值
5 忽略隐藏行
6 忽略错误值
7 忽略隐藏行和错误值
本题目种用到的就是9和6,忽略错误值求和,这个大神级函数,希望你能够get到哟!
附:aggregate函数帮助链接
上面所介绍的两种方法是用基本函数就可以完成的方法,下面几种方法我们引入数组函数的概念来解决了;
大招3:victor&板栗子:=SUM(IFERROR(J4:J13,0))
这个函数比较容易理解,是运用了iferror函数,对单元格中的数据进行判断是否为错误值,然后再求和,但是这个函数如果单独回车的话无法得出正确值,必须在输入公式之后,用CTRL+shift+enter,才能有效果,公式显示为:{=SUM(IFERROR(J3:J14,0))}
大招4:读者:=SUMIF(J4:J13,\">0\")
这个函数用的也很巧妙的,使用的是判断大于0,但该函数有写局限性,当表格中的数据小于0的时候可能会有问题,不过已经算很好的答案了,因为大不了再写一个小于0即可哈^-^
大招5:爱的海洋:=SUMIF(J4:J13,\"<9E+307\",J4:J13)
同样是数组公式,和上面公司类似的解读;
大招6: 丽丽 :=SUM(IF(ISERROR(J4:J13),0,J4:J13))
同样是数组公式,用到了if函数和iserror函数,这样也起到了一个完美的判断效果;
大招7: 丽丽 :=SUM(IF(ISNUMBER(J4:J13),J4:J13,0))
这个组合函数的技巧很棒呢,直接判断是否是数值,适用性非常好,值得推荐;
大招8:徐老师:=SUM(IF(ISNA(C4:C9),0,C4:C9))
看着这个函数很简单哎,这里又是一个新的函数,isna判断c4:c9单元格中的数据是否为非法值,非法则为0,所以这个也的。
这个问题本来就是开放性的问题,大家的说法都是很好的,主要是能够通过所学到的知识综合运用就能够解决日常工作中的问题,这里给大家分享了8中解决方案,您可以根据自己的实际情况来使用,时间精力好的话可以全部记住他们。
简单汇总一下:
1、 aggregate,大神级函数,
2、 sumif,条件求和函数,外搭一个sumifs函数也是ok的哟
3、 isna,判断非法值函数,
4、 isnumber,判断是否是数值函数
5、 iserror,判断是否是错误
6、 iferror,含义同上
7、 ……