在列中也包含文本的列中每隔50行进行一次求和 – Excel

我有一个充满发票的工作簿,格式化为打印,我需要总计所有295发票的总计到期金额。 第一个总计到期在H22中,下一个H71(不包括H22)中的50个单元格。H列的其余部分包含组成总额到期的各个金额和各种文本。 喜欢这个:

Charges 10 20 30 Amount Due: $60.00 

如果总计构成总和的范围会更容易,那也是有效的。

每个范围是10行,H11:H20。 然后在H60:69的下方50

编辑:单元格H22,而不是H32

使用这个数组公式:

 =SUM(IF(MOD(ROW($H$1:INDEX($H:$H,MATCH(1E+99,$H:$H)))-1,50)=21,$H$1:INDEX($H:$H,MATCH(1E+99,$H:$H)))) 

作为一个数组公式,在退出编辑模式时,必须使用Ctrl-Shift-Enter来确认,而不是Enter。 如果正确完成,则Excel将在公式周围放置{}

你可以使用VBA。 创build一个新模块,并粘贴:

 Option Explicit Public Function sum_with_gaps(r As Range, gapSize As Integer, dataSize As Integer) As Double Dim ret As Double, i% ret = 0 i = 1 Do While i + dataSize - 1 <= r.Count ret = ret + WorksheetFunction.Sum(r.Range(r.Cells(i - 1, 1), r.Cells(i + dataSize - 1, 1))) i = i + dataSize + gapSize Loop sum_with_gaps = ret End Function 

testing数据:

 a 5.1 5.2 5.3 5.4 b b 6.1 6.2 6.3 6.4 c c 7.1 7.2 7.3 7.4 d =sum_with_gaps(A2:A17,2,4)