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

Google Sheets拆分转置需求:按Reps数重复列且仅保留首条记录

Google Sheets 按重复次数拆分+首值保留的实现方案

针对你需要的「一列按Reps数量重复,另一列仅保留每组第一条记录、其余留空」的需求,可以使用Google Sheets的数组公式实现,无需手动操作:

公式示例

假设你的原始数据位于A2:C区域(A列为需要重复的内容,B列为Reps重复次数,C列为仅保留首条的内容),将以下公式粘贴到空白单元格(如Sheet2的A1)即可:

=LET(
  data_range, A2:C,
  repeat_col, INDEX(data_range,,1),
  reps_col, INDEX(data_range,,2),
  first_val_col, INDEX(data_range,,3),
  -- 生成重复后的目标列
  expanded_repeat, FLATTEN(MAP(repeat_col, reps_col, LAMBDA(val, cnt, IF(SEQUENCE(cnt), val, "")))),
  -- 生成每组内的序号,用于判断是否为第一条记录
  group_seq, FLATTEN(MAP(reps_col, LAMBDA(cnt, SEQUENCE(cnt)))),
  -- 生成仅保留首值的列,非首行留空
  expanded_first_val, IF(group_seq = 1, FLATTEN(MAP(first_val_col, reps_col, LAMBDA(val, cnt, IF(SEQUENCE(cnt), val, "")))), ""),
  -- 合并两列得到最终结果
  HSTACK(expanded_repeat, expanded_first_val)
)

公式说明

  • LET:定义变量简化公式,避免重复引用数据范围
  • FLATTEN + MAP + SEQUENCE:根据Reps的次数,将目标列内容重复对应次数
  • group_seq:标记每组内的行序号(1到Reps数值),用于识别是否为每组的第一条记录
  • IF(group_seq = 1):仅在每组第一行显示对应首值,其余行留空
  • HSTACK:将处理后的两列合并为最终结果

注意事项

  • 若你的数据列位置不同,只需调整INDEX(data_range,,1)、INDEX(data_range,,2)、INDEX(data_range,,3)中的数字,对应到实际的列位置即可
  • 公式会自动适配数据范围的变化,新增行后无需手动更新

内容的提问来源于stack exchange,提问作者Rhenz Idol II San Pedro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 20:15:11