Lazy loaded imagePowerQuery功能详解之逆透视列和透视列

type
status
date
slug
summary
tags
category
icon
password
今天,给大家介绍Power Query处理数据的两个超强功能,学会并理解了这两个功能,以后不管有多少合并单元格的表格都不会焦虑了,能够很快捷的将只适合人类阅读的不规则表格,瞬间转换为适合机器阅读的二维表格,这俩功能就是逆透视列透视列
原理介绍
逆透视列就是将选定的数据列“融化”成一个个最小单元,使原来的每一列的列标题和对应的单元格值,分别计入两个全新设定的垂直列(“属性”和“值”)中,从而将水平展开的列信息,转换为垂直堆叠的行信息,实现“化列为行”,让宽表变高表
工作逻辑:
  1. 锚定: 你先指定一个或多个“锚点”列,这些列是基础信息,在转换中保持不变
  1. 融化: Power Query会将其余所有你选定的列进行“融化”
  1. 重组: 对于被融化的每一列,Power Query都会:
      • 抓取其列标题,放入一个新创建的“属性”列中。
      • 抓取其对应的单元格的值,放入另一个新创建的“值”列中。
      • 同时,将“锚点”列的值复制到新生成的每一行中。
透视列是“逆透视”的逆向操作,它将“高”的表格数据变“宽”,它把某一列中的唯一值提取出来,并将它们设置为新的列标题。它的主要任务是聚合和重塑数据,将一个很高的列表,转换成一个列向的交叉表或汇总表,使其更具可读性,便于人类进行比较和观察。简单说,就是“化行为列”
工作逻辑:
  1. 指定源列: 你先选中一个包含类别文本的列(例如,包含了“预算数”、“调整数”等信息的“维度”列),这个列将成为新列标题的来源。
  1. 指定值列: 你需要告诉Power Query,新列下面的单元格应该用哪个列的数值来填充(例如,包含数字的“金额”列)。
  1. 指定聚合方式: 你需要定义当出现多个值需要填充到同一个单元格时该如何处理(例如,求和、平均、计数,或者在数据唯一时选择“不要聚合”)。
  1. 执行: Power Query会:
      • 找出“源列”中所有的唯一值。
      • 为每一个唯一值创建一个新的列。
      • 根据“值列”“聚合方式”,将数据填充到这个新的二维矩阵中。
文字表述比较懵,请看实操案例:
notion image
如上图,我们希望每一行代表一个部门、一个费用科目在一个特定期数下的所有维度数据,而不是所有12期的数据,因为这样在做按分期的透视筛选时就会出现问题,要把时间分期做到每一行去。
下面开始操作:
阶段一:预处理 - 整理混乱的标题
这个阶段的目标是将两行式的、带有合并单元格的复杂列标题,变成一行式的、干净的、唯一的列标题。
  • 1、加载数据:将Excel文件加载到Power Query编辑器中。
  • 2、转置表格
    • 点击顶部菜单 “转换” 选项卡。
    • 点击 “转置”(效果:原来的列标题现在变成了最左侧的两列。)
图像1:转置
 
  • 3、合并期数与维度列
    • 按住 Ctrl 键,依次选中第一列第二列
    • 右键单击任意一个选中的列标题,选择“合并列”
    • 在弹出的对话框中,分隔符选择“自定义”,并输入一个下划线 _作为分隔符。点击“确定”。(效果:前两列合并成了一个新列,其内容为 01期_预算原始数 等。)
图像2:合并列
 
  • 4、再次转置表格
    • 再次点击 “转换” -> “转置”(效果:表格恢复原始方向,但列标题已合并在第一行。)
  • 5、提升标题行
    • 点击 “主页” 选项卡。
    • 点击 “将第一行用作标题”(效果:01期_预算原始数 等内容正式成为列标题。预处理阶段完成!)
图像3:将第一行用作标题
 

阶段二:数据重构 - 从宽表到高表
这个阶段是核心,我们将执行“逆透视 -> 透视”的组合拳来重塑数据。
  • 1、逆透视数据列(打散)
    • 按住 Ctrl 键,选中你不希望改变的“基础信息”列,即 [预算组织] 和 [费用科目]
    • 保持这两列被选中,右键单击任意一个选中的列标题。
    • 在菜单中选择 “逆透视其他列”(效果:表格被“打散”成四列:预算组织,费用科目, 属性, 值。宽表变成高表)
图像4:逆透视其他列
 
  • 2、拆分属性列
    • 选中新生成的 [属性] 列。
    • 点击 “主页” 或 “转换” 选项卡中的 “拆分列” -> “按分隔符”
    • 选择按 “下划线 (_)” 拆分,在 “每次出现分隔符时” 拆分。点击“确定”。(效果:[属性]列被拆分为两列,分别包含“期数”和“维度”信息。)
图像5:拆分属性列
 
  • 3、初步重命名
    • 为了清晰,双击重命名刚才拆分出的两列:
      • 属性.1 -> 期数
      • 属性.2 -> 维度
图像6:重命名列
 

阶段三:最终塑形 - 重组为目标格式
这是最后一步,我们将打散的数据按照你的具体要求重新聚合起来。
  1. 透视维度列(重组)
      • 只选中 [维度] 这一列(该列包含预算原始数, 预算调整数等文本)。
      • 点击 “转换” 选项卡。
      • 点击 “透视列”
      • 在弹出的对话框中,进行关键设置:
        • 值列:从下拉菜单中选择 [值](包含数字金额的列)。
        • 高级选项:点击展开。
        • 聚合值函数:选择 “不要聚合”
      • 点击“确定”。(效果:[维度]列中的唯一值变成了新的列标题,表格结构完全符合您的要求!)
图像7:透视维度列,化行为列
 

【点击文末“阅读原文”,获取本文全程操作案例文件(动作可回溯),和我们一起充电,加入后可享受每月6次免费咨询提问,帮助解决您的特定问题!】
如果本篇文章对您有帮助或启发,请帮我们点赞、转发、推荐、关注,让更多想转型财务BP、锻造数据分析和可视化洞察能力的财务同行们看到,关注【老汪洞察】,不迷路!
上一篇
Power Query数据清洗查询后,上载出来的报表与普通表的不同之处
下一篇
PowerQuery功能详解之添加自定义列
Loading...
目录
文章列表
让财税成为经营的力量
电脑与网络
从Power Query到Power BI,入门到精通
知识运用