在 Power Query 中转置表格,一般情况下每个行列交叉项会单独出现在一行,这样就有许多空单元格。
如何将值填充到空行中,变成一个没有多余空格的表格?
案例:将下图 1 的表格转换成下图 2 的样式。
解决方案:很多同学做出来的是这样的。
1. 选中数据表的任意单元格 --> 选择菜单栏的“数据”-->“从表格”
2. 在弹出的对话框中保留默认设置 --> 点击“确定”
表格已经上传至 Power Query。
3. 选择菜单栏的“添加列”-->“索引列”
4. 选中“物资”列 --> 选择菜单栏的“转换”-->“透视列”
5. 在弹出的对话框中按以下方式设置 --> 点击“确定”:
值列:选择“楼号”
点开“高级选项”--> 在下拉菜单中选择“不要聚合”
结果就是这样,每行只有一个楼号,问的最多的就是如何把楼号合并到同一行中。
解决这个问题最简单的办法,就是在透视之前,将索引列用类似 countif 函数的效果,分别给每种物资编号。详情可参阅 Excel Power Query 中实现 countif 效果?此法极简,小白也能看会。
但是有的同学觉得改公式麻烦,那么下面就教不写公式也能实现同样效果的方法。
分
割
线
现在开始正解。
1. 重复上述步骤 1、2。
2. 在左侧的查询区域选中“表1”--> 右键单击 --> 在弹出的菜单中选择“复制”
3. 留在“表1 (2)”中,选择菜单栏的“主页”-->“分组依据”
4. 在弹出的对话框的第一个下拉菜单中选择“物资”--> 点击“确定”
5. 选择菜单栏的“添加列”-->“自定义列”
6. 在弹出的对话框的公式区域输入 {1..[计数]} --> 点击“确定”
7. 点开“自定义”旁边的扩展钮 --> 选择“扩展到新行”
8. 删除“计数”列。
9. 将“物资”列按升序排序。
10. 选择菜单栏的“添加列”-->“索引列”
11. 选中“查询”区域的“表1”--> 将“物资”列按升序排序
12. 选择菜单栏的“添加列”-->“索引列”
13. 选择“主页”-->“合并查询”
14. 在弹出的对话框中按以下方式设置 --> 点击“确定”:
依次选中“物资”和“索引”列
在下拉菜单中选择“表1 (2)”--> 依次选中“物资”和“索引”列
15. 点开“表1 (2)”旁边的扩展钮 --> 仅勾选“自定义”--> 取消勾选“使用原始列名作为前缀”--> 点击“确定”
16. 删除“索引”列。
17. 选中“物资”列 --> 选择菜单栏的“转换”-->“透视列”
18. 在弹出的对话框中按以下方式设置 --> 点击“确定”:
值列:选择“楼号”
点开“高级选项”--> 在下拉菜单中选择“不要聚合”
19. 删除“自定义”列。
20. 选择菜单栏的“主页”-->“关闭并上载”-->“关闭并上载至”
21. 在弹出的对话框中选择“仅创建连接”--> 点击“加载”
22. 在右侧的“工作簿查询”区域选中“表1”--> 右键单击 --> 在弹出的菜单中选择“加载到”
23. 在弹出的对话框中选择“表”--> 选择“现有工作表”及所需上传至的位置 --> 点击“加载”
这就是你们想要的效果。