EXCEL必备工具箱--隔行(列)求和功能,非常简单方便地为当前单元格,辅助设置隔行(列)求和公式
EXCEL必备工具箱,下载地址:https://www.ahzll.top/HELP/PAGE/blog_5488e3a901000ayc.html
界面:
功能界面:
功能介绍:
在日常工作中经常需要设置每隔几个单元格的多个单元格之和,比如偶数行之和等等,设置隔行求和或隔列求和的公式比较复杂,本功能就是帮助你非常简单方便地为当前单元格,辅助设置隔行(列)求和公式。
举例:
在上图中需要计算J9,M9,P9,S9,V9这五个单元格的和,通常方法是设置公式:=J9+M9+P9+S9+V9
但是,如果不是求5个单元格的和,而是10个,甚至上百个单元格时,这种方法就非常痛苦了,设置起来容易出错不说,还可能能根本不让设置,因为excel不允许公式的字符串长度超过256个字符!
那么,我们就需要来分析规律,上图中是每3个单元格计算一次,第一个计算的单元格在这个计算区域内属于第2个,就可以设置公式:=SUMPRODUCT(($I9:$W9)*(MOD(COLUMN($I9:$W9)-8,3)=2))。
你可能会说这个公式太复杂,记不住,不要紧,使用本功能你只要知道3件事:
1、这个要进行计算的区域:I9:W9
2、每3个单元格计算一次
3、第一次进行计算的单元格,位于I9:W9的第2个:
点击“确定”后,就会为当前选定的单元格X9设置公式:=SUMPRODUCT(($I9:$W9)*(MOD(COLUMN($I9:$W9)-8,3)=2))
当然,你可能担心,这个公式不太直观,会不会设置错了呢?为了消除你的疑虑,点击“确定”后会在为单元格X9设置公式的同时,选中那些计算的单元格,并在状态栏里显示求和结果:
函数介绍:
这个功能说到底,是帮你你设置公式,如果你会完全领会这个公式的含义,你就可以自己直接设置,不需要用这个功能来辅助设置啦。
(1)隔列求和:=SUMPRODUCT((区域)*(MOD(COLUMN(区域)-(区域中第一个单元格所在列-1),频率)=位置)),比如本例:=SUMPRODUCT(($I9:$W9)*(MOD(COLUMN($I9:$W9)-8,3)=2))
(2)隔行求和:=SUMPRODUCT((区域)*(MOD(ROW(区域)-(区域中第一个单元格所在行-1),频率)=位置)),比如:=SUMPRODUCT((I$9:I$23)*(MOD(ROW(I$9:I$23)-8,3)=2))
可以看出,这两个公式,区别就是一个是COLUMN,一个是ROW。
下面以对本例中的各式:SUMPRODUCT(($I9:$W9)*(MOD(COLUMN($I9:$W9)-8,3)=2))进行详细说明:
1、COLUMN函数,是指出当前单元格的列数,COLUMN(I9),就是I9单元格所在列,COLUMN(I9)=9,
COLUMN(I9)-8=1
(这里之所以减去8,是为了得出这个数据在这个区域中的位置,I9位于第1个,J9位于第2个,K9位于第3个,以此类推...)
2、MOD函数,求余数,1除以3,商为0,余数为1,MOD(1,3)=1,即MOD(COLUMN(I9)-8,3)=1
3、逻辑运算=
从上面说明知道,MOD(COLUMN(I9)-8,3)=1,那么MOD(COLUMN(I9)-8,3)=2这个逻辑运算的结果呢,1当然不等于2
,所以这个运算结果为false,在公式运算中,false以0来表示,所以MOD(COLUMN(I9)-8,3)=2 的值等于0。
4、SUMPRODUCT函数,是内置数组运算的函数,这个函数比较强大,这里只介绍与本文相关的用法,就是括号内的数据相加:
SUMPRODUCT(I9*MOD(COLUMN(I9)-8,3)=2)
=SUMPRODUCT(I9*0)
因为I9=1,所以1*0=0,因此SUMPRODUCT(I9*0)=0
刚才说了,SUMPRODUCT是内置数组运算的,在I9:W9这个区域会这样计算:
=(I9)*(MOD(COLUMN(I9)-8,3)=2))
+(J9)*(MOD(COLUMN(J9)-8,3)=2))
+(K9)*(MOD(COLUMN(K9)-8,3)=2))
.....
+(W9)*(MOD(COLUMN(W9)-8,3)=2))
(1)第1个计算I9 ,结果为I9*0;
(2)第2个计算J9,J9在区域内是第2个,2除3余2,2=2的结果为true,在公式中true=1,因此(J9)*(MOD(COLUMN(J9)-8,3)=2))=J9*1
(3)第3个计算k9,k9在区域内是第3个,3除3余0,0=2的结果为false,在公式中false=0,因此(K9)*(MOD(COLUMN(K9)-8,3)=2))= =k9*0
....
所以SUMPRODUCT(($I9:$W9)*(MOD(COLUMN($I9:$W9)-8,3)=2))
实际是上相当于这样的求和公式:
= I9*0+J9*1+K9*0+L9*0+M9*1+N9*0+O9*0+P9*1+Q9*0+R9*0+S9*1+T9*0+U9*0+V9*1+W9*0
= J9+M9+P9+S9+V9
是不是就是在I9:W9的区域中,每三个单元格计算一次,从第2个开始?
隔列求和动画演示:
(每隔1列求和)