楼主 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 上传 |