首页 > 解决方案 > Excel,显示根据各种条件分布的小计

问题描述

我正在尝试执行以下操作:

我有一列“卷”,看起来像图片上的列。

这个 VOLUME ROW 是灵活的,这意味着它可以根据情况变短或变大。它不固定,音量不断变化。

我想做小计:

  1. 最低金额为 800。应显示最低 800 的总和。它不能是 799,它必须等于或大于 800。在这种情况下,818 是正确的总和!它必须达到最低 800 和最高。2000,但不得超过 2000。

  2. 最大金额为 2000。由于 2000 是限制,因此不得超过 2000。因此要显示的正确总和是低于 2000 或等于 2000 的最接近的金额。在这种情况下,1940 是正确的总和!

  3. 在 2000 年之后或在这种情况下达到 1940 年,它开始从 cero 开始计数,直到它再次从最小值 800 到最大值。2000. 依此类推,直到卷栏结束

这是一张图片,可以更好地理解它应该是什么样子。

在此处输入图像描述

标签: excelvbaexcel-formula

解决方案


您可以遍历 A 列中的行,并保持运行总计。

然后,您可以根据您的限制检查运行总计,并根据需要写入值/更新运行总计:

Sub foo()
    Dim lRow As Long
    Dim i As Integer
    lRow = 2
    With ActiveSheet
        Do Until IsEmpty(.Cells(lRow, 1))
            If i < 800 Then
                i = i + .Cells(lRow, 1).Value
                If i >= 800 Then .Cells(lRow, 2).Value = i
            Else
                i = i + .Cells(lRow, 1).Value
                If i + .Cells(lRow + 1, 1).Value >= 2000 Then
                    .Cells(lRow, 2).Value = i
                    i = 0
                End If
            End If
            lRow = lRow + 1
        Loop
    End With
End Sub

推荐阅读