【问题标题】:Summation formula needed需要求和公式
【发布时间】:2023-03-23 13:04:01
【问题描述】:

我需要帮助才能在 Google 表格中为以下各项创建公式:

x*(0.95^1+0.95^2+0.95^3+...+0.95^n)

其中 x 是一个常数,n 是一个正整数。公式必须适合一个单元格。

【问题讨论】:

  • 将系列简化为单一运算公式并使用它:)
  • 提示..它看起来是复利的计算。

标签: google-sheets google-sheets-formula


【解决方案1】:
=x*SERIESSUM(.95,1,1,{1,1,1,1,1})

虽然很可能有现成的统计或财务工作表函数,但您似乎对another answer 中提供的这个公式的结果感到满意。

您只需要生成数组 n 次,其中 n 是工作表上单元格中的值。

INDEX(ROW(1:4), , ){1, 2, 3, 4} 的结果作为真正的数组返回。

要将 {1, 2, 3, 4} 转换为 {1, 1, 1, 1},请在行号周围使用 SIGN 函数“包装器”。

=INDEX(SIGN(ROW(1:4)), , )              'returns {1, 1, 1, 1} as a true array

要改变数组的长度,请使用 INDIRECT 来构建 ROW 引用。在 C10 中使用 4,这将返回相同的结果。

=INDEX(SIGN(ROW(INDIRECT("1:"&C10))),,) 'returns {1, 1, 1, 1} as a true array
'proof
=SUM(INDEX(SIGN(ROW(INDIRECT("1:"&C10))),,)) 'returns 4

将其与公式的其余部分一起作为标准公式,并在数组模式下使用 INDEX。

=B10*SERIESSUM(0.95, 1, 1, INDEX(SIGN(ROW(INDIRECT("1:"&C10))),,))

如果您不想在其数组模式中使用 INDEX,您可以放弃它并添加一个 ARRAYFORMULA 包装器。

enter image description here

【讨论】:

  • 这是下一级公式。非常感谢!
【解决方案2】:

请尝试:

=x*SERIESSUM(.95,1,1,{1,1,1,1,1})

其中数组有 n 1s(例如 5)。

【讨论】:

  • 谢谢!这似乎行得通。有没有一种方法可以创建一个包含 n 个 1 的数组,而无需在公式中输入它们?在那种情况下,这解决了我的问题。在我的特殊情况下,我需要从单元格中获取值 n 才能正常工作。
  • 是的,您可以创建一个包含 n 个任意数字的数组,如下所示: SEQUENCE(1, num_elements, value, 0) 所以,要获得 {1,1,1} 你的序列d 做 SEQUENCE(1,3,1,0)
猜你喜欢
  • 1970-01-01
  • 2017-07-29
  • 2013-01-29
  • 1970-01-01
  • 2020-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多