Office 365 Excel动态生成序列并VSTACK的最优解法问询
动态生成多序列并垂直堆叠的Office 365 Excel简洁解法
针对基于from_和to_列生成序列并垂直堆叠的需求,无需逐个调用SEQUENCE再嵌套VSTACK,可以用以下原生函数组合实现:
=TOCOL(BYROW(A2:B7,LAMBDA(row,SEQUENCE(INDEX(row,2)-INDEX(row,1)+1)+INDEX(row,1)-1)),2)
公式说明
BYROW(A2:B7, LAMBDA(row, ...)):遍历指定的from_(A列)和to_(B列)数据行,对每行执行序列生成逻辑SEQUENCE(INDEX(row,2)-INDEX(row,1)+1)+INDEX(row,1)-1:完全匹配你指定的序列生成规则,INDEX(row,1)取当前行起始值,INDEX(row,2)取结束值TOCOL(...,2):将BYROW返回的多个序列数组扁平化,垂直合并为单一列;参数2用于忽略空行或无效行产生的错误值
示例适配
如果你的数据是:
| from_ | to_ |
|---|---|
| 32 | 32 |
| 46 | 46 |
| 95 | 95 |
| 45 | 45 |
| 48 | 57 |
| 65 | 90 |
将公式中的A2:B7替换为你的实际数据区域,即可自动生成包含32、46、95、45,以及48-57、65-90所有值的垂直堆叠列。
优势
- 完全依赖Office 365原生动态数组函数,无需辅助列、VBA或第三方插件
- 数据区域变化时公式自动适配,无需手动修改序列生成逻辑
内容的提问来源于stack exchange,提问作者JB-007
相关产品推荐
相关产品推荐

