excel 求和到指定的数字
excel sum till a specific number
我完全是 excel 的菜鸟,所以我在这里寻找答案。
最好举例说明。
我有从 1 到 1000000 的连续数字。我想把它们加起来直到 1000。
你是怎么做到的?
使用
=if(sum(A1:A1000000)>1000,1000,sum(A1:A1000000))
使用第 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) 非常易于安装和使用:
- ALT-F11 调出 VBE window
- ALT-I
ALT-M 打开一个新模块
- 粘贴内容并关闭 VBE window
如果您保存工作簿,UDF 将随之保存。
如果您使用的 Excel 版本晚于 2003,则必须保存
文件为 .xlsm 而不是 .xlsx
删除 UDF:
- 如上所述调出 VBE window
- 清除代码
- 关闭 VBE window
要使用来自 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
我完全是 excel 的菜鸟,所以我在这里寻找答案。
最好举例说明。
我有从 1 到 1000000 的连续数字。我想把它们加起来直到 1000。
你是怎么做到的?
使用
=if(sum(A1:A1000000)>1000,1000,sum(A1:A1000000))
使用第 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) 非常易于安装和使用:
- ALT-F11 调出 VBE window
- ALT-I ALT-M 打开一个新模块
- 粘贴内容并关闭 VBE window
如果您保存工作簿,UDF 将随之保存。 如果您使用的 Excel 版本晚于 2003,则必须保存 文件为 .xlsm 而不是 .xlsx
删除 UDF:
- 如上所述调出 VBE window
- 清除代码
- 关闭 VBE window
要使用来自 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