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

如何在Excel中根据序列数字重复对应单元格字符串组?

Excel实现按序列数字重复指定字符串组的方法

一、Excel 365/2021(动态数组版本)

直接利用动态数组函数实现一键生成结果,无需下拉填充。假设原数据在Sheet1的A1:B6(A列为重复字符串,B列为序列),在新工作表的A1单元格输入以下公式:

=REDUCE("", Sheet1!B1:B6, LAMBDA(acc, n, VSTACK(acc, INDEX(Sheet1!A1:A5, SEQUENCE(n,,6-n)))))

公式说明

  • SEQUENCE(n,,6-n):根据序列值n生成目标字符串的行号序列:
    • 当n=5时,生成1-5,对应取A1:A5全部5个字符串
    • 当n=4时,生成2-5,对应取A2:A5最后4个字符串
  • REDUCE+VSTACK:将每个序列对应的字符串组垂直堆叠,最终生成完整的结果数组

如果基础字符串的数量不固定(比如不是5个),可以把公式中的6-n替换为COUNTA(Sheet1!A1:A5)-n+1,实现动态适配。

二、旧版本Excel(无动态数组)

需要通过数组公式结合下拉填充实现,步骤如下:

  1. 计算序列累计和(辅助列可选):在Sheet1的C1单元格输入=B1,C2输入=C1+B2,依次下拉到C6,得到累计和{5,9,14,18,22,27}
  2. 在新工作表的A1单元格输入以下数组公式,按Ctrl+Shift+Enter确认,然后下拉到第27行(累计和最后一个值):
=INDEX(Sheet1!$A$1:$A$5, (5 - INDEX(Sheet1!$B$1:$B$6, MATCH(ROW(A1), Sheet1!$C$1:$C$6, 1)) + 1) + MOD(ROW(A1)-1, INDEX(Sheet1!$B$1:$B$6, MATCH(ROW(A1), Sheet1!$C$1:$C$6, 1))))

公式说明

  • MATCH(ROW(A1), Sheet1!$C$1:$C$6, 1):定位当前行属于第几个序列组
  • INDEX(Sheet1!$B$1:$B$6, ...):获取当前组的序列值n
  • (5 - n +1):计算当前组字符串的起始行号
  • MOD(ROW(A1)-1, n):计算当前行在组内的偏移位置,最终组合得到目标字符串的行号

三、规则验证

对应原数据的序列:

  • 序列值5 → 输出全部5个字符串(sc、sc_en、sc_eu、sc_dk、sc_se)
  • 序列值4 → 输出最后4个字符串(sc_en、sc_eu、sc_dk、sc_se)
    将所有序列对应的字符串组依次拼接,结果与期望输出完全匹配。

内容的提问来源于stack exchange,提问作者Adam G

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 11:13:11