Power Query For Excel数据处理利器
告别复杂的excel函数、excel VBA编程,让一切回归简单与智能,让你的工作效率更高。查询增强版(Power Query)是一个Excel插件,是Power BI的一个组件。Power Query 在Excel中通过简化数据发现、访问和合作的操作,从而增强了商业智能自助服务体验。
Power Query是什么?
Power Query 是Excel的一个插件,一个简称为PQ。在Office2016版本的Excel中有内置Power Query,名称叫查询;在Excel 2010与2013版本中需要单独下载安装一个Power Query插件;如果你还在使用Excel2003或2007这些旧版本,是无法安装Power Query的,建议升级Office版本。如果你使用WPS等其它的表格软件,这些第三方肯定不是支持Power Query的了。
Power Query下载安装地址
微软官方下载链接地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=39379
如何打开Power Query
对于PQ对数据的加载方式,常用的有3种
从表格
从表格是数据已经在Excel中,通过点击数据菜单-获取和转换-从表格,将数据加载到PQ中。如果你的源数据不是表结构,则会提示你创建表,包含标题并点击确定。如果没提示创建表且表格不是表结构直接进入了PQ,则会报错,这时需要提前将源数据创建表结构以后再从表格加载。这种方式主要用于,数据较少,变动较小的数据。
从文件夹/从文件
从文件是指从本地指定的路径中找一个文件,加载到PQ中,从文件是指从本地指定的路径中找一个文件夹,将其下面的文件全部加载到PQ中。
从数据库/其他
如果是从数据库加载数据,暂时没试过从SQL Server加载,目前仅使用过从MySQL加载,如果是MySQL加载则需要安装插件。首次使用数据库需要输入账号密码及权限等设置,而在数据库的加载页面还可以通过SQL语句对需要加载的数据进行预处理,直接加载你想要的数据。
由于PQ中计算数据不如在SQL中效率高,如果是从SQL加载数据到PQ,建议通过SQL代码将数据处理成你想要的结构后再加载到PQ,或只在PQ中做简单的基本的操作,一旦遇到大量数据,且操作了多条件合并查询、分组等操作,则会造成明显的效率降低,如果数据量较小则影响并不明显,几十万的数据跑起来速度还是可以的。一般我们在Excel中,使用10万对10万的匹配,则可能需要5分钟,而在PQ中也就是几秒钟的事。如果你的数据少完全不用考虑这个因素。
PQ使用MySQL加载数据需下载插件
从网页等
Powe Query界面
界面中工具栏按钮并没有Excel中那么多,其功能相对也比较好理解,可分别点击看看其对应的功能,后续会花点时间介绍下各按钮的作用。
菜单栏
菜单栏一共5个,分别对应了不同的工具栏组
区域功能
下面一张图显示当前页面有多个查询表格
右侧是我们全部的编辑步骤,我们所有的操作都会被记录下来,我们可以查看历史的操作步骤并编辑。也就是我之前所说的类似一个宏,但是是一个可以编辑步骤的宏。
中间上方是编辑栏,我们所有的操作都是通过PQ重点 M语句实现的。中间最大的区域是数据区域,用以显示当前数据的内容。
Power Query操作数据和Excel中的不同之处
在Excel中,数据是以单元格为单位,对每一个单元格进行操作,有上下行的概念。但是在PQ中,实际上是数据库思维,是基于列对数据进行操作,虽然也有上下文的概念但是和在Excel中完全不一样,因为你无法直接对单个数据进行编辑。包括在Power Pivot中使用DAX语言对数据继续操作都是基于列,均无法直接编辑单个数据。
这个操作方式和我们原有的数据操作的习惯完全不同,如果你了解数据库语言,那么你理解起来会非常快,但如果只操作过Excel,那么你需要一个适应时间。由于数据是基于列操作的,所以效率比在Excel中高。
其实在Excel中也有类似的功能,就是通过创建表,我们可以得到类似的效果,当我们对创建的表进行操作的时候,你会发现所有行的公式都是一样的,但是其结果却是不同的,而在PQ和PP中对数据操作都是一样的,系统会自动对行上下文进行转换。
表面上来看似乎降低了我们操作数据的*程度,而当你熟悉之后,你会发现其效率是比在Excel中更加的方便和快捷,PQ在大量数据、重复劳动方便比Excel有优势,但是对于个性需求还是使用Excel更加方便。
总结
关于PQ操作的东西较多,且对于很多人而言是新事物,看文章不如视频演示的效果好,所以就在这里送个福利,在点赞或评论抽5个人(11月底抽取,中奖我会私信你),共享账号。由于是私人的所以名额不多,当然还有一些其他课程也可以学习。
在这里附上其中的专属课程资料,有需要的可以自行下载,也可以私信我发送给你!