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

如何用Google Sheets ARRAYFORMULA按行生成并拼接数值序列

Google Sheets 逐行生成序列并拼接的ARRAYFORMULA解决方案

问题原因

你之前的公式无法正常工作,是因为SEQUENCE函数不支持数组作为参数,只会读取首行的B、C列数值,没办法逐行动态计算每个区间的序列。

可行解决方案

方案1:新版Sheets专用(支持LAMBDA函数)

在D3单元格输入以下公式,即可自动处理所有行,新增行也会自动触发计算:

=ARRAYFORMULA(IF(A3:A="",,MAP(A3:A,B3:B,C3:C,LAMBDA(item,min_val,max_val,TEXTJOIN(", ",TRUE,item&"_"&SEQUENCE(1,max_val-min_val+1,min_val,1))))))
  • 核心逻辑:用MAP遍历每行的物品名称、最小值、最大值,对每行单独调用SEQUENCE生成对应区间的数字序列,拼接成物品_数字格式后,用TEXTJOIN合并为单行字符串;IF函数用来跳过空行,避免无效计算。

方案2:兼容旧版Sheets(无需LAMBDA)

如果你的Sheets版本不支持LAMBDA系列函数,可使用以下公式:

=ARRAYFORMULA(IF(A3:A="",,TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(ROW(INDIRECT("1:"&MAX(C3:C-B3:B+1))))<=C3:C-B3:B+1,A3:A&"_"&(B3:B+ROW(INDIRECT("1:"&MAX(C3:C-B3:B+1)))-1),)),,9^9))))
  • 核心逻辑:先构建一个覆盖最大区间长度的数字序列,逐行判断每个数字是否在当前行的最小值到最大值范围内,生成对应的物品_数字字符串;再通过TRANSPOSE+QUERY组合,将每行的所有序列项合并为单个字符串,最后用TRIM清理多余空格。

效果验证

按照示例数据测试:

  • 当A列是Apple、B列7、C列9时,D列会生成 Apple_7, Apple_8, Apple_9
  • 当A列是Banana、B列3、C列5时,D列会生成 Banana_3, Banana_4, Banana_5

内容的提问来源于stack exchange,提问作者Ray Daapala

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 06:15:33