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

基于条件生成多行数据:按count值重复表格行

按count字段重复行生成新数据

问题说明

需要将表格中的每一行按照count列的数值重复对应次数,生成包含重复行的新表格。

输入表格

idnamecount
1Nishu4
2Shivam2
3Himanshu1

期望输出表格

idnamecount
1Nishu4
1Nishu4
1Nishu4
1Nishu4
2Shivam2
2Shivam2
3Himanshu1
3Himanshu1

解决方案

1. Excel/Google Sheets 实现

基础公式法

假设原始数据位于A2:C4(A1:C1为表头),在新区域的起始单元格(如E2)输入以下公式,横向填充至G列,再纵向拖动直到出现错误值,最后删除错误行:

=INDEX($A$2:$C$4, ROUNDUP(ROW(A1)/MAX($C$2:$C$4),0), COLUMN(A1))

简化公式(Excel 365/Google Sheets)

使用LET函数减少重复引用,一次性生成所有结果:

=LET(
    data, A2:C4,
    counts, INDEX(data,,3),
    total, SUM(counts),
    seq, SEQUENCE(total),
    rowNum, XMATCH(seq, SCAN(0, counts, LAMBDA(a,b,a+b)))+1,
    INDEX(data, rowNum, {1,2,3})
)

2. Python(Pandas)实现

利用Pandas的repeat方法快速处理:

import pandas as pd

# 构造原始数据
df = pd.DataFrame({
    'id': [1, 2, 3],
    'name': ['Nishu', 'Shivam', 'Himanshu'],
    'count': [4, 2, 1]
})

# 按count列重复行
result_df = df.loc[df.index.repeat(df['count'])]

# 重置索引(可选操作)
result_df = result_df.reset_index(drop=True)

# 输出结果
print(result_df)

3. SQL 实现

通过递归CTE实现行重复,适用于数据库中的数据:

WITH RECURSIVE repeated_rows AS (
    SELECT id, name, count, 1 AS repeat_num
    FROM your_table  -- 替换为实际表名
    UNION ALL
    SELECT id, name, count, repeat_num + 1
    FROM repeated_rows
    WHERE repeat_num < count
)
SELECT id, name, count
FROM repeated_rows
ORDER BY id;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 19:15:36