在讲双层表头前,得先介绍一种交叉表转规范表格的操作。
原始数据你可以把以上这种表结构称为二维表、交叉表、透视表,用它们可以直观地展示与观察数据,但是它们不适合直接用作数据源。规范的数据源应该是这样的:
规范的一维表结构拿到这样的数据源,易于扩展,做起分析来也很方便!但如何实现这种结构转换的效果呢?
函数?可以,复杂,而且不方便重复使用; 透视表?可以,依次按 Alt、D、P 使用多重合并计算区域作为数据源,生成透视表后,双击行列总计显示的格式就是规范表格; VBA?可以,但使用门槛比较高;
作为一个现代的 Excel 数据分析师,Power Query 是做数据处理必须要学习的高效技能。
PQ 一键转换表格结构
首先,当然是导入数据到 PQ 中,但不用担心,PQ 只是复制一份你的数据去做转换而已,并不会直接更改你的表格。
导入数据到PQ逆透视其他列整个过程不足 10 秒就能完成,非常简便高效!
双层表头问题
刚才的问题还是挺好解决的,奈何工作不总是如此简单,例如有可能是双层表头:
双层表头数据源这种表格也很常见的,作为报表展示是可以的,但作为数据源就非常不合适了!那能否还像刚才一样,使用逆透视把它规范化呢?
再尝试逆透视可以看到,在处理双层表头时,并没有能达到想要的效果!
原因是第二层表头直接出现在了行数据记录里了,但它实际上不是数据!
处理方法
整体思路是把表格变成单层表头,再逆透视。
Step1:导入数据,不勾选包含标题,即把所有内容看作是行记录。
不包含标题Step2:转置,实现把原双层表头变成最左侧的两列,而原来的商品列,则变成了第一行。
表格转置Step3:向下填充,因为原第一层表头是合并单元格,会有空值的情况,所以要填充补全。
向下填充Step4:把第一行用作标题,现在的第一行,其实就是原来的商品列,它不存在双层问题,直接把它用作标题后,就实现了单层标题了。
把第一行用作标题Step5:逆透视,因为此时是单层标题,用逆透视就能解决了。但要注意,操作前要选择第一列和第二列(按 Shift 键连续选即可)。
逆透视看起来要 5 步有点多,其实操作也就 20 秒以内搞定,PQ 的效率就是高!
不需要写函数,不需要写代码,Power Query 操作功能花半天多就能上手,学习的性价比很高!
我建议 Power Query 是每一个现代 Excel 用户必须掌握的数据处理技术!