ArrayFormula 中的序列创建累积和

问题描述 投票:0回答:1

更新:我认为这不能用 SCAN 来完成 在下面的示例中,我将介绍仅添加行号(1+2+3...)的问题。在我原来的公式中,我使用当前行号来支持我的基础(x^1 + x^2 + x^3...)。 X 将是一个常数。假设 x = 2,那么下面的公式将变为:

=SUM(序列(2^ROW()))

=数组公式(SUM(序列(2^ROW(A1:A5))))

链接:https://docs.google.com/spreadsheets/d/1spA9Y7ViVvQr7JSWretNcC97w1ozdZRqOKEnvBQIom4/edit?usp=sharing

嗨,我想知道如何将以下公式转换为数组公式:

=SUM(序列(行()))

目标:

  • 没有辅助栏
  • 数组公式
  • 无脚本

如果拖动超过 5 行,则会创建累积和:

1 3 6 10 15

(参见附加链接中的B1:B5)

不幸的是,这个解决方案不起作用:

=数组公式(SUM(序列(行(A1:A5))))

为什么?序列需要整数作为第一个参数,并且 ROW(A1:A5) 如果放置在外部 ARRAYFORMULA 中,则表现为数组。序列比将其视为:

=数组公式(SUM(序列(行(A1))))

...结果只有一个单元格填充了数字 5 (SUM(1,1,1,1,1))

(参见附加链接中的A1)

我基本上需要保留外部 ARRAYFORMULA,同时“取消排列” ROW() 公式。 有什么想法吗?

这只是我为了在此处发布而创建的公式的简化版本。

我想要将其转换为数组公式的原始公式:

=如果( 和( ROW() - 1 <= ROUNDDOWN($Q$4 * 12, 0), $C$1 = TRUE ), LAMBDA( var, IF( $P$17 = "Ano", (1 - 0.15) * var + 0.15 * ((ROW() - 1) * ($Q$10 + $Q$28 + $Q$29) + ROUNDDOWN((ROW() - 1) / 12, 0) * $P$30), var ) )( ($Q$10 + $Q$28 + $Q$29) * SUMPRODUCT(($Q$7 / 100 + 1) ^ SEQUENCE(ROW() - 1, 1, 1, 1)) + ROUNDDOWN((ROW() - 1) / 12, 0) * $P$30 ), "" )

谢谢!

google-sheets google-sheets-formula spreadsheet
1个回答
0
投票

尝试:

=INDEX(SCAN(0; ROW(A1:A5); LAMBDA(aa; bb; aa+bb)))
© www.soinside.com 2019 - 2024. All rights reserved.