美文网首页POWER QUERY
99%的人都不知道的PowerQuery秘技

99%的人都不知道的PowerQuery秘技

作者: 一叶云秋 | 来源:发表于2019-05-01 14:10 被阅读0次

前言

解决问题:合并文件夹中的csv文件

问题难点:csv文件不规则,在有效数据前有部分冗余数据,无法直接使用Power Query的按钮控件完成

使用工具:Excel

故事概要

话说一代大侠李逍遥迫于生计,创建了个人博客,但是常年疏于管理。近日仔细研读《增长黑客》一书后,决定统计下相关数据,以求更大的发展,于是从微博后台下载了相关数据。

后台下载的数据表

观察数据表后,瞬间产生了2个需求:

  1. 去除每张表格的前5行
需求1
  1. 下载到一个文件夹中的所有的数据进行合并
需求2

但是如何将同时完成这两个需求,得到一份统计表,李逍遥陷入了深深的沉思。

解题思路

Excel自带的Power Query可谓是强大的ETL工具,若能完全掌握其M语言,这个问题也是小菜一碟。奈何掌握一门语言谈何容易,那么今天笔者也就硬着头皮试上一试。仔细观察需求,不难发现两个需求单独实现并不难,都是可视化控件可以搞定的,所以我们可以尝试做一个函数,用于读取表格,并删除不需要前5行,然后在合并文件夹中的文件时讨论。具体请听我娓娓道来。

将单CSV作为样例,并清理

这里的操作很简单,此处就不多做赘述,全过程共分两部:

  1. 导入数据
导入CSV
  1. 使用控件,删除前5行,并将第一行提升为标题
清理数据

将清理过程封装成函数

大家都知道,所谓函数,就必须要传参,所以我们需要创建一个参数。由于M语言中函数Csv.Document的第一个参数需要一个二进制文件,所以此处创建的参数是一个二进制参数。

创建参数

之后在原有的CSV文件导入过程中引用这个参数。引用后会报错,请别急,这是正常的

引用参数

之后就可以直接创建函数啦。

创建函数

将文件夹中的所有文件套用函数

至此,我们已经成功了一半了,后面就是洒洒水啦~

我们先将下载下的文件放入一个文件夹,然后在Power Query创建一个文件夹的查询。

导入文件夹

之后增加一个自定义列,使用刚才创建的函数即可。

使用函数

最后仅需删除其他列后,展开自定义列即完成了所有操作。

展开自定义列

总结

至此,李逍遥终于完成了合并数据,但是后期如何分析呢,这又是一个难题。但是他已经会了一个99%的人都不知道的Power Query秘技了。

相关文章

网友评论

    本文标题:99%的人都不知道的PowerQuery秘技

    本文链接:https://www.haomeiwen.com/subject/mxzinqtx.html