excel总和直到一个特定的数字

时间:2015-04-06 10:51:34

标签: excel sum

我是excel的总菜鸟所以我在这里寻找答案。

最好在一个例子中解释这一点。

我的行数从1-1000000开始。我想把它们总结到1000.

你是怎么做到的?

2 个答案:

答案 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)

例如:

enter image description here

修改#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)非常易于安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开了一个新模块
  3. 粘贴内容并关闭VBE窗口
  4. 如果保存工作簿,UDF将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx

    删除UDF:

    1. 按上述方式调出VBE窗口
    2. 清除代码
    3. 关闭VBE窗口
    4. 从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