PowerQuery中“复制查询”和“引用查询”的应用场景

貌似有点脱了裤子放屁的感觉,这两个命令字面意义上就已经说明了它们的应用场景——代码复用。字面意思好理解,但就我使用经验而言,还是很长时间不知道两者的差别,因为两个命令都会生成一个基于前一个查询的新查询,那么,具体使用时差别在什么地方?

“复制查询”类似于生孩子,复制之后,新查询和老的查询就没有任何关系了——老查询的变化不会反映到新查询中;新查询的变化更不会导致老查询变化。

“引用查询”中新老查询的关系类似于PowerPoint中PPT页面和PPT母版的关系——母版的变化会即时反映到PPT页面,也就是老查询的变化会反映到新查询中,但是新查询的变化并不会引起老查询发生改变。

举例:

我有一个人员数据表,数据非常乱,所以我要做各种操作:去掉不必要的空格、提取出性别和年龄信息,将身份证号码最后一个x变成大写的X等等之类操作。然后我要按一定格式输出一个有效用户名单那和一个禁用名用户名单。

实现这个目标有两种思路:

一是建立一个有效用户名单查询,对原始数据进行各种操作并筛选出有效用户后,复制一份该查询,重命名为禁用用户名单查询,在此基础上重新编辑查询,筛选出禁用用户。这样,当原始数据发生变化,我需要在两个查询中对原始数据做一模一样的操作。如果操作简单,还好说,如果操作非常复杂,就相当耗时而且容易出错了。

二是我建立三个查询:原始数据查询,对数据进行各种初始整理操作;引用原始数据查询生成一个有效用户查询,然后筛选出有效用户;再引用原始数据查询生成一个禁用用户查询,筛选出禁用用户。这样,当原始数据发生任何变化,我只需要修改一次原始数据,其修改结果都会同时反映到两个查询中,节省了大量时间。

【题外话:最新的PowerQuery有两个“复制”命令(见下图),点击最顶端那个“复制”命令,不会发生任何事情;点击中间“引用”上面那个“复制”则会生成一个新的查询。本帖讨论的是后面这一个“复制”命令。最顶端那个“复制”命令是专用于和Power BI Desktop共享PowerQuery代码的——复制之后到Power BI Desktop粘贴,即将Excel中的PowerQuery代码复制到了Power BI Desktop中,反之亦然。】

PowerQuery中“复制查询”和“引用查询”的应用场景_第1张图片
图1

你可能感兴趣的:(PowerQuery中“复制查询”和“引用查询”的应用场景)