在不向行/列添加值的情况下计算 SUM?
Posted
技术标签:
【中文标题】在不向行/列添加值的情况下计算 SUM?【英文标题】:Calculate SUM without Adding Values to Rows/Columns? 【发布时间】: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 操作的情况下“召唤”一些(数组)大数字,那就太好了。
【问题讨论】:
【参考方案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
【讨论】:
以上是关于在不向行/列添加值的情况下计算 SUM?的主要内容,如果未能解决你的问题,请参考以下文章
Ruby Rspec:在不向源添加访问器的情况下测试实例变量