我是excel的总菜鸟所以我在这里寻找答案。
最好在一个例子中解释这一点。
我的行数从1-1000000开始。我想把它们总结到1000.
你是怎么做到的?
答案 0 :(得分:0)
使用
=if(sum(A1:A1000000)>1000,1000,sum(A1:A1000000))
答案 1 :(得分:0)
对于行#1中的值,在 A2 中输入:
= A1
在 B2 中输入:
=IF(A2="","",IF((A2+B1>1000),"",A2+B1))
并复制。最后在 A3 中输入:
=LOOKUP(88^99,2:2)
例如:
修改#1:强>
要避免“Helper”列,我会使用以下 UDF:
Public Function SumUntil(rIn As Range, Limit As Double) As Double
Dim r As Range, t As Double
SumUntil = 0
For Each r In rIn
t = SumUntil
SumUntil = SumUntil + r.Value
If SumUntil > Limit Then
SumUntil = t
Exit Function
End If
Next r
End Function
用户定义函数(UDF)非常易于安装和使用:
如果保存工作簿,UDF将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx
删除UDF:
从Excel使用UDF:
<强> = SumUntil(1:1,1000)强>
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
有关UDF的详细信息,请参阅:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
必须启用宏才能使其生效!
修改#2:强>
要计算总和的值的数量,我会使用不同的 UDF :
Public Function CountUntil(rIn As Range, Limit As Double) As Long
Dim r As Range, t As Double, i As Long
Dim SumUntil As Double
SumUntil = 0
i = 0
For Each r In rIn
i = i + 1
t = SumUntil
SumUntil = SumUntil + r.Value
If SumUntil > Limit Then
CountUntil = i - 1
Exit Function
End If
Next r
End Function