对列中每 50 行求和,其中该列还包含文本 - Excel



我有一个装满发票的工作簿,格式化为打印,我需要对所有 295 张发票的应付总额求和。第一个总到期在 H22 中,下一个数量在 H71 中低于 50 个单元格(不包括 H22(。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。创建一个新模块,然后粘贴:

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)

最新更新