返回目录:excel表格制作
具体是怎么隔列求和?
是只跳过了中间两列,还是有规律的每隔两列取抄一个数字?
如果是第一种情况袭,比如跳过了BC列,公式可以写为:
=sum(a1,d1:n1)
SUM的参数是比较灵活的,单元格、单元格区域可以混合着用,不用一个一个的列举。
如果是zd第二种,可以结合SUMPRODUCT和COLUMN函数来求和。
请把问题说清楚
公斤合计:
张数合计:
片数合计:
首先在某单元格输入 =ROUNDDOWN((COLUMN(NI1)-2)/6,0) 和 =ROUNDDOWN((COLUMN(NI1)-6)/6,0) 得到均需要循环61次数组进行累加
打开VBA,调出方法如下所示,在VBAProject->Sheet表格中找到数据所在区域,右键->插入->模块 得到一个窗口,输入
Sub t()
Dim i As Integer, ii As Integer, iii As Integer
ii = 3 '黄色
iii = 7 '绿色
[a2] = 0
[a3] = 0
For i = 1 To 61
[a2] = Cells(2, 1) + Cells(1, ii)
[a3] = Cells(3, 1) + Cells(1, iii)
ii = ii + 6
iii = iii + 6
Next
'单元格A2值对应黄色求和
'单元格A3值对应绿色求和
End Sub
复制粘贴后点击F5即可运行完毕,最后回到数据所在表格查看计算结果。e79fa5e98193e78988e69d83330
用函数,A2单元格 =C1 B2单元格 =INDIRECT("R"&ROW()&"C"&(COLUMN()-1),FALSE) + OFFSET($C1,0,(COLUMN()-1)*6,1,1),横向拖动B2单元格直至BI2。 BI2单元格值为黄色求和
同理,A3单元格 =G1 B3单元格 =INDIRECT("R"&ROW()&"C"&(COLUMN()-1),FALSE) + OFFSET($G1,0,(COLUMN()-1)*6,1,1),横向拖动B3单元格直至BI3。 BI3单元格值为绿色求和
最后说明下BI单元格的由来,在名称框内输入r1c61回车即可跳转到61列对应英文。
今天看了下别人的函数做法,发现自己做复杂了,更简单的是
A2 单元格 =SUMPRODUCT((MOD(COLUMN(A1:BL1),6)=3)*A1:BL1) A2即为黄色求和
A3 单元格 =SUMPRODUCT((MOD(COLUMN(A1:BL1),6)=1)*A1:BL1) - A1 A3即为绿色求和
或者
A2 单元格 {=SUM((MOD(COLUMN(A1:BL1),6)=3)*A1:BL1)} A2即为黄色求和
A3 单元格 {=SUM((MOD(COLUMN(A1:BL1),6)=1)*A1:BL1) - A1} (这里需框选 SUM((MOD(COLUMN(A1:BL1),6)=1)*A1:BL1) CTRL+SHIFT+ENTER,否则会报错) A3即为黄色求和
思路是采用数组函数进行判断,仅余数为需要时才逻辑值才为1,其余值时为0,相乘后余数为需要的值不变,余数为其余值则会为0,最后进行相加。
方法一,在录入新数据时插入新数据而不是在后面添加,公式会自动把你添加的部分涵盖进去。
方法二,把你的公式放在所有数据的左侧copy作为统计数据区域。公式计算范围把右侧所有该行单元格涵盖进去,如D1:XFD1,然后用条件求知和来计算
方法三用透视表来做,预留足够的列数,建立透视表,在以后更新数据时,刷新透视表的数据即可在透视表得到更新的求和数据
上面的方法不会增加求和公式的复杂度。 你也可以用counta来判断有多少数据列道数,然后用精确列数来建立求和公式,但感觉没什么好处,还容易出错。
如下式 求和从E列向右,=SUM(INDIRECT(ADDRESS(ROW($E3),COLUMN($E3))):INDIRECT(ADDRESS(ROW($E3),COUNTA($E3:XFD3)+COLUMN($E3))))
可以制动判断有无数据,但是不如简单用个求个公式=sum(E3:XFD3) 或者sumifs多条件求和