Power Query - 行列管理实例应用

    数据源如下图,是学生三门课程的考试成绩,其中有一次通过的,有考过多次的:

    (2条消息) 15、Power Query-行列管理实例应用_少年休闲海-CSDN博客_power query应用案例 - 图1

    要求:

    1、找出每个课程考试三次以上的(包含三次);

    2、找出三个课程同时一次考试通过的;

    3、找出每个课程一次考试通过的;

    貌似以现在我们的 excel 功能很难做到,下面我们就用 PQ 的方式跟大家讲讲具体的实现。

    我们用之前学过的数据导入方式;” 从 excel 文件导入 “的方式导入。

    (2条消息) 15、Power Query-行列管理实例应用_少年休闲海-CSDN博客_power query应用案例 - 图2

    上图就是我们处理过后的数据源。

    然后我们需要找出没门课程考试三次及以上的童鞋,看似有点难度,其实就是要找出前面两列数据出现过三次及以上的记录。

    所以我们需要选中前面两列,点击”开始 “——” 删除重复项 “——” 保留重复项 “(2013 版本是” 保留行 “——” 保留重复项“)。

    (2条消息) 15、Power Query-行列管理实例应用_少年休闲海-CSDN博客_power query应用案例 - 图3

    现在就把一次通过的记录都删掉了。

    (2条消息) 15、Power Query-行列管理实例应用_少年休闲海-CSDN博客_power query应用案例 - 图4

    留下来的都是两次及两次以上的记录,跟我们的需要貌似还差一点。

    其实我们进行每一次的操作,excel 都是有代码支持,最简单的方式就是进入它的高级编辑器,找到如下字眼:

    selectDuplicates = Table.SelectRows(addCount, each [Count] > 1)

    像我英文这么好,编程又这么好的人一眼就看出来是什么意思了,这里的 > 1 其实就是找出出现过一次以上的记录行。

    很明显咯,我们把这里改成 “>2” 不就大功告成了!

    (2条消息) 15、Power Query-行列管理实例应用_少年休闲海-CSDN博客_power query应用案例 - 图5

    (2条消息) 15、Power Query-行列管理实例应用_少年休闲海-CSDN博客_power query应用案例 - 图6

    然后这里已经可以满足我们的要求了,但是我们是很严谨的啊,继续,修改列名,然后分组依据,求出他考了到底多少次,最后的分数是多少。

    (2条消息) 15、Power Query-行列管理实例应用_少年休闲海-CSDN博客_power query应用案例 - 图7

    (2条消息) 15、Power Query-行列管理实例应用_少年休闲海-CSDN博客_power query应用案例 - 图8

    这样应该差不多了。

    第二个需求是找出一次性通过的名单。

    这个可以依葫芦画瓢了,选中前面两列,”保留行 “——” 保留重复项“。

    (2条消息) 15、Power Query-行列管理实例应用_少年休闲海-CSDN博客_power query应用案例 - 图9

    我们把高级编辑器里改成”<2”,不就是一次通过的么!

    (2条消息) 15、Power Query-行列管理实例应用_少年休闲海-CSDN博客_power query应用案例 - 图10

    将它转换程一个二维表。

    选中 “姓名” 列,“转换”——“透视列”。

    (2条消息) 15、Power Query-行列管理实例应用_少年休闲海-CSDN博客_power query应用案例 - 图11

    (2条消息) 15、Power Query-行列管理实例应用_少年休闲海-CSDN博客_power query应用案例 - 图12

    最后一个需求有点变态,是要找出所有课程都一次通过的名单。比如上面的陶勇,他的英语没有通过,是不给显示的。

    我们依旧用透视列的功能。

    (2条消息) 15、Power Query-行列管理实例应用_少年休闲海-CSDN博客_power query应用案例 - 图13

    (2条消息) 15、Power Query-行列管理实例应用_少年休闲海-CSDN博客_power query应用案例 - 图14

    千万记得选中 “不要聚合”,为什么呢?因为只有一条记录的才会显示正确,否则都是 error。

    最后我们选中分数列(最好是对于数字列全部选中)用行列功能管理里的 “开始”——“删除行”——“删除错误”。

    (2条消息) 15、Power Query-行列管理实例应用_少年休闲海-CSDN博客_power query应用案例 - 图15

    (2条消息) 15、Power Query-行列管理实例应用_少年休闲海-CSDN博客_power query应用案例 - 图16

    搞定,相当流弊的功能啊!
    https://saper.blog.csdn.net/article/details/53997967