Google Sheets:将含SEQUENCE、ROW的公式转为ArrayFormula
Google Sheets:将含ROW()的SUM(SEQUENCE())转换为ArrayFormula
我需要把Google Sheets里的这个公式改成ArrayFormula形式:
=SUM(SEQUENCE(ROW()))
核心要求
- 不使用辅助列
- 必须用
ArrayFormula - 禁止使用脚本
手动拖拽这个公式到5行时,会生成如下累加结果:
1 3 6 10 15
但我试了下面的写法,完全不生效:
=ARRAYFORMULA(SUM(SEQUENCE(ROW(A1:A5))))
问题出在:SEQUENCE要求第一个参数是单个整数,但ROW(A1:A5)在ArrayFormula里是数组,导致SEQUENCE只处理ROW(A1),最后只在单个单元格返回结果5(本质是SUM(1,1,1,1,1))。
我需要保留外层的ArrayFormula,同时让ROW()的结果不再以数组形式传递给SEQUENCE,有没有可行的解决办法?
实际场景公式
上面是简化后的示例,我实际要转换的公式是:
=IF( AND( 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 ), "" )
补充说明
我觉得SCAN函数解决不了这个问题。实际场景是用当前行号作为指数计算求和(比如x^1 + x^2 + x^3…,x是常数),举个例子,当x=2时,公式是:
=SUM(SEQUENCE(2^ROW()))
对应的ArrayFormula尝试写法是:
=ARRAYFORMULA(SUM(SEQUENCE(2^ROW(A1:A5))))
内容的提问来源于stack exchange,提问作者Vojtěch Štefek
相关产品推荐
相关产品推荐

