示例数据:
Column A Column B
63843
60208
57606
130717 1
190407
186980 1
167839
180043
174384 1
170289 1
107142
87628
41637
48807 1
57602
51537
A列是浓度,B列是标记。
我想将一个标记后的浓度与下一个标记相加到一个新列(C列),“1”以外的浓度是一个总和的最后一个元素。 例如:sum(63843:130717),sum(190407:186980),sum(167839:174384)等。
如果标记相互粘连,如174384与170289之间,则总和为170289.
我希望我能清楚地表达出来。我知道我应该在这部分写一些代码,但我完全不知道。我想我应该使用类似的东西:
范围(“C1:C”& lastrow).Formula =“= IF(B1 = 1,TEXT(SUM(...........)”,“......” ............. “”), “”, “”)“
非常感谢你。
答案 0 :(得分:1)
VBA解决方案:
编辑:意识到我在我的例子中错过了1,所以它与你的不匹配,但你得到了我想的主旨。
Option Explicit
Sub SumBetweenMarks()
Dim sht As Worksheet, lastrow As Long, myvalue As Long, i as long
Set sht = ActiveSheet
lastrow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
myvalue = 0
For i = 1 To lastrow
If Range("B" & i).Value <> 1 Then
myvalue = myvalue + Range("A" & i).Value
Else
myvalue = myvalue + Range("A" & i).Value
Range("C" & i).Value = myvalue
myvalue = 0
End If
Next i
End Sub
答案 1 :(得分:1)