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
相关产品推荐
相关产品推荐

