最近因为有在准备替拉美最大电商平台Mercadolibre在国内招商,所以需要把商家提交的资料进行整理,达到给国外要求的目标格式。因为渠道来源有多种多样,怎么快速统一并汇总是个问题,这就产生了本次案例的需求来源。
(一) 目的
通过收集表的资料汇总到目标表,保持目标表的格式(包括列名及列名顺序)
(二) 资料条件
- 收集表的列数和目标表不一致
- 收集表的列名和目标表不一致
收集表
目标表格式
最终效果
(三) 操作步骤:
1. 统一标题
通过对应的替换关系进行一一替换
A. 建立标题对应表
B. 批量替换标题
代码语言:javascript复制Table.RenameColumns(源,
List.Transform({{0..Table.RowCount(替换列表)-1},
each List.Combine({{替换列表[原列]{_}},
{替换列表[替换列]{_}}
})
)
)
这个在之前的文章里我们有分享过批量内容替换。
如何在Power Query中批量修改标题?
2. 调整列数
因为列名及列数需要保持和目标表格式一致,所以这里需要增加未显示的列以及去除不在目标表格式里的列。
A. 去除非目标表列
代码语言:javascript复制Table.RemoveColumns(自定义1,
List.Difference(Table.ColumnNames(自定义1),
Table.ColumnNames(目标表)
)
)
B. 增加缺失列
代码语言:javascript复制批量加列(自定义2,
List.Difference(Table.ColumnNames(目标表),
Table.ColumnNames(自定义2)
),
each null
)
最后通过自定义函数批量增加列。可以查看之前的案例。
如何使用Power BI对2019互联网趋势报告进行进一步的分析?——人口预测篇
3. 整理列的排序
代码语言:javascript复制Table.ReorderColumns(自定义3,Table.ColumnNames(目标表))
这样我们就可以对资料进行快速的整理,而且在函数中基本用的都是变量,所以我们后期主要要做的就是列名的对应整理即可。