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

如何按NAME和DATE转置表格并合并val值为单个变量?

按NAME和Date分组拼接val值的实现方法

原始数据表格

NAMEInstanceDateval
John1201912Y
John2201932dd
John3201923F
John1202043s
John1202223G
Mary.........

目标格式表格

NAMEDateVal
John201912Y, 32dd, 23F
John202043s
John202223G
Marie......

以下是几种常用工具的实现方式:


1. Excel/Google Sheets 实现

方法一:TEXTJOIN函数(Excel 2019+、Google Sheets通用)

在空白单元格输入公式(假设数据在A2:D7区域):

=TEXTJOIN(", ", TRUE, IF((A$2:A$7=A2)*(C$2:C$7=C2), D$2:D$7, ""))
  • Excel需按 Ctrl+Shift+Enter 触发数组计算;Google Sheets直接回车即可
  • 下拉填充公式后,删除重复的NAME+Date行

方法二:Power Query(Excel高效批量处理)

  1. 选中数据区域,点击「数据」→「从表格/区域」(勾选「我的表格有标题」)
  2. 在Power Query编辑器中,点击「转换」→「分组依据」
  3. 分组设置:添加NAME、Date两个分组列,新列名设为Val,操作选「聚合」→「合并列」,分隔符选逗号
  4. 点击「关闭并上载」,直接生成目标格式表格

2. Python Pandas 实现

import pandas as pd

# 读取原始数据(可替换为CSV、Excel或直接构造DataFrame)
df = pd.read_csv("your_data.csv")

# 分组拼接val值
result_df = df.groupby(['NAME', 'Date'])['val'].agg(', '.join).reset_index()

# 重命名列(按需调整)
result_df.columns = ['NAME', 'Date', 'Val']

# 输出或保存结果
print(result_df)
result_df.to_csv("result.csv", index=False)

3. SQL 实现

根据不同数据库使用对应字符串聚合函数:

MySQL/MariaDB

SELECT 
    NAME, 
    Date, 
    GROUP_CONCAT(val SEPARATOR ', ') AS Val
FROM your_table
GROUP BY NAME, Date;

PostgreSQL/SQL Server

SELECT 
    NAME, 
    Date, 
    STRING_AGG(val, ', ') AS Val
FROM your_table
GROUP BY NAME, Date;

Oracle

SELECT 
    NAME, 
    Date, 
    LISTAGG(val, ', ') WITHIN GROUP (ORDER BY Instance) AS Val
FROM your_table
GROUP BY NAME, Date;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 17:03:11