精通 Power Query

978-7-115-60774-4
作者: [加拿大] 肯·普尔斯(Ken Puls)[巴拿马]米格尔·埃斯科瓦尔(Miguel Escobar)
译者: BI 佐罗团队
编辑: 郭媛

图书目录:

详情

本书是Power Query领域的经典之作,旨在让读者用正确而高效的方法精通Power Query。本书是两位作者多年积累的业务和IT工作经验总结,同时也是全球Power Query顶级社群的大咖经验提炼。本书从业务背景出发,在业务和IT之间做到了良好的平衡,系统化地给出了Power Query的思维框架和模式,同时按照多个企业级业务场景一一展示其实用性。 无论你是Power Query的新手还是经验丰富的ETL专家,都可以从各自的角度领略Power Query 和M语言的魅力。对于业务用户,本书给出了日常办公所涉及的大量复杂数据问题解法的直接参考,并提供了大量案例,可以直接应用。对于专业用户,本书给出了搭建大型专业数据项目的框架性流程指导及优化建议,并提供了相关案例,也可以直接复用。

图书摘要

版权信息

书名:精通Power Query

ISBN:978-7-115-60774-4

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

版  权

著    [加拿大]肯·普尔斯(Ken Puls)

     [巴拿马]米格尔·埃斯科瓦尔(Miguel Escobar)

译    BI佐罗团队

责任编辑 郭 媛

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315

版权声明

Published by arrangement with Holy Macro! Books

ALL RIGHTS RESERVED

本书中文简体字版由Holy Macro! Books授权人民邮电出版社独家出版。未经出版者书面许可,任何人或机构不得以任何方式复制或使用本书内容。

版权所有,侵权必究。

内容提要

本书是Power Query领域的经典之作,旨在让读者用正确而高效的方法精通Power Query。本书是两位作者多年积累的业务和IT工作经验总结,同时也是全球Power Query顶级社群大咖的经验提炼。本书从业务背景出发,在业务和IT之间做到了良好的平衡,系统化地给出了Power Query的思维框架和模式,同时按照多个企业级业务场景一一展示其实用性。

无论你是Power Query的新手还是经验丰富的ETL专家,都可以从各自的角度领略Power Query和M语言的魅力。对于业务用户,本书给出了日常办公所涉及的大量复杂数据问题的解法,并提供了大量案例,可以直接应用。对于专业用户,本书给出了搭建大型专业数据项目的框架性流程指导及优化建议,并提供了相关案例,也可以直接复用。

推荐词

菲仕乐(Fissler)近几年逐步开始重视数字化管理,SAP标准化数据的整合结合Power BI的大数据管理是集团未来的转型目标。作为全资子公司的菲仕乐贸易(上海)有限公司(Fissler China Ltd.,菲仕乐中国),我们早于集团对Power BI进行了部署,与BI佐罗老师合作,已完美实现了历史数据的清理和国内数据构架的搭建,财务数据库呈现的效果超过我们的预期,也受到管理层的一致好评。

通过报表升级自动化与关键数据监控定制化,之前大量用于数据整理和制作报表的时间被节省出来,用于钻研业务绩效,细分关键业务模块,深入挖掘企业盈利能力。业务人员也可以使用Power Query这套工具处理烦冗的业务数据,实现自动化,进而帮助管理人员从数据表现中发现问题,探讨解决问题的可能性方案,赋能业绩增长。推荐大家使用这本书。

——Cindy,菲仕乐中国财务IT总监

Excel的相关工作在我的日常工作中占比很大。还记得我刚进入职场时,在数据处理和统计过程中,总会觉得无从下手,一头雾水,白白浪费了许多精力。但很庆幸的是,不久之后我接触到了Excel中的Power Query,它让我逐步摆脱初入职场时一头雾水的状态,并在数据分析中愈战愈勇,成功向商业智能转型。

在这个数据时代,我们或多或少需要跟数据打交道。掌握数据分析工具的使用方法,才能更好地深入研究业务。而Power Query,可以说是最有性价比的工具之一,不需要你有技术背景也能轻松入门。而这本书,就是一本从入门到精通的落地指南,其系统化的思维框架和实操案例,为工作中的各种实际难题提供高效的解决方案。

如果你希望从每天繁杂的数据中解脱出来,提高分析效率,开拓分析思路,那这本书是一个优秀的选择。

——张航,第5届Power BI可视化大赛一等奖获得者

无论是Excel还是Power BI,做出一份完美的报表或报告,少不了数据的清理与准备,这看不见的工作量很可能占了总工作量的80%。这项工作可以请IT人员或者顾问支持解决,也可以由业务人员自学SQL和Python搞定。但现实是,你可能没有预算请别人做,也可能觉得自学新的语言太难。这时Power Query就为非技术出身的业务人员提供了一个“当家作主”的好机会——做数据的主人。为此,你需要的只是几杯咖啡的预算,来拥有这本书。

——王诗琛,第5届Power BI可视化大赛“最具推广价值奖”获得者

《精通Power Query》是目前少有的可以体系化学习Power Query的佳作,书中案例覆盖了多数的数据整理常见场景,对实际操作极具指导意义,适合放在手边时常查阅。对于经常和数据打交道的各行各业人士来说,这是本值得一读再读的好书。

——陆俊峰,第5届Power BI可视化大赛“最佳展现创意奖”获得者

自从Power Query面世以来,Excel数据处理能力发生了指数级变革。使用Power Query可以让你“弯道超车”,轻松地完成原本需要高难度的Excel公式甚至编写VBA代码或其他程序语言才能完成的数据整理工作。这本书是一本难得的Power Query“驾车指南”,内容翔实,通俗易懂,能让你快速掌握Power Query这一利器。

——张震,《智能管理会计:从Excel到Power BI的业务与财务分析》作者

谁都无法否认,Excel是非常重要且好用的数据分析工具。但是有很多业务一线的小伙伴告诉过我,大量的重复的数据清理工作占去了他们40%到80%的工作时间,这极大地影响了他们的工作效率。这说明他们缺少了Power Query的学习。在Power Query学习领域,“猴子书”久负盛名,但一直没有被引进国内。在BI佐罗团队的努力下,中文版终于面世了。如果你和我的小伙伴们一样,被数据清理工作所困扰,那么这本书你一定要细细研读,它能让你的工作效率提升好几倍!

——孙光,小米数据分析师

我作为企业的数据运营人员,接触Power Query的时间越久,越拜服于它的功能强大、高效、低代码、高性价比(Power Query内置于Excel与Power BI中,用户学会20%的功能已足够应对现实中80%的数据处理工作)等特点。作为学习门槛较低的数据ETL工具之一,它为数据治理、表格输出及数据可视化的“自动化流水线”提供了实现基础。

这本书由浅入深、由基础到进阶地介绍了Power Query和M函数,适用于各个阶段的读者学习:为初入门的小白构建了一套完整的Power Query知识体系,为专业人士提供了一系列优化查询的最佳实践,为业务伙伴指出了针对实际业务问题的解决方案。

两位作者作为该领域的领跑者,从实际工作经验出发,将业务与IT完美平衡,使得这本书不仅仅停留在技术理论的“传道”层面,更是为实际业务提供了优秀参考,让读者能够即学即用,学以致用。强烈推荐这本书!

——徐露,碧迪医疗数据分析师

这本书是学习Power Query的经典之作的第二版,两位作者融合了高超的技术能力和丰富的业务应用场景,帮助读者能够循序渐进地入门并精通这套Power BI与Excel中的数据处理利器。

同时这本书也是BI佐罗团队在DAX的精进和实践外,潜心付出、翻译后,带给广大Power BI用户的又一硕果。这本书配合BI佐罗团队的视频课程一同学习,将让你的数字化能力成倍提升。

——陆文捷,物流供应链BI分析师,《DAX设计模式》译者之一

如果你和我一样,是一名非IT背景的业务分析师,并且常常问自己有没有什么方法能更好地处理混乱数据;或者你曾经也和我一样,挡不住各种营销号铺天盖地带来知识而产生焦虑,并担忧着是不是得再多学点什么,VBA、SQL,还是Python。那么,这本书将会帮助你从另一种更宏观,也更容易实践的角度来看待以上问题。

熟悉这本书前半部分后,你就可以通过Power Query直观的界面,完成数据准备的大部分工作。如果你还想解决别人没办法处理的难题,则可以选择继续深入到M语言、优化查询与自动化等进阶内容。

这本书帮助我用更聪明的方法,高效进行数据提取、转换和加载,进而让我得以全力聚焦于更重要的一环:挖掘出在数据中潜藏的风险、机遇与更多的价值。如果有时间的话,现在就开始吧,相信你也一定能从中受益。

——蔡至洁,BI分析师

我在上海从事数据分析工作两年,之前并无技术背景,怀着对数据分析的热爱,曾纠结于各种技术,包括SQL、Python、大数据等,幸运的是,我最终做了正确的选择:深入研习Power BI以及相关的数据处理技术Power Query。

感谢BI佐罗老师的课程能够让我感悟到正确和智慧的数据分析思维。我通过两年时间的努力做到了别人四五年才能达到的工作状态,现在继续用这套思维体系服务于世界五百强企业。如果你也像曾经的我陷于纠结之中,那我推荐你通过这本书学习这套技术。

——Nancy,商业数据分析师

推荐序1

我是财务人员,一个工作了20多年的“老财务”。

2012年,我刚刚调任到销售运营及分析团队,负责250多家门店、230多个SKU(stock keeping uint,库存量单位)、120万个活跃客户的销售运营及预算管理工作。刚到任不久后的某天早上,我接到老板火急火燎的电话:“Sarah,马上查一下上海徐家汇门店前两个月的业绩在全国排名第几、在华东区排名第几?是上升了还是下降了?急用!”我赶紧叫来负责存储数据的同事帮忙,可当她在我面前打开存储销售数据的Excel文件的那一刻,我知道,我遇到大麻烦了。门店的销售数据按月单独存储,原始数据中没有大区信息,要回答老板的问题,至少要打开6个文件,通过公式交叉查询大区信息后,汇总、筛选、排序、对比。20分钟后,我依然无法回复老板的电话。

在办公室中对着满屏表格的你,这个场景是不是似曾相识?

那时的我并不懂什么是ETL(extract、transform、load,抽取、转换、加载),但我清楚,我需要一个工具,能快速将分散在几十个文件的业绩数据、门店归属的大区信息整合在一起,并规范数据的格式和类型,以便能用透视表快速查询和计算任意时间、地域维度下的业绩数据。更重要的是,以后如果老板需要数据,我能够及时反馈和补充足够的信息,这才是财务决策支持的意义。

我们很自然地求助了公司的IT人员,通过SQL(structured query-language,结构化查询语言)和VBA(Visual Basic for applications,一种用于扩展Office应用程序的编程语言)做出了一个小的查询工具。小工具能用,却让我们遭遇了更大的麻烦。

业绩的分析,仅通过渠道排名是不够的。业绩对比要下沉到更细的维度,比如省内、市内、某位销售经理管辖范围内,不仅要有自身的同比和环比数据,还需要将开业时间相近、店面面积相近、城市经济水平相似的门店之间进行跨区横向对比。于是,我们一次次地向IT人员提交修改需求,但修改的速度永远跟不上分析的变化,报告的效率永远滞后于管理的需求。

可能刚刚和IT人员沟通完需求的你,是不是有同样的困惑?

2013年,我意外地读到Liam Bastick关于Power Pivot的文章。他的文章帮我打开了一个新世界的大门,让我和我的团队看到了一个从未想过的、在Excel处理数据的可能。

是的,我是先学会Power Pivot,才迷上Power Query的。下面让我亲切地称呼她们为PP和PQ吧,她们是我最亲密的伙伴和“战友”。

在经历了2013年的PP插件的各种bug之后,大家都在迎接Office2016的到来,我们财务团队可以在Excel中自由搭建模型,随时因分析数据的改变而调整和维护数据了。当实现了建模自由和计算自由之后,所有分析中的困难就集中在,如何在不依赖IT人员的前提下,快速清理不同来源、不同格式的数据文件。

回想起来十分遗憾,我一直没有注意到PQ,直到2016年的某天,我在学习Power BI过程中单击了主界面的“转换数据”按钮。我依然清晰地记得那天,响个不停的电话、不断增加的邮件提醒、过来咨询问题的同事,全被我屏蔽,一切声音似乎离我远去,只剩下我坐在电脑前,震惊到张大嘴巴,单击了PQ中的每一个按钮,从兴奋地惊叫到从座位上跳起来,向身边的每个人分享:我发现了一个宝藏!

在之后的多年间,我不断地推荐更多的财务和业务同人将PQ代入工作之中,每当我带领他们完成一个操作,我都毫无疑问地会听到他们的惊叹声,和当年的我一样。

回想文中开头提到的问题,如果使用PQ,一个财务人员只需要几分钟时间,不用任何代码,即可将几十个文件的数据进行整合和清理。且这几分钟的工作内容可以被无限复用,未来每增加新的数据,只需再单击一下“刷新”按钮,新增数据将瞬间从源数据流向指定的分析结果之中。不需要IT人员介入,任何财务和业务人员都能轻易掌握这门技能。

一旦使用了PQ,所有的重复性工作都将“一键完成”,Excel的使用规则也将从此发生变化,真正达到Liam提到的KISS(keep it simple and stupid)原则。数据处理和分析,从来不是一个枯燥无味、烦琐沉闷的工作,每一个Excel工作者都应该从数据和表格中获得极大的乐趣和幸福感。

尽管PQ的使用方式已足够简单,尽管PQ对业务人员已足够“友好”,但当时我和团队对PQ技巧的认知和探索,主要依赖于微软官网的文档和各种英文文章、博客和社群答疑。在国内,关于PQ的作品更多围绕操作细节和按钮解析,针对PQ的运作逻辑,尤其是针对“怎么才算是清理到位了?”这个底层问题,很少有书能给予深入的解答。

2017年,我在简书上读到了BI佐罗对Power BI底层逻辑的文章,他对“什么是表”的理解让我印象深刻,也让我认识了这位“BI布道者”。他用自己深厚的专业知识和对数据分析极高的热忱,多年来笔耕不辍、创作不断,为我们数据分析人员提供更便捷的学习途径。在他的作品中,相比较技术实现,他更关注如何用浅显易懂的语言,让非IT出身的业务人员听懂和理解技术背后的底层逻辑,从而举一反三,应对纷繁复杂的商业场景。他擅长用商业逻辑来映射和类比技术逻辑,有时使用的商业故事和解读,常常让我们这些“老财务”们自愧不如。

作为PQ、PP和Power BI的忠实用户,我由衷地感谢BI佐罗团队能翻译这本书。书中不仅涵盖了PQ的各种使用技巧,更是自始至终地贯穿着Ken和Miguel的设计思考,让读者在掌握技术的同时更能体会每个技术点背后的精妙逻辑。正是这些思考和逻辑,让PQ不仅仅是一个数据清理的工具,更是一个数据处理思维的全新起点。

近几年,越来越多的企业把数字化转型作为重中之重,很多的理念、概念层出不穷,企业也不惜重金进行软硬件的升级改造。然而,在我和财务同行交流工作痛点的过程中,我惊讶地发现,即使在企业的信息化和数字化技术非常成熟的公司,其财务人员的工作状态和效率对比十年前并未显著提升。烦琐重复的流程、手工维护易出错的报告、上下游之间拆分的数据,仍然让财务人员深陷泥潭。在PQ问世10余年后的今天,我调研了几十家企业的财务团队,PQ的使用人数占比不超过5%。这让我唏嘘不已。

其实,我们的财务和业务团队中不乏优秀的人才,他们不满足于现状,通过VBA、SQL、Python等技术尝试突围。这往往又造成另外一个困局,就是在一个团队中,只有极少数的人才可以掌握高效的数据处理技术,这些人才往往处于企业的一线,有可能无法拉动整个团队的进步,更甚者,团队里的其他人反而更加依赖他们,从而更加忽略自身能力的提升。这些人才的流失,有可能导致整个团队工作的坍塌,如何长期留住他们成为团队管理者的难题。PQ的低代码、易上手、全自助的特点,正是这个困局的最佳解决方案!

作为仍奋战在一线的分析人员,我将这本书推荐给每个在工作中与数据打交道的人,不管你是IT人员、财务人员、人力资源、销售人员、运营人员或者研发人员。我建议你不要只用眼睛看,而是跟随书中的案例,亲身体验一下。我相信你一定也会发出惊叹声,我更相信,这本书将成为你职业生涯中的一个转折。

期待我们在PQ新世界会面。

张丹,能源公司CFO

于广州

推荐序2

这本书的作者是Power Query的专家,而这本书也是该领域得到国际范围的爱好者广泛认可的图书。很高兴看到BI佐罗团队将这本关于Power Query的图书翻译成中文带给国内的读者。

在多年的微软生涯中,从技术支持工程师到管理者的角色转变,我都在围绕着微软的Azure在中国的良好运行展开工作。当然,在这期间与数据打交道是不可避免的。数据处理和分析已经成为日常工作中,工程师们帮助客户解决技术难题的基础能力。作为管理者,我需要从不同的角度分析工程师们的日常工作,为团队和业务的规划及发展做出决策。

在数据处理和分析方面,微软的Excel和Power BI的确是业界一流的工具之一,作为微软内部成员,没有理由不使用它们来提高工作效率。然而,我第一次深度理解Power BI,还是和BI佐罗交流后得到的启发。我意识到Power BI将为IT团队以及所有业务团队的运行管理带来前所未有的便利。其中,Power Query作为重要组成部分,为数据能得以顺利分析提供了重要的基础支持。

如果你是一个Power BI的小白,就像我刚接触Power BI时一样,那么数据ETL一定是你入门时的第一道坎。我已经记不清我在学习和使用过程中向BI佐罗咨询过多少相关的问题,也记不清他向我分享了多少经验。但是,当我看到这本书的内容时,还是很惊喜,其中的很多应用场景依然可以给我新的启发。我相信这本书能够帮助你在学习Excel高级技巧和Power BI时,把你从“泥沼”里拉出来,而且少走很多弯路。同时,如果你已经对Excel或者Power BI有一定了解并且经常使用,我相信这本书的内容也能够填补你的知识盲区,帮助你成为Power Query的专家。

微软已经将Power Query纳入数据处理的多种平台,这项技术是经过真实用户反馈检验的,可以使业务人员不再依赖SQL等技术,掌握数据处理和分析的技能。如果你正准备整理自己的数据,Power Query是正确的选择,而学习Power Query,这本书就是正确的选择。

一旦开始阅读,你就能感受到用Power Query零代码即可整理数据的魔力。

Kyle,微软中国云(Azure China)技术支持经理

于上海

推荐序3

这本书能够让普通的零基础小白成为商业分析大师。

我不是一个拥有技术背景的人,但我的工作中涉及大量的销售分析,需从不同的维度(时间周期、销售渠道、门店类型、地理划分等)切入,因此必须寻求一个高效、便捷、易上手的工具使我从海量的数据中找到“通用解决方案”。通过这本书的译者,我认识了Power Query这位“朋友”,从此便深叹相见恨晚。

Power Query对我来说的功能强大和便利性主要体现在以下几个方面。

1. 一次构建,循环使用。前人种树,后人乘凉,使用Power Query将数据处理完毕,后续每次使用只需刷新数据源即可。

2. 方便修改,有迹可循。树木种好,偶需修剪,Power Query相当于自动记录树木种植和生长的过程,日后可在任意地方嫁接。

3. 直通可视化。可直接连接应用到Power BI桌面版,输出各类高级、精美、可联动的图表呈现给老板或同事,让观者为之惊叹。

再说回到这本书,它对于每一个想要学习和使用Power Query的人来说,都具有超凡的指导意义。

1. 理论解读由浅入深。用通俗的语言告诉读者Power Query背后的原理和技术,即使非技术出身的人也能听懂。这些Power Query的“前世今生”对于普通用户来说是枯燥且不被关注的,但稍作了解便会对使用过程中遇到的一些问题豁然开朗。

2. 各阶段操作翔实。步骤清晰,再加以配图,读来不会有距离感,而是会感到对新手友好。对于自己已经会用的部分,能够深度夯实基底;对于之前未接触到的部分,也会觉得通俗易懂可上手。

3. 案例实践丰富。提供案例用于辅助教学,若你跟随本书实践一遍,相信定能轻松自如应对工作中遇到的大多数情况,甚至超出大部分人的日常数据分析与处理工作的需求。

对于学习和运用Power Query,我仍然处于摸索的阶段。我认为可以将这本书和译者的博客,当作产品手册和词典来使用与查询:初读可对Power Query有完整的了解并学会使用,此后再遇到各类问题可据此来寻找答案,裨补阙漏,必能有所广益。

肖伦,LVMH集团数据分析师

于上海

译者序

简而言之,数据准备很难,因为世界上的数据是混乱的。许多分析师用80%的时间做数据准备,用另外20%的时间抱怨数据准备有多难。

怀着充分尊重原作者的心态,所有作为译者可以说的话都只会出现在这篇译者序中。

这是我主持翻译的第二本书,除了有那种作为读者翘首企盼一本好书的心态,我还真正多了一份不同的责任感,那就是:本书的译文有没有错误,有没有误导;甚至在反思这是不是一本有意义的书,值不值得出版社投入资源,以及现在的你是不是值得花费宝贵的时间来看这些文字。

现在我可以负责任地回答:与数据打交道的小伙伴,人人需要本书。进一步讲,不论这是你第一次了解Power Query,还是你已自认为熟练掌握相关技艺,本书都是必备的。说白了,对于任何一个Excel用户,本书必备。

以下整合自微软官方或Power Query官方的内容,在宏观逻辑上对本书进行整体解读,以让读者更好地把握内容并提升兴趣。

背后基因

在“数据时代”,处理数据的能力将同样与计算机、英语、驾驶、演讲等相关的技能一样,成为普适性要求。问题来了:我们不是专业技术人员,也不是程序员,更不是传统意义上的SQL数据库专家,我们作为普通业务人员,该如何应对数据时代的数据挑战?

以“赋能全球每一人”为己任的微软,是必然要用实际行动来回答这个问题的,其答案就是你现在看到的:经过12年(Power Query始于2010年,作为Excel 2010插件)进化的Power Query(截至2022年)。

按照微软的描述,Power Query是其“首席”自助式数据准备技术,可为非技术用户提供直观且高度可视化的体验,以便轻松连接到数百个数据源,用一致的习惯和方法清理和重塑数据,无缝组合多个数据源在后续场景(例如数据报告、分析、低代码程序等)中使用。

这种强大技术的“设计基因”非常重要。本书作者在前言中提到:Power Query的定位就是为Excel用户而打造,让他们永远完全不需要去学或用SQL。也就是说,由于其广泛可用性和强大特性,普通业务分析师可以直接获得企业级数据工程师的能力,这就是其变革意义所在。换句话说,在其他人还在学习如何通过Excel函数、VBA、SQL或Python处理数据时,选择了Power Query的业务伙伴将直接从中获益,并达到最高性价比。

Power Query团队在微软被称为“Citizen Data Integration Team”(公民数据集成团队),也可见其定位是要打造人人可用的数据能力工具,并将携带该基因在后续演化中一如既往地立足于业务伙伴。那么,业务伙伴在该工具上的学习,则是一项可持续受益的长期投入。对Power Query有些许了解的伙伴都应该知道,最初Power Query在Excel中以插件形式存在,按需安装。而现在则以原生形态存在于Excel的“数据”选项卡中,甚至连著名的Power Pivot都没做到,可见Power Query之于Excel用户的意义之重大。

那么,应该如何更好地学习Power Query呢?

本书特色

有很多关于Power Query的图书。本书之所以是该领域的经典,不仅因为作者本身的专业程度高,更重要的在于以下3个方面。

第一,平衡性。两位作者经验背景互补,是IT和业务的完美组合。

本书并非简单粗暴的截图或单击流的罗列,也不是枯燥的IT技术名词堆砌或公式排列。在本书中,读者可以深深感受到作者如何照顾业务伙伴的操作想法以及手把手操作的用心。同时,本书还有清晰、专业的解释辅助,这让从小白、业务用户到IT用户都能从中获益。这种平衡很难做到,而作者无疑做出了完美示范。业务伙伴读着不难,IT用户读着有“干货”。

第二,系统性。本书给出了所需的抽象思维框架和系统化思维框架。

本书并非停留在介绍某种效果如何实现的简单表述,所谓“万变不离其宗”,在本书中,作者给出了高屋建瓴的系统化思维框架。例如,第2章就直接给出了查询的架构拆分设计思维,让人读之有种成为数据架构师的成就感,并迫不及待想将这些思维赶快“优化”到自己的工作中。

第三,实用性。本书给出了可以直接解决各种问题的解决方案模板。

本书并非简单功能大全或凸显神奇技巧的书,作者汇集了来自企业实战中的精华案例,例如日期表的构建、用宏实现自动刷新等。对照本书,多数内容还配有Excel或Power BI的实现示例文件,读者可以直接使用。

因此,不论你是小白、业务用户,还是IT用户,都可以各取所需。

阅读建议

阅读本书的建议是:作为自己的Power Query 教程来精读。

如果你想知道Power Query的价值,你应该反复阅读作者前言,去感受他们的激情、生活的改变和本书中凝练的情怀;如果你想了解该领域的“大咖”,你应该继续反复阅读作者前言,其中出现的每个名字背后几乎都有一个专业博客,里面都是“宝藏”,可以作为扩展部分,便于你查找本书没有包括的内容。

如果你还在为学习什么工具而纠结(此刻我想你已经不会了),你应该仔细阅读第0章。

本书主要内容从框架上可以分为三大部分。

第一部分,第0到14章,从零开始介绍如何用Power Query解决各种数据问题。

第0、1、2、3、4章,主打“筑基”,给出了必需的基础知识和通用查询框架,以及怎么纠正你可能会犯下的错误和如何在Excel和Power BI之间切换。

第5、6章,主打导入数据,列举了处理办公文件(如平面文件、Excel文件)的各种规律,其中一定有你根本想不到的知识。

第7章,主打常用转换,列举了“变魔方”的基本操作:透视、逆透视、拆分、筛选、分组等。

第8、9、10章,主打合并数据,展示了纵向追加、批量合并、横向合并的三大场景模式。

第11章,主打连接数据,展示了如何连接网络数据,但建议仔细阅读11.4节。

第12章,主打数据库,展示了在公司数据库支持下可以实现的特色功能和优化。

第13章,主打转换表格数据,这是本书精华所在,更深入地展示了如何综合使用透视、逆透视、分组来应对多层数据格式。

第14章,主打条件逻辑,帮助读者掌握编写条件逻辑语句的技能,从而使用户用更少的步骤执行更复杂的逻辑。

第二部分,第15到18章,深入Power Query的核心M语言和引擎。

第15章,主打值系统,帮助读者更好地理解各种复杂数据是怎么在M语言中被无一遗漏地“安排明白”的。

第16章,主打M语言,帮助读者更深入地理解查询计算,并借助M语言的能力,更直接地实现想法或优化原有解决方案。

第17章,掀起高潮,主要介绍参数及构建自定义函数的方法,读者领会后会更加自信。

第18章,提供日期表模板礼包,对各种复杂的日期问题全部给出模板(不会不要紧,都能直接使用)。

第三部分,第19到20章,讲述优化与自动化。

第19章,主打查询优化,即对查询的各种细微问题以及如何优化的探讨,帮助读者步入数据处理专家之列。

第20章,主打自动化,展示了自动刷新的方法,这样你可以思考省出的时间用来干什么。

三大部分步步推进、层层深入,按照这个脉络学习,你可对整个知识体系了然于胸,你会惊叹于作者把本书安排成如此适合阅读的线性结构。本书的价值除了在于讲解Power Query,也在于展示了如何系统化地解构一套知识体系。

现在,你就能明白这句话:与数据打交道的小伙伴,人人需要本书。本书不仅讲授知识,更用解构知识体系的实践过程为分析师做了最好的示范。

你是不是已经迫不及待地想象自己即将走上“数据巅峰”,可以解决一切难题了?

在正式开始学习之前,最后要提醒大家的是,自助式商业智能分析的流程大致分3个步骤:数据准备,数据建模,数据可视化。Power Query可以帮助每个人完成好且仅可以完成好第一步,并不是所有的工作都应该在Power Query中完成,应该根据场景,把适当的工作放在相应步骤。

忠告大家:数据准备的终极目标在于且仅在于重塑标准或优化的表格,仅此而已。而如何基于标准和优化的表格去发现数据价值的问题,将在数据建模和数据可视化领域研究解决。但这丝毫不影响本书的价值,事实恰好相反,为了构建更强大的数据模型以及实现简洁的数据可视化,你会感谢自己在数据准备阶段花费的每一分精力。不然,你很可能就会成为他们中的一员:用80%的时间做数据准备,用另外20%的时间抱怨数据准备有多难。

开始旅程

心怀感激,本书凝练了作者以及作者背后整个Power Query领域大咖的经验和精华知识。在翻译过程中,我完全可以感受到作者的情感以及想传达给广大读者的知识、体会和智慧。我试着用同样富有感情的文字传达准确的含义,这的确是超乎能力范畴的挑战。在此过程中,我得到了社区小伙伴的帮助,大家一起学习和校对,在此特别感谢大家。但即使如此,受水平所限,我难以完全传达作者之全部精神。任何文字的疏漏和表达的差池都是我的错误,恳请大家用包容的态度阅读,也请你在发现错误时,可以继续帮助我修正它们。

关于本书翻译问题的修正或未能描述详尽的内容,可以在这里找到:“excel120.com/#/pq/?f=book”。我们也将基于本书内容,构建Power Query精华知识学习体系,欢迎你加入一起学习。

本书可以帮你打开Power Query世界的大门,如果你迫不及待地想看到如何完成大量数据处理任务并使其自动化,开玩笑地说就是“一个人干完一堆人的活”(这种能力令人向往和赞叹),就请翻开第一页,开始这一旅程吧。

BI佐罗 

2022年5月7日

前  言

生活因此而变

肯(Ken)的故事:“咖啡和Power Query”

这是在我2013年11月Outlook日历上的会议名称。当时在一次微软MVP(most valuable professionals,最有价值专家)峰会期间,该产品的名字刚从Data Explorer改成Power Query,我和Power Query团队的米格尔•略皮斯(Miguel Llopis)以及费萨尔•穆罕默德(Faisal Mohamood)一边喝咖啡,一边从Excel用户的角度谈论该产品的优点和缺点。

在那次谈话中,我告诉他们:“Power Query很好,但它只是SQL Server Management Studio(SSMS)的一个糟糕的替代品。”我很清楚地记得这些。我长期使用SSMS和Power Query,但不管怎么做,都发现Power Query仅能完成SSMS部分工作(不是所有)。这令人沮丧,我一直在试图研究用Power Query实现同样效果,但是做不到。

我直言不讳地告诉了他们这些,记得他们当时大概是这么回复的:

“肯,这个工具并不是为了替代SSMS而诞生的,它的用户定位是Excel用户,我们的目的是让他们永远完全不需要去学或用SQL。”

熟悉我的人都知道,我很少会被一句话“堵死”,但那次真的如此,这完全打破了我认知世界的平衡。

要知道,我不是一个普通的Excel专家,可以说我是SQL的“骨灰级玩家”,对VBA也非常精通,同时还会用VB.NET、C#、XML和其他一些编程语言。虽然我喜欢技术和挑战,但是我能使用众多编程语言的真正原因来自实际应用,由于那些需求常常很复杂,需要有痛苦的深入探索过程让我真正掌握这些技术。

那次谈话彻底地改变了我对Power Query的看法。我开始重新思考,并以新的眼光来看待它。我开始按照它的本意来使用它,通过Power Query的用户界面驱动一切,尽可能避免编写SQL代码。你知道吗?它开始更好地工作,我开始探索出更多“玩法”,发现它实际上可以帮助我实现以前从来做不到的事。

我爱这个工具,不仅仅是因为我可以用它来做什么,更重要的是,它可以让业务专家们零代码轻松地完成各种工作。的确,可以直接使用这个工具内置的编程语言层,但那并不是必须的。这才是让Power Query真正与众不同的原因:这个工具定位于业务专家,提供了简单、直接的用户交互设计(在我看来是最好的),只需要简单的单击就可以自动生成代码。业务用户只需简单培训就可以迅速掌握,用之来建立复杂的解决方案,甚至直接带来业务价值。

就我个人而言,Power Query使我能辞去全职工作,建立自己的事业。我们提供了现场培训(线下或线上),以及打造了Excel中的插件(Monkey Tools)来帮助用户在使用Power Query和Power Pivot时更加轻松。当然,最让我兴奋的是,每次看到有人用这个工具极大改善了他们原有的工作流程、节省大量时间而发出赞叹的时刻。

米格尔(Miguel)的故事:新的旅程

在2013年以自由职业者的身份开始创业之前,我在过去的工作中被称为“超级用户”(the power user)。离职后,我依然带着这个绰号,这也是我将我的个人视频频道和现在的新网站命名为“超级用户”(The Power User)的原因。

我不是IT人员,但我常常是那个将技术落地的人。这是根据我们能用的技术有多先进,以及能从现有的工具中获得多少价值决定的,而且常常就是基于Excel(甚至不是最新版本)的。使用透视表和Excel公式已然成为我的“第二本能”。

我开始接触Power Query是在2013年。我不记得我是怎么接触到它的了,只记得用它可以很容易地过滤数据、删除列、提升标题和取消列等,这些操作已经成为我日常工作中的习惯并产生了巨大的影响。因为我没有VBA的知识(现在依然没有),所以Power Query实际上为我打开了全新的数据处理方法大门。这在以前是不可想象的,我不再需要成为VBA或SQL专家,我只需要Power Query就够了,那些数据准备问题已然可以迎刃而解。

对我来说,Power Query的用户界面就像一种“黑科技”。它能让你在操作最重要的数据资源时非常直观地看到结果。然而,它的确是一种新的工具以及内置的编程语言,网上几乎没有关于如何充分利用Power Query的内容或信息,所以我决定开始一个新的旅程,去成为这个领域的“绝对最好”,并开始积累关于它的内容。

通过这些内容创作(博客、视频、电子邮件等),我认识了Power Query领域的大咖,像罗布•科利(Rob Collie)和比尔•耶伦(Bill Jelen)以及他们随后介绍我认识的肯。虽然我和肯从未线下谋面,但由于我们的经验背景完全是业务和技术互补,且赞叹于Power Query的强大能力,还有成为“布道者”的想法,于是我们决定一起合作,开始了一个叫作PowerQuery.Training的项目,该项目最终促成了本书的第一版。在编写本书的第一版的那段时间里,甚至在那之前,我们就意识到Power Query的真正潜力,以及它能如何更好地改变大多数Excel用户的生活。就自助式商业智能分析工具而言,我们认为Power Query已经是并会继续是重大的技术突破。

距本书第一版出版已经有一段时间了,许多读者、朋友和同事都提醒其中的一些图片和内容在工具中已经改变了,但是这些内容仍然能为他们打下坚实的基础,让他们大开眼界,看到Power Query的潜力。我们的初衷从未改变,就是让这个工具改变人们的生活,正如它改变了我们的生活一样,让数据准备的过程更加简单、直接。

从2015年到2021年,肯和我从读者那里得到了越来越多的反馈,听到了很多关于Power Query如何帮助他们改变生活的故事,不管是直接还是间接。每每听到这些,我们都感到非常欣慰,这也是我们决定编写本书第二版的原因。我们希望能做得更好,为此,我们需要等待合适的时机。

作者致谢

与任何图书一样,伙伴们的帮助对本书的出版有相当贡献。如果没有如下伙伴的帮助,本书就不会有如今的结果。

比尔•耶伦,我们不能想象还能有谁比比尔更包容。编写一本书需要花费大量的时间和精力,而平衡这项工作和我们日常业务的关系是很困难的,尤其是当本书是基于像Power Query那样快速变化的技术时。在我们把初稿给他的时候,距离我们最初承诺交稿的时间已经延迟了很久。比尔以平和与理解的态度接受了每一次的延迟和变化,并且定期鼓励我们完成本书。

米格尔•略皮斯,从第一次喝咖啡的时候开始,米格尔就一直是我们在微软的得力合作伙伴,甚至我们开玩笑说,他的全职工作就是回复肯的电子邮件。从第一天起,他就对我们给予了极大的支持,对我们关于功能设计的提问、bug提交等都一一进行回应。

柯特•哈根洛赫(Curt Hagenlocher)、埃伦•冯•莱厄(Ehren Von Lehe)、马特•马森(Matt Masson)以及Power Query/Power BI团队中所有回答过我们的问题和回复过我们的邮件的人们,我们十分感谢你们的帮助,你们的建议对于本书的完成有着不可或缺的功劳。

温•霍普金斯(Wyn Hopkins)、克里斯蒂安•翁焦尔(Cristian Angyal)和马特•阿灵顿(Matt Allington)对一些我们重点关注的内容给予了反馈和意见,并帮助我们使它们正确无误。

还有无数的人在我们的博客和视频中发表评论,参加我们的培训课程,并与世界范围内的其他伙伴分享他们自己解答某些问题的创意、展示不同的和更好的方法。正是因为有了你们,我们在创作本书的过程中不仅探索了新的方法、尝试了新的技巧,还收获了很多乐趣。

肯的致谢

我们的上一本书始于2014年3月6日的一封电子邮件,我认识了米格尔•埃斯科瓦尔(Miguel Escobar)。他有了写一本关于Power Query的书的想法,尽管我们从未见过面,而且几年内都不会见面,但他的想法和激情对我产生了深刻的影响。这促成了本书的第一版M is for Data Monkey,以及一个在线Power Query工作坊和我们的Power Query学院,当然,还有现在本书的第二版。如果没有他的灵感和对这些项目的投入,就不会有现在的结果。他的热情持续推动着我在Power Query方面的进步,特别是在使用M语言的时候。我到现在都很好奇他似乎能做到每天工作24小时。

如果没有我的家人的支持,本书将永远无法完成。我的妻子迪安娜(Deanna)不仅是我的坚强后盾,还对本书的每一页进行了最初的校对(好几遍),修正我的拼写,清理我有时写下的奇怪的措辞(当我的大脑比我的手指更快速运转时)。我还要感谢我的女儿安妮卡(Annika),她教会了我所有关于牛津逗号的知识[包括泰勒•斯威夫特(Taylor Swift)不使用逗号的事实],我真希望她能在手稿提交的72小时之前与我分享这些智慧a

a① 牛津逗号是一种逗号使用的语法样式,表示这个女儿很严谨,而老爸已经没时间改了,是作者幽默的言辞。——译者注

现在,我们有一个Excelguru团队,在我把自己关起来完成本书手稿时,他们坚守岗位。丽贝卡•萨克斯(Rebekah Sax),她优雅地处理着我们扔给她的一切;阿卜杜拉•阿尔哈比(Abdullah Alharbi),为Monkey Tools的开发在前期提出过想法并用代码实现;吉姆•奥尔斯(Jim Olse),我的朋友、导师和前经理,现在负责我们的会计工作。没有你们每一个人的努力,我们不可能有现在的成功,也不可能完成本书的创作。

任何在Excel团队工作的人都可以告诉你,我对产品的反馈相当热情。我相当肯定,没有人比盖伊•亨金(Guy Hunkin)更能有这种感受了,他的生活就是在Power Query和Excel中切换,负责这两种技术的整合。盖伊无尽的耐心让我非常吃惊,我不知道怎么感谢他,他总是以专业而非个人的态度对待我的反馈。除了我们的电子邮件和电话之外,我很荣幸曾邀请盖伊来到我们的一些培训现场,他做了大量的记录,其中的一些内容对Power Query的优化起到了贡献作用。

最后,我要感谢我们的商业伙伴马特•阿灵顿。他在2019年年中加入了米格尔和我的团队,来扩大Power Query学院和我们的业务范围。从那时起,我们重新建立了Skillwave平台,对外提供相关培训,包括Power Query、Power Pivot和Power BI等主题。马特多年来一直是我们的朋友,他对本书给出了一些特别重要的关于时间安排和优先次序的建议,这些建议对我们完成本书有很大帮助。

米格尔的致谢

我想感谢正在阅读本书的你。是的,是你!你是我们最关键的人,我们写本书的目的就是给你提供资源,使你能够成为一个“数据英雄”。我想提前感谢你让这个世界变得更美好,至少在数据和商业决策方面。

我还要感谢世界上所有对本书和Power Query相关工作表示支持的Excel和Power BI从业者。我很荣幸能够成为这个全球社区的一部分,我现在邀请你加入我们,一起来使用这个工具。

我从不会忘记我生活中的最重要部分:朋友和家人。当然,你们人太多了,我就不把名字在这里列出来了,万一不小心落下某个人的名字,我就惨了。

并且我需要特别感谢肯,感谢他对我莫大的支持,尤其是他能够听懂我的“西班牙式英语”,还会将它们更清晰地转述出来。

另外,特别感谢Power Query团队的柯特•哈根洛赫、埃伦•冯•莱厄、马特•马森和米格尔•略皮斯。自2013年以来,我一直在向他们发送关于Power Query的问题、错误、“咆哮”、建议、想法和抱怨,直到2021年7月4日,他们仍然没有忽视我或让我闭嘴。

如果你需要一些关于如何耐心对客户服务的课程,有机会你应该好好和他们聊聊,他们才是真正的MVP。

忠实的支持者

你们当中有很多人于本书在电商平台上架时就预购了它,或在我们的网站中注册了会员,你们每个人都看到了我们要写本书的承诺,并等待了很长时间才收到它。谢谢你们的支持和耐心。我们真心希望你们觉得这漫长的等待是值得的。

最后

感谢帮助我们校对本书的会员伙伴,你们在非常紧张的时间内帮助我们一起校对了本书。我们特别要向塞思•巴伦(Seth Barron)、兰达尔•麦克亨利(Randall McHenry)、斯坦顿•柏林克斯(Stanton Berlinksy)、约翰•哈克伍德(John Hackwood)、米切尔•艾伦(Mitchell Allan)、尼克•奥斯代尔-波帕(Nick Osdale-Popa)、迈克•卡尔达什(Mike Kardash)和莉莲(Lillian)表示感谢,他们每个人都为本书提交了不少拼写和语法方面的修正。

本书是为你写的,目的就是帮助你掌控数据。我们真心希望它能做到,让你发现它是你所购买过的图书中最能帮助你提高生产力的。

我们还要感谢你,你购买了这本书,信任我们的教学方法,并成为了Power Query大家庭中的一员。

资源与支持

本书由异步社区出品,社区(https://www.epubit.com)为您提供后续服务。

资源获取

本书提供如下资源:

示例文件;

思维导图。

要获得以上资源,您可以扫描下方二维码,根据指引领取。

提交勘误

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。

当您发现错误时,请登录异步社区(https://www.epubit.com),按书名搜索,进入本书页面,点击“发表勘误”,输入勘误信息,点击“提交勘误”按钮即可(见下图)。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。

与我们联系

我们的联系邮箱是contact@epubit.com.cn。

如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们。

如果您所在的学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。

关于异步社区和异步图书

异步社区”(www.epubit.com)是由人民邮电出版社创办的IT专业图书社区,于2015年8月上线运营,致力于优质内容的出版和分享,为读者提供高品质的学习内容,为作译者提供专业的出版服务,实现作者与读者在线交流互动,以及传统出版与数字出版的融合发展。

异步图书”是异步社区策划出版的精品IT图书的品牌,依托于人民邮电出版社的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、人工智能、测试、前端、网络技术等。

第0章 导言:一场新的革命

0.1 数据分析师的常见场景

无论是进行基本的数据输入、建立简单的报告,还是使用VBA、SQL或其他语言设计全面的商业智能解决方案,都会在一定程度上与数据打交道。虽然需要的技能各不相同,但通常要完成的总体工作如下。

1. 从数据源中提取数据。

2. 根据实际需求对数据进行转换。

3. 纵向追加合并数据表。

4. 将多个数据表合并(连接)在一起。

5. 重塑数据结构,以便更好地进行分析。

作为信息工作者,无论在正式的工作描述中如何称呼,其工作都是“收集数据”“整理数据”并将其转化为信息。这些工作可能并不“高大上”,却是企业中必不可少的,如果这些工作没有正确地进行,任何分析的最终结果都是不可信的。

这项工作多年来涉及的工具一直是微软的Excel。虽然像Excel这样的工具有强大的功能来帮助分析师处理数据,但将原始数据转换为可使用的数据——这一课题一直是一个挑战。事实上,很多人经常会在这个问题上花费大量的时间:为分析准备数据,将其转换为合理的表格形式,以便后续的分析和报告使用,如图0-1所示。

图0-1 信息工作者的主要工作之一就是奋力处理数据

对那些做过类似工作的人来说,他们知道,他们其实不仅仅是信息工作者那么简单,而更像是数据“魔法师”。数据几乎不可能恰好是“干净”的,往往相反,因此可能需要花费数小时清理、过滤和重塑来使数据成为更合理的格式。

一旦数据准备就绪,就可以轻松地进行大量强大的分析。处理数据时有很多方式来“施展魔法”,包括条件格式、筛选器、数据透视表、图表和切片器等。

当然,准备好干净的数据往往是最困难的部分。通常,起初得到的都是混乱的数据,它们被保存在文本文件或Excel文件(如果非常幸运,可能是一个数据库)中,分析师必须以某种方式清理这些数据,并使它们成为能够使用的合理形式。最终目标很简单:尽快将数据转换成表格形式,同时确保它符合实际的需求,并且是准确的。每个解决方案都需要不同来源的数据的不同组合,而这个过程就需要“魔法”,如图0-2所示。

图0-2 “魔法”:数据在被使用前真正发生的事情

0.2 “魔法”的好处和危险

真正的Excel高手会使用许多不同的技术来实现他们的“魔法”:有时单独使用,有时与其他工具结合使用。

这些“魔法”的类型如下。

1. Excel公式:这是“魔法师”使用的首选技术。利用他们的公式知识,使用VLOOKUP、INDEX、MATCH、OFFSET、LEFT、LEN、TRIM、CLEAN等函数。虽然公式可被大多数Excel用户使用,但公式的使用难度因用户的经验和水平而异。

2. VBA语句:这种强大的语言可以帮助用户对数据创建强大而动态的数据转换。VBA技术往往被高级用户使用,因为真正掌握它们需要有一定的知识储备和技能。

3. SQL语句:这是另一种用于操作数据的强大语言,它对于选择、排序、分组和转换数据非常有用。然而,现实情况是,这种语言通常也只有高级用户才会使用,甚至许多Excel专业人员都不知道从哪里开始使用它。尽管每个Excel专业人员都应该投入一些时间来学习它,但这种语言通常被认为属于数据库专业人员的领域。

所有这些工具都有一些共同点:从本质上说,它们基本上是分析师仅有的可用于数据清理和转换的工具。

尽管这些工具很有用,但其中也有两个严重的弱点:不仅需要花费大量时间来处理问题,还需要花费大量时间来掌握这些工具。

虽然懂得相关技术的“魔法师”确实可以使用这些工具来构建自动化解决方案,并把原始数据处理干净,但这需要多年高级语言编程经验,以及大量的时间来确定、开发、测试和维护解决方案。导入时数据格式的一个小变化就需要调整原有方案,或者增加一个新的数据来源也是十分可怕的,因为相关解决方案十分复杂。

在一个公司里有一个真正的“魔法师”存在,其实反而是一个隐患。这个人可能的确会建立一个很好的解决方案,甚至直到他离职后还能运行、使用。但公司的其他人并不了解这个解决方案,当出现问题时,可能没有人可以搞定它。

从另一个角度看,许多负责数据清理工作的人也没有时间,或没有机会学习这些先进的“魔法”技术。虽然理论上的确可能有一个稳定的系统在维护下不会出现崩溃的问题,但同时可能需要花费几小时、几天、几周、几个月或几年的劳动时间和大量的金钱,来定期进行重复的数据导入和清理。

可以计算一下,公司每月有多少时间只是在Excel里执行重复的数据导入和清理任务。将这些时间乘公司的平均工资,再按所处行业在世界范围内的公司数量,这不就算出了世界的整体成本吗?很容易发现,这种成本是惊人的。

所以需要一个更好的方法,一种容易学习的工具,其他人只需接受有限的指导就能掌握和理解。这种工具应该可以让用户自动导入和清理数据,这样用户就可以专注于将数据转化为信息,为公司增加真正的业务价值。

这个工具终于来了,它就是Power Query 。

0.3 未来的改变

Power Query可解决刚才描述的问题。它非常容易学习,并且拥有极直观的用户界面。同时它很容易维护,因为它显示了操作流程的每个步骤,还可以在后续对之进行查看或修改。而且,在Power Query中完成的所有操作都可以通过单击几次鼠标来刷新。

在有了多年使用“魔法”技术构建数据解决方案的经验后,我们发现Power Query才是真正改变了游戏规则的工具。原因有很多,其中很明显的一点是学习效果立竿见影。

当涉及导入、清理和转换数据时,用户其实可以比学习Excel公式更快地掌握Power Query,而且它比VBA更容易处理复杂的数据源,如图0-3所示。

图0-3 Power Query被设计成一个易于使用的数据转换和操作工具

Power Query的易用性解决了许多企业面临的数据“魔法师”陷阱。即使一个高水平的数据“魔法师”在Power Query中做了一些复杂的设计,普通用户也可以在短时间内掌握并能够进行维护或修复,这往往只需要几小时,而不是几周。

尽管对真正的Excel专业人士来说这很难理解,但许多用户实际上并不想学习复杂的Excel公式。他们只想用一个工具连接到他们的数据源,单击几个按钮来清理和导入数据,然后构建他们需要的图表或报告。正是这个原因,Power Query的用户范围将比那些需要精通公式才能工作的软件的用户范围更广。菜单驱动的界面,使用户在很多情况下不需要学习任何一个公式或一行代码,如图0-4所示。

图0-4 Power Query的易用性与任何经典工具相比都将影响更多的用户

毫无疑问,Power Query将永远改变Excel专业人员处理数据的方式。

需要明确指出的是,这里并不是在贬低Excel公式、VBA或SQL的价值。事实上,它们是分析师不能缺少的工具。除数据转换用途之外,Excel公式可以被快速使用,迅速完成许多Power Query做不到的事情。VBA在性能方面也有它的优势,可以让分析师调用其他应用程序,创建程序来读写数据,以及做许多其他事情。而由SQL专家编写的SQL查询总是比Power Query创建的查询性能更好。

然而,在简单地连接、清理和导入数据的场景下,Power Query依然有更高的性价比,可使分析师以更少的时间投入更快地实现自动化。而且随着Power Query团队对工具的不断改进,SQL和Power Query生成的查询之间的性能差距也在逐渐缩小。

其实,Power Query是不局限在Excel中使用的。以前如果考虑在Excel中实现清理、转换和加载数据的功能,那么这些功能就必须保留在Excel文件中,或者设计一种Excel之外的全新语言来实现,这样做的弊端是无法复用。但是Power Query很好地解决了复用问题,同样的Power Query技术在Excel、Power BI桌面版、Power Automate和Power BI Dataflows中都可以使用。所以,对于在Excel中使用Power Query构建的解决方案,可以简单地将其导入Power BI桌面版中,或者将其复制到Power BI Dataflows中进行复用。

除了创建可移植和可扩展的解决方案之外,这也意味着数据专业人士可以学习一种新的可移植技术,并在各种不同的软件产品中多次重复使用。如果考虑未来的发展,也许Power Query还会超越目前这些范畴。

而且,由于Power Query与其他软件的集成性,用户可得到更强大的效果。例如,可以用Power Query实现类似SQL查询,在Excel中用VBA刷新它,实现自动化;或者通过Power BI使用计划刷新功能,将Power Query查询直接加载到数据模型或实体中;等等。

0.4 为什么说Power Query有“魔力”

在构建强大而稳定的解决方案时,数据专家面临的首要问题是需要一个可以提取(extract)、转换(transform)和加载(load)数据的ETL工具,但普通业务用户很可能从未听说过这种工具。ETL如图0-5所示。

图0-5 ETL:提取、转换、加载

Power Query可以被认为是一个ETL工具,它可以从几乎所有类型的数据源中提取数据,根据需要对之进行转换,然后加载。这对要处理数据的业务用户来说又意味着什么呢?

0.4.1 提取

提取可以针对一个或多个数据源,包括文本文件、CSV文件、Excel文件、数据库和网页页面。此外,Power Query团队建立了许多可连接到不同数据源的连接器,这些数据源在其他情况下很难获得,如Microsoft Exchange、Salesforce和其他几乎让人从未想过的软件即服务(software as a service,SaaS)数据源。当然,还有用于那些还没有被团队覆盖的数据库的ODBC(open database connectivity,开放式数据库连接)和OLEDB(object linking and embedding database,对象链接和嵌入数据库)连接器。无论数据现在存储在哪里,都有很大的机会可以用Power Query提取和使用。

0.4.2 转换

当谈论转换时,它包括以下各个方面。

1. 数据清理:包括从数据库中过滤数据,到从文本文件导入中删除空白或“垃圾数据”。其他用途包括将大写字母转换为小写字母,将数据拆分成多列,以及正确地导入不同地区使用的日期格式。无论需要对数据进行怎样的后期使用,首先都必须将数据清理为干净的格式。

2. 数据整合:如果在Excel中使用VLOOKUP、INDEX、MATCH或较新的XLOOKUP函数,可能需要整合多个表的数据。Power Query可以以纵向或横向方式连接表,允许纵向追加表(创建长表),或横向合并表(无须写VLOOKUP函数),还可以执行其他操作,如分组等。

3. 数据增强:包括添加新列或对一组数据进行计算。从执行数学计算(如通过销售数量×销售价格,创建销售额),到根据日期列转换新的日期格式,这些在Power Query中都变得非常简单。事实上,通过Power Query,可以根据Excel单元格、SQL数据集甚至网页中的值来动态地创建表。如果需要一个从当天算起的5年前的动态日期表呢?进一步使用Power Query即可。

Power Query真正令人惊讶的是,许多转换可以通过菜单命令来执行,而不需要写公式或代码来完成。这个工具是为终端用户建立的,不需要任何编码就可以执行在SQL或VBA中无比复杂的转换。这是一件很棒的事情。

不过,对那种喜欢躲起来“捣鼓”公式或代码的人来说,一样可以得到满足。虽然不需要学习编程,但可以用Power Query内部一种叫“M”[1]的语言记录一切(开玩笑地说,A到L语言命名已经都被占用了,所以轮到了“M”)。而对那些决定使用这种语言的专业人员来说,可以建立更有效的查询,做更多惊人的事情。

[1] M是mashup的简称,mashup的意思是混合,意为将数据有效地混合到一起。——译者注

无代码、低代码或专业代码:选择完全取决于用户。但无论选择哪种方式,至少在无代码世界中能做这么多事情是很令人震撼的。

0.4.3 加载

由于每个支持Power Query的工具都有不同的用途,可以把数据加载到的地方也不同。

1. Excel:加载到Excel中的表[2] 、Power Pivot数据模型,或者只保持连接而不加载数据。

[2]  很多人称之为“智能表”。——译者注

2. Power BI:加载到数据模型,或只保持连接而不加载数据。

3. Power Automate(Flow):加载到Excel工作簿(预计将来会有更多加载选项)。

4. Power BI Dataflows:加载到Azure Data Lake Storage、Dataverse,或只保持连接而不加载数据。

“连接”可能看起来有点儿神秘,但它只是意味着创建一个可以被其他查询进一步使用的查询,本书后文会更充分地探讨它的使用。

数据的加载位置并不是这个ETL工具的加载过程的重要部分,重要的是它是如何加载,以及如何再次加载的。

Power Query的本质是一个宏记录器,当用户通过提取和转换步骤工作时,它可以跟踪用户操作过的每个步骤。这意味着用户只需定义一次查询,并确定想把它加载到哪里。在完成这些之后,只需刷新查询,如图0-6所示。

图0-6 定义一次转换过程并随时使用

请考虑一下这个问题。导入某个文本文件,这个文件在过去需要每个月花20分钟来导入和清理,然后才可以使用。Power Query使之变得简单,在10分钟内完成同样的任务,在第一次使用它时就节省了10分钟。然后下个月来刷新一下,就直接有了一个新文件。

至此,不难发现用户不会像以前一样卷起袖子,搞20分钟的Excel“盛宴”,向Excel展示自己是可以搞定它的“大师”,每月不停地重复再重复。这种改变,难道不令人兴奋吗?

在这种情况下,只要把新的文本文件保存并覆盖旧的文件,然后在Excel中单击“数据”“刷新所有”(或者在Power BI中单击“主页”“刷新”)就可以完成所有工作——这可是认真的。如果用户已经把文件发布到Power BI或者在Power BI Dataflows中设置了它,还可以直接安排定时刷新来避免这些麻烦。

这就是Power Query的真正力量:易于使用,易于重复使用。它把用户的辛苦工作变成了一种投资,并在下一周期为用户腾出时间来做更有价值的事情。

0.5 Power Query和产品体验的整合

Power Query是一项正在改变世界的技术。早在2010年,它就作为一个插件正式开始在Excel中被使用,现在它已经在超过8种不同的产品中被使用,从Excel和Power BI桌面版,到SQL Server Integration Services(SSIS)、Azure数据工厂等,并且就在你阅读本书时,它可能又被集成到新的数据相关产品中了。

Power Query所产生的影响力是惊人的,它极大地改变了许多使用不同软件产品的分析师的生活。当然,被集成到这么多产品中也是有代价的,Power Query团队每天面临的困难是在所有这些产品的集成中寻求功能和体验的平衡。他们必须在一致性和承载Power Query功能的产品所特有的功能之间找到最佳平衡点。

0.5.1 Power Query的组件

为了便于理解,可以把Power Query想象成一个“洋葱”。它有很多层,这些层实际上是组成Power Query的核心组件。

大多数人在观察事物时,都只看到事物的表面。随着本书的进展,你会发现在Power Query背后发生的很多事情。这里的M代码对用户来说是可见的,但是用户可能永远不会看到M引擎。快速浏览一下Power Query这个“洋葱”,如图0-7所示。

图0-7 Power Query的层次结构

在Power Query中共有3个可能的层,但有些产品的集成可能只有前两个层,这些层如下。

M引擎:底层查询执行引擎,运行用Power Query公式语言M的表达式(M函数与操作符的运算)编写的查询。

M查询:用Power Query公式语言M编写的一组命令。

Power Query用户界面:也被称为Power Query编辑器,作为一个图形用户界面,帮助用户进行操作,包括但不限于如下3个方面。

1. 通过与用户界面简单交互,创建或修改M查询[3]

[3]  M函数、M语言、M表达式、M查询含义类似,都是M函数不同程度的组合,在文中不同场景不必拘泥于用词,具体应结合上下文来体会其含义。译者注

2. 将查询和其结果可视化。

3. 通过创建查询组、添加元数据等管理查询。

在最低限度上,一个产品至少有M引擎和M查询这两层。从表0-1中不难看出,并不是每个产品都会包含Power Query“洋葱”的所有3层。

表0-1 并非所有集成Power Query的工具都包含其所有3层

产品

M引擎

M查询

Power Query用户界面

Excel

Power BI桌面版

Power BI Dataflows

SSIS

0.5.2 产品体验的整合

如果在2021年上半年,用户比较Power Query在Excel和Power BI Dataflows中的体验,的确可能注意到一些差异,如Power BI Dataflows利用Power Query在线版的用户界面,Excel和Power BI则是基于Power Query桌面版的用户界面。虽然用户界面确实有差异,但使用它们的基本操作步骤是相似的。

假如在2024年第一季度再来比较,可能会发现这些差距没有以前那么大了。这主要是因为Power Query团队正在努力为Power Query用户提供一致和统一的核心体验,使所有产品的用户体验和使用方法都是一致的。

当然,内置Power Query的不同产品可能仍然有一些独特的功能。例如直接从Excel活动工作表中获取数据,这就是在Excel中的Power Query独有的功能。但在所有这些产品中,核心的体验是基本一致的。其中一些差异来自M引擎、M查询或Power Query用户界面,而另一些差异可能只在于用户界面(例如只是图标不同)。

可以肯定的是,在过去几年中,微软已经投入了大量的资金来推动Power Query在线版的发展。一旦进行了足够的迭代和测试,就会将这些功能转移到Power Query桌面版中进行预览,再进行最终的全面发布。也就是说,如果想尝试Power Query的最新和最好的功能,推荐使用Power Query在线版,可以通过Power BI Dataflows等产品来体验。

这个工具无论是功能的发展还是用户界面的变化都很快,这已经不是什么新鲜事了。根据这一事实得出的结论是,写一本关于Power Query的书并附上用户界面的截图,要使截图保持最新,几乎是根本不可能的。事实上,本书的发行被推迟了两年,就是因为在等待Excel中用户界面的变化。

本书提供了大量的单击操作步骤,但你应该认识到,实际需要采取的操作步骤可能会略微有所不同——无论是产品体验还是用户界面发生的变化,都可能会影响到实际操作的步骤。但不会改变的是这些案例背后的目标、理论或方案。这就是本书的核心:掌握数据本身,而不局限于所看到的具体用户界面。只有通过这种方式,才能实现本书的使命,即一本能够在未来几年内都可以使用的书。

0.6 Power Query的更新周期

在正式开始使用Power Query之前,先来了解这个工具的更新问题。这似乎有些本末倒置,但这是有原因的。

Power Query团队每月都会发布更新信息。这里不仅指对bug的修复(尽管肯定包括这些在内),而是指新功能的增加和性能的增强。虽然有些变化很小,但有些变化也可能很大:在2015年年初,Power Query发布了一个更新信息,将查询加载时间缩短了30%;在2015年7月继续发布新版本,解决了Power Pivot刷新时遇到的一些非常严重的问题;在随后的几年里,还发布了连接类型、条件列等功能;特别是在过去的3年里,还发布了从示例中添加列[4] 和模糊匹配等功能。

[4] 如Web查询的表列推测。译者注

那么,到底如何安装、使用Power Query呢?答案是,这取决于使用Power Query的场景和目的。

0.6.1 Power Query在线版

Power Query在线版是指在如Power Automate、Power BI Dataflows等工具中以在线体验的方式使用的Power Query。这些都是基于Web(互联网应用)的服务,用户不需要对它们进行任何更新。修复和新功能是持续发布的,用户只需每隔一段时间查看一下增加了什么新东西。

0.6.2 Microsoft 365

用户使用Excel(或任何其他Office产品)的首选方式是通过Microsoft 365订阅。如果是订阅用户,软件会根据Office版本所使用的“渠道”,定期自动更新功能和进行bug的修复。

0.6.3 Excel 2016/2019/2021

Power Query是一个正在不断发展的产品。如果回顾一下Excel 2016(最初于2015年9月发布),可发现Power Query被集成到了这个版本的Excel,但它的确存在一些问题,连接类型、条件列和从示例中添加列功能在那时还没有发布。

好消息是,尽管Excel 2016和Excel 2019产品不是订阅模式,但它们在发布后也有一些Power Query的更新。当然这里强烈建议用更新版本的软件来获得与本书案例较为一致的体验。

在系统中获得这些更新的技巧是,确保操作系统在下载其Windows更新时也能获得其他Microsoft产品的更新。要在Windows 10/11中检查这一设置,包含以下4个步骤。

1. 按Windows键,输入“Windows”。

2. 选择“Windows更新设置”。

3. 转到“高级选项”。

4. 找到“更新Windows时接收其他Microsoft产品的更新”,打开下面的按钮(显示“关”字则表示按钮已打开)。

0.6.4 Excel 2010 & 2013

在Excel 2016或更高版本中,Power Query被内置为产品的一部分,而在Excel 2010和2013版本中,Power Query作为插件必须从Microsoft官网手动下载和安装。Power Query在Excel 2010和2013中的最终更新是在2019年3月发布的。

0.6.5 Power BI桌面版

Power BI桌面版有两种安装路径:如果通过Microsoft商店安装它,那么它将自动更新;如果通过Microsoft Power BI官网下载和安装它,需要手动下载和安装更新。

0.7 如何使用本书

无论你是使用Power Query工具的新手还是经验丰富的ETL专业人士,本书旨在从实用的角度成为理解Power Query和M语言的首选资源。本书的目标是清晰地展示如何使用Power Query来解决常见问题。书中还将介绍一些更高级的场景,将Power Query和M语言的最佳实践贯穿其中,以帮助你不仅了解如何建立Power Query解决方案,而且了解如何使它们更好用。

本书中的绝大多数使用场景、插图和案例都将使用Microsoft 365 Excel进行展示。除非另有说明,图示的场景在Excel或Power BI中都可以使用。

使用Power Query功能的关键是要知道从哪里开始。

0.7.1 Microsoft 365 Excel

在作为Microsoft 365产品的一部分发布的Excel中,Power Query的命令可以在“数据”选项卡的“获取和转换数据”中找到。虽然有更快捷的方式来获取常见的数据源,但可以在“获取数据”按钮下找到所有可用的Power Query数据源,如图0-8所示。

图0-8 在Excel中找到Power Query数据源

0.7.2 Power BI桌面版

在Power BI桌面版中,甚至不需要离开“主页”选项卡,直接单击“获取数据”按钮即可找到进入Power Query的路径,如图0-9所示。

图0-9 在Power BI桌面版中找到进入Power Query的路径

0.7.3 以前的Excel版本

虽然本书介绍的重点是Microsoft 365 Excel,但它的大部分功能都与早期版本兼容。不过需要认识到的是,该功能可能在不同的Excel选项卡下。

1. Excel 2019:在大多数情况下,Excel 2019的Power Query基本与Microsoft 365 Excel的相似。本书的图片基于Microsoft 365 Excel截取。

2. Excel 2016:与Excel 2019或Microsoft 365 Excel一样的是,Power Query的入口在“数据”选项卡下,不一样的是Power Query的入口在“新建查询”(在“数据”选项卡的中间)按钮下找到,而不是在图0-8中看到的“获取数据”按钮下。

3. Excel 2010/2013:一旦下载并安装程序后,你会发现在最上面的选项卡栏已经有一个单独的“Power Query”选项卡。书中的步骤会告诉你使用“数据”选项卡上的“获取数据”按钮的所有操作,但如果用这两个版本,需要在“Power Query”选项卡上找到这些命令按钮。

0.7.4 单击“获取数据”按钮

Power Query可以连接到各种各样的数据源,可以通过单击Excel中“数据”选项卡下的“获取数据”按钮或Power BI桌面版中的“主页”选项卡下的“获取数据”按钮来操作。虽然Excel的数据源在菜单子文件夹中进行了分类,但想要在Power BI桌面版中看到子分类列表,需要单击“更多”按钮。

为了保持一致性,本书多数情况的连续单击操作将使用以下方法来描述。

例如,创建一个新的查询,其实际的Excel单击步骤如下。

转到“数据”选项卡,“获取数据”“来自文件”“从文本/CSV”。

这相当于Power BI桌面版中的以下操作。

转到“主页”选项卡,“获取数据”“更多”“文件”“文本/CSV”。

如果还在使用Excel 2016或更早的版本,这些单击步骤如下。

1. Excel 2016:转到“数据”选项卡,“新查询”“从文件”“从文本/CSV”。

2. Excel 2010/2013:转到“Power Query”选项卡,“从文件”“从文本/CSV”。

0.7.5 特殊元素

本书会给出一些带有注意、警告的段落来提醒你一些特别的事项。

在进一步阅读之前,强烈建议先下载本书中使用的所有示例文件,以便能跟随本书边学边练。

现在是时候深入探索这个神奇的工具了,我们开始吧!

相关图书

精通Excel数据统计与分析
精通Excel数据统计与分析
机器学习与数据挖掘
机器学习与数据挖掘
科学知识图谱:工具、方法与应用
科学知识图谱:工具、方法与应用
数以达理:量化研发管理指南
数以达理:量化研发管理指南
Power BI 零售数据分析实战
Power BI 零售数据分析实战
数据分析师典型面试题精讲
数据分析师典型面试题精讲

相关文章

相关课程