在列中还包含文本的列中每隔50行汇总一次 - Excel

时间:2017-05-10 17:43:56

标签: excel worksheet-function

我有一张装满发票的工作簿,格式化打印,我需要总计所有295张发票的总到期金额。第一个总到期时间为H22,下一个数量低于H71中的50个单元格(不包括H22。)H列的其余部分包含构成总到期数和各种文本的单个金额。像这样:

Charges
10
20
30
Amount Due:
$60.00

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

每个范围是10行,H11:H20。那么在H60:69以下50以下。

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

2 个答案:

答案 0 :(得分:3)

使用此数组公式:

=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会将{}放在公式周围。

答案 1 :(得分:0)

您可以使用VBA。创建一个新模块,然后粘贴:

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

测试数据:

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)