从单元格中减去金额,直到达到0多重提醒金额

时间:2016-04-28 18:34:22

标签: excel excel-vba loops excel-formula vba

下面的公式减去一个单元格,直到达到零,然后移动到下一个单元格。减法基于值“B”。每次公式遇到值“B”时,都会执行此操作。

问题:我一直在尝试将其推进到公式中,因为每次发现“B”时单元格都是零,这些数量是相邻价格的倍数。 你能不能给我一个这样做的公式?

示例:当遇到第一个B时,100 x 10的全部值将成倍增加,提醒50将乘以15,即下一个A的50 x 15价格。这些值将总结。

enter image description here

  

= MAX(SUMIF($ A $ 2:A2," A",$ B $ 2:B2)-SUMIF($ A $ 2:$ A $ 10" B",$ B $ 2:$ B $ 10),0)

50的提醒来自B 150 - A 100之间的差异,其中50仍然被吸收。

进一步计算解释:

enter image description here

enter image description here

道歉意味着计算 6000

1 个答案:

答案 0 :(得分:0)

你的问题仍然很不清楚。什么"我的公式在下面减去一个单元格直到达到零为止#34;意思?另外,正如OldUgly所指出的那样,你似乎忽略了第二个A.由于我们无法相互理解,请查看下面的代码并尝试自己重写以满足您的需求。它假定数据位于名为" Data"的工作表中,并且有一个按钮(Button1)来运行代码。

Dim lLastRow As Long
Dim i As Integer
Dim QtyNumberA, QtyNumberB, QtyNumberRem As Integer

Sub Button1_Click()
lLastRow = Worksheets("Data").Cells(2, 1).End(xlDown).Row 'Rows with data, starting 2nd row (titles in the first)
QtyNumberA = 0 'Variable for storing quantities of A
QtyNumberB = 0 'Variable for storing quantities of B
QtyNumberRem = 0 'Variable for storing quantities remaining

For i = 2 To lLastRow 'scan all rows with data
    If (Worksheets("Data").Cells(i, 1).Value = "A") Then
        QtyNumberA = QtyNumberA + Worksheets("Data").Cells(i, 2).Value
    ElseIf (Worksheets("Data").Cells(i, 1).Value = "B") Then
        QtyNumberB = QtyNumberB + Worksheets("Data").Cells(i, 2).Value
        QtyNumberRem = QtyNumberA - QtyNumberB
        Worksheets("Data").Cells(i, 6) = QtyNumberRem
    End If
Next
End Sub