美文网首页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