Oracle中如何将透视表的多行分散列值合并为一行?
合并透视表多行数据为单行的方法
Excel 快捷解法
直接用MAX函数提取每列的非空值:
- 在空白单元格(比如新的A列位置)输入公式
=MAX(A:A) - 按住单元格右下角的填充柄,横向拖动到B、C、D列,即可自动忽略空值,得到每行对应列的1。
Excel 手动操作步骤
如果不想用函数:
- 选中透视表的所有数据行(包含空值的4行),按
Ctrl+C复制 - 右键点击空白单元格,选择选择性粘贴 → 勾选转置,点击确定
- 选中转置后的列,点击数据选项卡 → 删除重复值,只保留唯一的1
- 再次选中这一列,复制后选择性粘贴转置回一行,对应到A、B、C、D列即可。
Power Query 处理流程
- 选中透视表数据区域,点击数据选项卡 → 从表格/区域(弹出对话框时勾选“我的表格有标题”)
- 在Power Query编辑器中,选中A、B、C、D所有列,点击转换选项卡 → 填充 → 向下填充
- 选中前3行,右键选择删除行,只保留最后一行数据
- 点击关闭并上载,将结果导出到Excel中。
Python Pandas 代码实现
如果用代码处理这类数据:
import pandas as pd # 模拟你的透视表数据 df = pd.DataFrame({ 'A': [1, None, None, None], 'B': [None, 1, None, None], 'C': [None, None, 1, None], 'D': [None, None, None, 1] }) # 提取每列的非空值,合并为单行 merged_row = df.max().to_frame().T print(merged_row)
内容的提问来源于stack exchange,提问作者qka
相关产品推荐
相关产品推荐

