都知道 Power Query 只要设置一次,今后只要刷新一下就能动态更新结果。任何场景都如何吗?非也。
比如合并操作,虽然用 PQ 很简单,但出乎意料不能自动拓展新的区域。很多同学一不小心就会踩坑了。
今天就讲讲如何让合并列也能自动应用到新增的列。
案例:将下图 1 中所有列合并成一列,如下图 2 所示。
当源表格中添加了新的列,刷新目标区域也要将新的列合并进来,效果如下图 3 所示。
解决方案:先来验证一下,用工具栏的合并操作,是否能合并新添加的列。
1. 选中数据表的任意单元格 --> 选择工具栏的“数据”-->“从表格”
2. 在弹出的对话框中保留默认设置 --> 点击“确定”
表格已上传至 Power Query。
3. 选中所有列 --> 选择工具栏的“转换”-->“合并列”
4. 在弹出的对话框中保留默认设置 --> 点击“确定”
5. 选择工具栏的“主页”-->“关闭并上载”-->“关闭并上载至”
6. 在弹出的对话框中选择“表”--> 选择“现有工作表”及所需上载至的位置 --> 点击“加载”
7. 在源表格右侧添加两列。
8. 选中结果表的任意单元格 --> 右键单击 --> 在弹出的菜单中选择“刷新”
刷新后新增的两列并没有执行合并操作,而是新增了进来。如何才能让新的列也执行合并操作?
1. 执行上述步骤 1 至 4。
在公式栏中可以看到,默认的合并操作将需要合并的列写死了,而不是灵活调用变量,怪不得刷新不起作用。
2. 只需要将蓝色的列名替换为以下公式:
Table.ColumnNames(更改的类型)
公式释义:
Table.ColumnNames 函数用于获取指定表的列名列表;
“更改的类型”是上一个步骤的名称;
这段公式的作用是获取上个步骤中所有列;
使用该函数不仅在新增列的时候可以自动获取,而且即使原先的列名改了,刷新结果也不会出错。
现在再回到 Excel 刷新一下结果列,新增的列都能自动被合并进来了。