何时归来皆不晚,天真亦可作少年
我在前面的文章中分享过使用自定义函数的方法将数据处理流程封装成自定义 M 函数,然后调用函数对文件夹中所有同类型的文件一次性合并的方法。
使用自定义M函数「打包」数据处理流程
有读者反馈在寻找自定义参数可替代的步骤存在一定困难。寻找可以被自定义参数替代的 M 函数部分,确实是封装 M 函数最重要的一步。而寻找这一部分需要对封装 M 函数的执行流程有清晰的了解。
上一篇文章中,我们的数据处理步骤是从深化【Data】列后的数据开始的,所以我们从【Data】所在的步骤开始封装,并删除其前面的步骤(因为前面的步骤已经执行过了)。
为了更好的理解如何封装自定义函数,本文介绍另一种相对容易理解的做法,原理其实都是一样的,只是我们将封装的流程提前到最开始文件导入的步骤。
示例数据还是一样,面对的问题也一样:
- 数据表第 1、2 行需要删除。
- 数据表 D 列为空白需要删除。
- 为了进一步分析,需要将数据表逆透视,转换成一维表。
- 1-4 月的数据结构一致,都有以上问题。
1、导入单表按需求进行处理
我们先将 1 月份的数据表导入 PQ,对导入的表中的数据按需要进行清洗。
↑ 使用删除行功能,删除最前面2行
↑ 将第一行提升为标题
↑ 删除第 4 列
↑ 选中【客户编号】右键选择逆透视其他列
以上步骤操作下来,1 月份的数据就将所存在的问题都处理完了。最后的数据就是我们可以用来进一步分析的数据。以上数据处理流程适用于接下来各月的数据。所以我们封装的 M 函数就以 1 月份数据处理流程为基础。
2、创建函数
第一步的执行过程就是我们创建函数的基础,选中该查询,单击右键,选中【创建函数】,选择不带参数创建函数。
函数命名为「文件处理函数」
此时我们的函数还不包含可调用的参数部分,我们需要在编辑栏或者高级编辑器中手动修改参数。自定义函数的步骤针对整个文件进行处理,所以我们可以直接将文件路径定义成参数。
3、从文件夹获取所有文件路径
先执行从文件夹合并数据
↑ 获取数据>文件夹
↑ 点击“转换数据”进入PowerQuery编辑器
因为我们需要输入的参数是文件路径及文件名,所以我们仅需要保留文件名及路径,并将两列合并。
3、调用自定义函数
接下来直接调用自定义函数,对合并的文件夹路径进行转换就可以了。在调用自定义函数对话框中,新列名、调用函数及函数应用的列都通过下拉的方式进行选择。
展开数据,删除不需要的列就完成了对所有月份数据的整理和合并了。
合并后的数据不包含月份字段,读者可以思考一下如何保留每张工作表中的月份字段?
通过对这两种方法的对比学习,相信大家就可以掌握自定义 M 函数的使用方法。可以灵活地应对不同的场景。
对比 Excel 轻松学会 PQ 的逆透视与分组依据功能
VLOOKUP与IFERROR强强联合,Excel的容错机制太强大,必须看
Excel数据表中怎样快速找出领导需要的数据,我只做了这一件事