如何生成1,1,2,1,2,3…序列?求Google Sheets可用公式
在Google Sheets中生成1,1,2,1,2,3,1,2,3,4…序列的公式
直接可用的公式
在A1单元格输入以下公式,下拉填充即可生成目标序列:
=LET(k, ROUNDUP((SQRT(8*ROW()+1)-1)/2), ROW() - (k-1)*k/2)
公式原理
定位分组序号k:
目标序列按[1], [1,2], [1,2,3], [1,2,3,4]…的规律分组,每组长度依次递增1。通过ROUNDUP((SQRT(8*ROW()+1)-1)/2)计算当前行所在的分组k——这是从等差数列求和公式推导而来:前k-1组的总元素数为(k-1)*k/2,前k组总元素数为k*(k+1)/2,解方程k*(k+1)/2 ≥ 当前行号得到k的计算式。计算组内数值:
用当前行号减去前k-1组的总元素数,得到当前元素在组内的位置,也就是序列对应的数值。
兼容旧版的无LET公式
如果你的Google Sheets版本不支持LET函数,使用以下嵌套公式:
=ROW() - (ROUNDUP((SQRT(8*ROW()+1)-1)/2)-1)*ROUNDUP((SQRT(8*ROW()+1)-1)/2)/2
验证示例
| 行号 | 结果 |
|---|---|
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
| 4 | 1 |
| 5 | 2 |
| 6 | 3 |
| 7 | 1 |
| 8 | 2 |
| 9 | 3 |
| 10 | 4 |
内容的提问来源于stack exchange,提问作者Khizar Caliphate
相关产品推荐
相关产品推荐

