Google Sheets:用数组公式实现滚动4季度求和及同比计算
Google Sheets 数组公式需求及命名函数问题
原始数据
| 季度 | 数值 |
|---|---|
| 1Q08 | 1 |
| 2Q08 | 2 |
| 3Q08 | 3 |
| 4Q08 | 4 |
| 1Q09 | 5 |
| 2Q09 | 6 |
| 3Q09 | 7 |
| 4Q09 | 8 |
| 1Q10 | 9 |
基础需求
在C1、D1单元格分别输入数组公式,实现:
- C列:生成B列的滚动4季度求和数组(前3行无结果,从第4行开始计算连续4个季度的数值和)
- D列:生成同比对比数组(对应上一年同季度的比值,例如D5=B5/B1、D6=B6/B2,无需手动下拉填充)
已尝试SCAN函数,但不确定是否适配当前需求;目前D列需手动下拉=B5/B1类公式,需改为数组公式批量生成。
横向滚动求和命名函数的嵌套问题
现有基于rockinfreakshow方案的横向滚动求和命名函数,单独使用可正常运行,但直接嵌套其他公式时返回整行空白,推测问题出在OFFSET函数,需替换OFFSET的实现方案。
现有横向滚动求和命名函数代码
=map(arr,lambda(Σ, if(or(Σ="",counta(index(arr,1,1):Σ)<4),, sum(offset(Σ,,-3,,4)) ) ))
已尝试的预处理方法(未解决)
曾用ARRAY_CONSTRAIN预处理数组,但未解决嵌套空白问题:
ARRAY_CONSTRAIN(array,1,COLUMNS(array))
可用的环比计算命名函数
已存在可正常使用的环比计算命名函数QOQ_DOWN,通过transpose(QOQ_DOWN(transpose(B1:B9)))可实现横向环比计算,函数代码如下:
=let( New_ar,{0;ARRAY_CONSTRAIN(arr,ROWS(arr)-1,1)}, map(arr,new_ar,LAMBDA(t,t_lag, iferror(t/t_lag-1) )) )
内容的提问来源于stack exchange,提问作者jason
相关产品推荐
相关产品推荐

