You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel中用VSTACK整合起止区间生成的SEQUENCE序列?

无需VBA的Excel区间数值展开方案

方法1:TOCOL + SEQUENCE动态数组公式(Excel 365/2021及以上)

这是最简洁的方案,利用动态数组特性直接生成合并后的一维列表:

=TOCOL(SEQUENCE(B2:B4-A2:A4+1,,A2:A4),3)
  • 原理:SEQUENCE(B2:B4-A2:A4+1,,A2:A4)会针对每个区间生成独立的序列数组,形成一个多维数组;TOCOL(...,3)会自动忽略空值并将多维数组展平为一维,直接输出所有区间内的数值(含起止)。

方法2:TEXTJOIN + TEXTSPLIT组合(兼容支持TEXTSPLIT的版本)

如果你的Excel版本支持TEXTSPLIT,可以通过文本拼接拆分的方式实现:

=TEXTSPLIT(TEXTJOIN(",",TRUE,BYROW(A2:B4,LAMBDA(row_data,TEXTJOIN(",",TRUE,SEQUENCE(INDEX(row_data,2)-INDEX(row_data,1)+1,,INDEX(row_data,1)))))),",")
  • 原理:BYROW遍历每一行的起止区间,生成对应序列并转为逗号分隔文本;TEXTJOIN将所有行的文本合并为一个完整字符串;TEXTSPLIT按逗号拆分字符串,还原为数值列表。

方法3:传统数组公式(旧版Excel,无动态数组支持)

针对不支持动态数组的旧版Excel,使用数组公式(输入后需按Ctrl+Shift+Enter确认):

=INDEX($A$2:$A$4+ROW(INDIRECT("1:"&MAX($B$2:$B$4-$A$2:$A$4+1)))-1,SMALL(IF(ROW(INDIRECT("1:"&ROWS($A$2:$A$4)))<=ROUNDUP((ROW(INDIRECT("1:"&SUM($B$2:$B$4-$A$2:$A$4+1))))/MAX($B$2:$B$4-$A$2:$A$4+1),0),ROW(INDIRECT("1:"&ROWS($A$2:$A$4))),""),ROW(INDIRECT("1:"&SUM($B$2:$B$4-$A$2:$A$4+1))))-1+INDEX($A$2:$A$4,SMALL(IF(ROW(INDIRECT("1:"&ROWS($A$2:$A$4)))<=ROUNDUP((ROW(INDIRECT("1:"&SUM($B$2:$B$4-$A$2:$A$4+1))))/MAX($B$2:$B$4-$A$2:$A$4+1),0),ROW(INDIRECT("1:"&ROWS($A$2:$A$4))),""),ROW(INDIRECT("1:"&SUM($B$2:$B$4-$A$2:$A$4+1)))))
  • 原理:通过计算总序列长度,利用SMALL和INDEX逐个定位并提取每个区间内的数值,公式会自动填充到对应单元格区域。

内容的提问来源于stack exchange,提问作者Ashutosh Deshpande

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 00:09:22