表格行列转置最优函数是什么?合规项目透视表生成方案咨询
实现法规-工作对应表行列转置的最优方案
一、Excel/Google Sheets 可视化操作(适合非编程场景)
步骤1:逆透视原始数据
把多列法规转换成多行对应关系:
- Excel:选中原始数据(含表头)→ 点击「数据」选项卡→「从表格/区域」进入Power Query编辑器→ 选中所有
Law#1/Law#2/Law#3列→ 右键选择「逆透视列」→ 得到WorkToDo、法规、值三列(仅保留值为X的行) - Google Sheets:用公式快速拆分,假设原始数据在A1:D4,输入以下公式并拆分结果:
=QUERY(FLATTEN(A2:A4&"|"&B1:D1&"|"&B2:D4), "select Col1 where Col3='X'")
步骤2:生成目标透视表
基于逆透视后的干净数据,创建透视表:
- 行字段选「法规」,值字段选「WorkToDo」
- Excel:设置值字段为「合并单元格」或用自定义格式拼接;Google Sheets可配合
TEXTJOIN(", ", TRUE, WorkToDo)实现多工作项合并
二、Python Pandas 代码实现(适合自动化/批量场景)
如果需要重复处理或对接其他系统,用代码更高效:
import pandas as pd # 构造原始数据(实际可通过pd.read_csv/pd.read_excel读取) raw_data = { "WorkToDo": ["Work1", "Work2", "Work3"], "Law#1": ["X", "", "X"], "Law#2": ["", "X", "X"], "Law#3": ["X", "X", ""] } df = pd.DataFrame(raw_data) # 逆透视+过滤无效行 unpivoted = df.melt(id_vars="WorkToDo", var_name="法规", value_name="匹配标记") valid_data = unpivoted[unpivoted["匹配标记"] == "X"] # 按法规分组合并工作项 result = valid_data.groupby("法规")["WorkToDo"].apply(", ".join).reset_index() print(result)
输出结果就是法规对应工作项的目标表,可直接导出为Excel/CSV。
方案选择建议
- 临时处理少量数据:优先用Excel Power Query,操作零代码、直观高效
- 需自动化或批量处理:用Pandas代码,可集成到工作流中重复执行
内容的提问来源于stack exchange,提问作者Bobby Dore
相关产品推荐
相关产品推荐

