ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > 函数与公式 > 如何隔行求和?

如何隔行求和?

作者:绿色风 分类: 时间:2022-08-17 浏览:78
楼主
xinghuiwen
Q:若有20行(只有一列),需间隔3行求和,如何实现?
A:假设A1到T1为数据(共有20行),在任意单无格中输入公式:
   =SUM(IF(MOD(ROW(A1:A20),3)=0,(A1:A20))),按CTRL+SHIFT+ENTER结束即可求出每隔三行的和。
     还有另一种方法是在单元格中输入公式=SUMPRODUCT((MOD(ROW(A1:A20),3)=0)*A1:A20)也可以求出每隔三行的和。
2楼
gouweicao78
公式可以简化:
1、=SUM(IF(MOD(ROW(1:20),3)=0,A1:A20))
2、=SUM(IF(MOD(ROW(1:20),3),,A1:A20))
3、=SUM((MOD(ROW(1:20),3)=0)*A1:A20)
都是数组公式。
3楼
hezhi220
有没有更简单的?
4楼
xinghuiwen
大同小异呀,呵呵!
5楼
五〇高手
楼上真是初生牛犊。老朽来个不同的吧!还请版主多多指点。

=SUM(SUMIF(OFFSET(A1,ROW($1:$7)*3-1,),"<>")) 数组公式三键结束。
6楼
gouweicao78
我写的是你公式的“简化”啊,比如:
1、(A1:A20)这外面的括号是多余的,省2个字符;
2、Row(A1:A20)与Row(1:20)结果是一样的,再省2个字符;
3、sum(if(mod=0,row)),也就是mod不等于0的时候返回False供Sum求和,那么用if(mod,,row)则是利用非零值在IF逻辑判断中相当于TRUE的原理,返回0(简化为逗号),又省1个字符。
经常有人写公式=IF(A1<>"",……,""),换个写法=IF(A1="","",……)则可省一个字符,运算量一样。
7楼
xinghuiwen
我能看明白,其实最喜欢这个公式=SUMPRODUCT((MOD(ROW(A1:A20),3)=0)*A1:A20)不太喜欢数组公式,如果扩大区域,数组公式改起来麻烦点。
8楼
gouweicao78
按三键习惯了,就不觉得麻烦了。
9楼
breezy
简化一下:
=SUM(SUM(OFFSET(A1,ROW($1:$7)*3-1,)))数组公式三键结束。
10楼
breezy
=skipsum(A1:A20,3)

Function skipsum(rng As Range, n As Integer)
    Dim i%, irow%, icol%, ittl%
    irow = rng.Rows.Count
    icol = rng.Column

    For i = n To irow Step n
        ittl = ittl + Cells(i, icol).Value
    Next i

    skipsum = ittl
End Function
11楼
gouweicao78
用2个SUM是因为OFFSET产生了三维引用,因此,可以用N去掉一个维度:
=SUM(N(OFFSET(A1,ROW(1:7)*3-1,)))
12楼
breezy
改进一下,可以进行多列隔行求和.

Function skipsum1(rng As Range, n As Integer)
    Dim i%, irow%, icol%, ittl%
    irow = rng.Rows.Count
    For i = n To irow Step n
        ittl = ittl + Application.Sum(Intersect(Rows(i & ":" & i), rng))
    Next i
    skipsum1 = ittl
End Function
隔行求和.rar
13楼
helingping16
呵呵,我都没想过这个方法哦?
14楼
曾杰2号
谢谢楼主分享!
15楼
羽翼蓝天
云里雾里 看不太懂
16楼
malhgz
学习了,尽管有点看不懂!呵呵
17楼
yncxxmj
能不能把公式进行说明一下。
18楼
Aimin001
这么多高手,看来我只是菜鸟,呵呵
19楼
guanxiaobing
学习了!很受用!
20楼
huo2007
都是高手啊,学习中。
21楼
xying
二楼的方法挺简单呀,我得试一试
22楼
ahui21
那些公式的方法真好,特别是“gouweicao78 ”的解答。
23楼
windsor42
````我是新手低调的路过,没看明白····
24楼
maoyanshi
=SUMPRODUCT((MOD(ROW(A1:A20),3)=0)*A1:A20)

我也喜欢这个公式
25楼
金妮妮
OH MY GOD,延伸出这么多的东东,太厉害了。
26楼
zgwei050
能搞明白各公式的含义就说明对if、mod、offset、row、sum、sumproduct、N等常用函数的使用、(省略)参数设置,以及数组操作有了较深的理解。
看俺公司财务人员,统计一些财务数据,对隔行求和(包括隔1、2、3行.......)还是一个单元格、一个单元格的相加!虽然俺都多次给他们讲了方法!遇到隔列求和,嘿嘿,完蛋!
27楼
zgwei050
现在定义的自定义函数,A1:A16(A1:B16)为单元格区域,而数字3代表2种含义:A3为起始行(是固定的,没有办法选取A1/A2为起始行),中间隔3-1=2行求和。
建议增加一个可选参数,来控制选定单元格区域隔行求和的起始行。
28楼
yuandianliu
好复杂
29楼
健康快乐123
高手啊学习了
30楼
有山有海
受用
31楼
wangxiasy
填厉害啊!数组公式更好用些!
32楼
luoyho
学习了,谢谢各位老师
33楼
小丸子滴春天
先选择“自动求和”求和一行,再按住ctrl选择其他行自动求和,方便又准确。
34楼
[CN]★中★和★
受用
35楼
那时毛驴
请问版主,我用sumif为什么得不出结果呢?

公式:=SUMIF(A1:A20,MOD(ROW(A1:A20),3)=0),望回复,谢谢
36楼
kevin_yjl
不懂
37楼
沐夏临秋
都不懂
38楼
第一段
都是高人,学习了
39楼
larkzh
这个公式好用,当其他行有文本的时候不会出错。
40楼
寒月悲茄
哎,看来我的路还很漫长!入门级别吧
41楼
yeminqiang
真是要顶

42楼
hustclm
学习草版的公式了,思路很重要,谢谢
43楼
fanglilian
在excel试验了下,出来的结果肿么不对呀,什么问题呢?a列为数值,c-f是不同的数组公式,怎么回事呢???捕获1.PNG
  上传

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap