【问题标题】:Calculate SUM without Adding Values to Rows/Columns?在不向行/列添加值的情况下计算 SUM?
【发布时间】:2014-07-12 12:27:04
【问题描述】:

在 Excel 中计算序列时,大多数教程都是从将序列值设置为特定范围的单元格开始的,比如

 A1=1, A2=2, A3=3,..., A10=10

为了得到1+2+...+10的值,执行

 A11=SUM(A1:A10)

但我不希望“首先在工作表单元格中生成序列”部分,因为最初我不知道 'n'(上面的 10),我想定义一个自定义函数,将 n 作为函数参数。

那么,有没有办法做这样的事情?

B1 = SUM([1:10])  // adding array of 'constants', not cell reference

编辑:如果我可以像调用 rand() 那样在没有任何单元格/ROW/COL 操作的情况下“召唤”一些(数组)大数字,那就太好了。

【问题讨论】:

    标签: excel sum sequence


    【解决方案1】:

    尝试使用下面的数组公式

    =SUM(ROW(A1:A10)) and then press CTRL+SHIFT+ENTER 
    

    Row(A1:A10) 将变为 {1,2,3,4,5,6,7,8,9,10}。

    【讨论】:

    • 但是如果 x(如 Ax 中的)是一个非常大的数字怎么办?
    • 会超过1048576吗?
    • 我只是不明白为什么在不进一步使用这些值时我应该填写许多单元格。不,它是关于计算大约 50 年的利息和总金额,每月存款。拖动 50*12=600 行似乎很痛苦。
    • 如果你给=Row(A1),它会给你答案“1”,即使A1是空的。它给出了行号,不管它们是否被填充。因此,如果您给出 ={SUM(ROW(A1:A10))},则无需填充任何行
    • =SUM(ROW(A1:A10)) 得出 1,而不是 1+...+10=55。也试过=SUM(ROW(A1):ROW(A10)),结果报错。
    【解决方案2】:

    用法: 如果要将单元格 A20 到 A50 相加

    sumjeff("A", 20,50)
    

    代码

    Function sumJeff(letter As String, nFrom As Integer, nTo As Integer) As Double
    
        Dim strAddress As String
        strAddress = letter & nFrom & ":" & letter & nTo
        sumJeff = Application.WorksheetFunction.Sum(Range(strAddress))
    
    End Function
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-22
      • 2013-05-17
      • 2017-05-16
      • 2014-05-26
      • 2018-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多