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

如何按COLOUR列分组合并ID列、汇总QTY列并去重?

问题

需要对多列数据做如下处理:

  • 按COLOUR列的重复值分组
  • 同组的ID拼接成逗号分隔的字符串
  • 汇总同组的QTY数值
  • COLOUR列去重

ID和COLOUR各有数百个唯一值,常规方案无法匹配需求,求适配方法。

示例数据

IDCOLOURQTY
A1BLUE1
B1GREEN2
A2BLUE1
A3BLUE1
B2GREEN1

预期结果

IDCOLOURQTY
A1, A2, A3BLUE3
B1, B2GREEN3

解决方案

1. Python Pandas(适合大数据量)

代码简洁高效,处理数百个唯一值毫无压力:

import pandas as pd

# 假设数据已存入DataFrame df
df = pd.DataFrame({
    'ID': ['A1', 'B1', 'A2', 'A3', 'B2'],
    'COLOUR': ['BLUE', 'GREEN', 'BLUE', 'BLUE', 'GREEN'],
    'QTY': [1, 2, 1, 1, 1]
})

# 分组聚合处理
result = df.groupby('COLOUR').agg(
    ID=('ID', lambda x: ', '.join(x)),
    QTY=('QTY', 'sum')
).reset_index()[['ID', 'COLOUR', 'QTY']]

print(result)

2. Excel(两种实现方式)

方法一:Power Query(推荐批量处理)

  1. 选中数据区域,点击「数据」→「从表格/区域」进入编辑器
  2. 点击「转换」→「分组依据」,分组列选COLOUR,新增两个聚合项:
    • 列名ID,操作选「所有行」;列名QTY,操作选「求和」、列选QTY
  3. 点击ID列的展开按钮,选择「提取值」,分隔符选「逗号+空格」
  4. 调整列顺序后,点击「关闭并上载」即可得到结果

方法二:公式组合(适合小批量)

  • 提取唯一颜色:在空白单元格输入=UNIQUE(B:B)
  • 汇总数量:对应单元格输入=SUMIF(B:B, D2, C:C)(D2为唯一颜色单元格)
  • 拼接ID:对应单元格输入=TEXTJOIN(", ", TRUE, IF(B:B=D2, A:A, "")),新版Excel直接回车,旧版按Ctrl+Shift+Enter

3. SQL(数据库场景)

不同数据库的字符串拼接函数略有差异,以下是主流实现:

MySQL/MariaDB

SELECT 
    GROUP_CONCAT(ID SEPARATOR ', ') AS ID,
    COLOUR,
    SUM(QTY) AS QTY
FROM your_table
GROUP BY COLOUR;

PostgreSQL/SQL Server

SELECT 
    STRING_AGG(ID, ', ') AS ID,
    COLOUR,
    SUM(QTY) AS QTY
FROM your_table
GROUP BY COLOUR;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 23:19:00