合并行中重复ID值并拼接对应Service列内容
合并重复ID并拼接对应Service列的实现方案
以下是几种常用工具的实现方法,按需选择:
Excel 实现
方法1:数组公式(TEXTJOIN+IF)
假设数据在A2:B10区域,ID列在A列,Service列在B列:
- 在空白单元格(如C2)输入公式:
=TEXTJOIN(", ", TRUE, IF($A$2:$A$10=A2, $B$2:$B$10, "")) - 按下
Ctrl+Shift+Enter触发数组公式,下拉填充至所有行 - 选中A、C列,删除重复的ID行即可
方法2:Power Query(更高效)
- 选中数据区域,点击「数据」选项卡 → 「从表格/区域」导入Power Query编辑器
- 在编辑器中点击「转换」选项卡 → 「分组依据」
- 分组列选择
ID,新列名设为Combined_Services,操作选择「合并列」,分隔符选你需要的(如逗号+空格) - 点击确定后,关闭并上载数据到Excel表格
SQL 实现
根据你使用的数据库选择对应语句:
- MySQL/MariaDB:
SELECT ID, GROUP_CONCAT(Service SEPARATOR ', ') AS Combined_Services FROM your_table GROUP BY ID; - SQL Server(2017+):
SELECT ID, STRING_AGG(Service, ', ') AS Combined_Services FROM your_table GROUP BY ID; - Oracle(11gR2+):
SELECT ID, LISTAGG(Service, ', ') WITHIN GROUP (ORDER BY Service) AS Combined_Services FROM your_table GROUP BY ID;
Python Pandas 实现
适用于处理大规模数据:
import pandas as pd # 读取数据(根据文件类型选择read_csv或read_excel) df = pd.read_excel('your_data_file.xlsx') # 按ID分组,拼接Service列 merged_df = df.groupby('ID')['Service'].agg(', '.join).reset_index() # 输出或保存结果 print(merged_df) merged_df.to_excel('merged_result.xlsx', index=False)
内容的提问来源于stack exchange,提问作者ZRaptor
相关产品推荐
相关产品推荐

