excel函数技巧:reduce+sum实现计数-趣帮office教程网

如图,D至M列为源数据,想得到每个数字除以4的余数并按归类将个数汇到O-R列。公式如下:

=REDUCE(0,FILTER($D2:$M2,$D2:$M2<>""),LAMBDA(x,y,SUM(VSTACK(x,IF(MOD(y,4)=COLUMN(A1)-1,1,0)))))

公式思路:

reduce函数实现每列数据分别与4相除并得到余数,根据O-R列的要求将不同的余数进行判断,如果与列的要求相同就判定为1,其余判定为0,再将累积的x值,也就是所有的1和0相加就得到个数。

filter的目标是实现将空白单元格去除,不然在运算过程中会以0的数值参与运算,汇总出的数量就会是错误的。

本例不用reduce也能解决,但计数方式就得用count这样的函数啦,此例就是说明reduce可以代替函数,也可以说是创造出新的函数。为什么要这么做呢?我们知道在编程语言中将代码以函数的形式写出来是很正常的手法,所以excel函数的学习也不能停留在仅仅使用已有函数上,要会创造出自己的函数。