如果要透视数据,数据透视表无疑比 Power Query 好用。但有同学求助说他需要用 PQ 做很多数据清洗和整理工作,所以希望透视也在 PQ 中完成,便于后续的分析。
那么问题来了,数据透视表可以透视列区域,也就是说,列和值区域可以是同一字段。但是 PQ 没那么灵活啊,没有提供这个选项。怎么办?
案例:
用 PQ 将下图 1 转置成二维表,“姓名”放在行区域,“产品”放在列区域,值区域计算出每个人的产品数。
效果如下图 2 所示。
解决方案:
这个需求如果用数据表透视表来做是再容易不过的了。
1. 选中数据表的任意单元格 --> 选择工具栏的“插入”-->“数据透视表”
2. 在弹出的对话框中选择“现有工作表”及所需上传至的位置 --> 点击“确定”
3. 在右侧的“数据透视表字段”区域按以下方式拖动字段:
行:“姓名”
列:“产品”
值:“产品”
这就计算出了纵横列相交处的数量。
在 PQ 中就没那么简单了,因为透视的值字段就不允许跟列字段一样。我们来看一下。
1. 选中数据表的任意单元格 --> 选择工具栏的“数据”-->“从表格”
2. 在弹出的对话框中保留默认设置 --> 点击“确定”
表格已经上传至 Power Query。
3. 选中“产品”列 --> 选择工具栏的“转换”-->“透视列”
4. 在“值列”的下拉菜单中只有“姓名”字段,没有我们需要的“产品”字段,那只能选它 --> 点击“确定”
这是透视结果。
如果要得到所需的结果,只需将公式的参数修改一下。
5. 将公式中的参数“姓名”修改为“产品”--> 回车
成了。
6. 选择工具栏的“主页”-->“关闭并上载”-->“关闭并上载至”
7.在弹出的对话框中选择“表”--> 选择“现有工作表”及所需上传至的位置 --> 点击“加载”
通过稍微修改参数,就能将不可能变成了很容易。