You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Pivot Table中处理多值字段并生成统计透视表

如何在Pivot Table中处理多值字段并生成统计透视表

嘿,我明白你的需求啦——就是要把那种带分号分隔多值的Workstream字段,转换成按Client统计每个Workstream出现次数的透视表对吧?我给你整理了两种常用的解决方法,不管是用Excel可视化操作还是代码批量处理都能搞定~

首先先明确你的原始数据和目标结果:

原始数据

ClientWorkstreamProject
Alphaa; b; cA
Betaa; d; eB
Gammab; c; eC
AlphadD
Betaa; c; eE

目标透视表(补充完整缺失值)

Clientabcde
Alpha11110
Beta20112
Gamma01101

方法一:用Excel可视化操作处理

核心是先把Workstream的多值拆成单独的行,再做透视统计:

  • 第一步:用Power Query拆分多行(比手动分列高效太多)
    1. 选中你的整个数据区域,点击顶部菜单栏的「数据」>「从表格/区域」,确认数据有表头后导入Power Query编辑器
    2. 在编辑器里选中「Workstream」列,点击「转换」>「拆分列」>「按分隔符」,选择分号作为分隔符,然后拆分方式选「拆分为行」——这一步会把每个分号分隔的值单独拆成一行,比如Alpha会变成4行(对应a、b、c、d)
    3. 点击「关闭并上载」,把拆分后的数据导出到新的工作表
  • 第二步:制作透视表
    1. 选中拆分后的表格,点击「插入」>「透视表」,选择合适的放置位置
    2. 在透视表字段面板里:
      • 把「Client」拖到「行」区域
      • 把拆分后的「Workstream」拖到「列」区域
      • 再把「Workstream」拖到「值」区域,然后点击值字段的下拉菜单,选择「值字段设置」,把汇总方式改成「计数」
    3. 最后把透视表里的空白单元格替换成0,就完美得到你要的结果啦

方法二:用Python Pandas代码处理

如果习惯用代码批量处理,pandas可以一键搞定:

import pandas as pd

# 构造原始数据(实际使用时可通过pd.read_csv/pd.read_excel读取本地文件)
df = pd.DataFrame({
    'Client': ['Alpha', 'Beta', 'Gamma', 'Alpha', 'Beta'],
    'Workstream': ['a; b; c', 'a; d; e', 'b; c; e', 'd', 'a; c; e'],
    'Project': ['A', 'B', 'C', 'D', 'E']
})

# 拆分Workstream字段为多行,注意分号后有空格,所以分隔符用'; '
df_split = df.assign(Workstream=df['Workstream'].str.split('; ')).explode('Workstream')

# 生成透视表,按Client分组、Workstream列分组统计数量,空值填充为0
pivot_result = pd.pivot_table(df_split, index='Client', columns='Workstream', aggfunc='size', fill_value=0)

# 打印结果
print(pivot_result)

运行这段代码后,输出的结果就是你想要的透视表格式,直接导出成Excel也完全没问题~

备注:内容来源于stack exchange,提问作者D. Antony

火山引擎 最新活动