导语:Power Query 是可证明的,在这个星球上性价比最高的数据处理工具,如果你的工作中需要处理数据,注意,是处理,不是分析,那么此工具必须掌握。对此,90%的鼠标点击,5%的猜测以及5%的公式能力足以。本文来自《Master Your Data》的第十章,非常重要,必须掌握。
相比Power BI,Power Query和Power Pivot在行列层级运行计算,Excel一直以来主要还是在单元格层面上的。Excel里,每行每列所有单元格进行相同逻辑的计算时,常规的做法是在第一个单元格填写公式,然后向下向右填充每一个单元格。如下图所示,计算各洲折后价的表格,蓝色区域所有单元格都要填入一个公式。
数据专业人员经常做的工作之一是将多个数据集追加到一起。无论这些数据集是包含在一个 Excel 工作簿中,还是分布在多个文件中,问题是它们需要被纵向【追加】到一个表中。
分析师面临的普遍问题是,无论从哪里获得数据,大部分情况都是一种不能立即使用的状态。因此,不仅需要时间把数据加载到文件中,还得花更多的时间来清洗它,改变它的结构,以便后续做分析的时候能更好的使用这个数据。
作为一名数据专家,日常工作很可能都是在使用数据之前对其进行导入、操作和转换。可悲的是,许多人都没有机会接触到拥有精心策划过的数据的大数据库。相反,被不断地喂食 “TXT” 或 “CSV” 文件,并且在开始分析之前,必须经历将它们导入到 Excel 或 Power BI 解决方案的过程。对用户来说,重要的商业信息往往是以以下格式存储或发送给用户的。
上篇推文《从【中国式复杂报表】谈设计逻辑》中我们提到,中国式复杂报表作为高度复杂化的产物,不适合进一步用作数据源。但实际工作中,难免遇到以类似复杂表格作为数据源的情况。比如从国家统计局下载数据的表单,就是一个初级版的复杂报表。我们可以看到,表头分了两个层级,且子层级含有合计数。列方向上也有合计(全国)。本文将来一步一步介绍,如何清洗复杂报表数据源。
很多情况下,公司业务报表有合并单元格,例如下表。我们无法直接进行下一步动作,比方我们想看看销售业绩排名,对销售额进行排序,此表无法直接实现。
使用 Power Query 的一个非常有趣的场景是,可以利用它从 Web 上抓取与业务相关的数据,并用它来丰富自己的公司数据。数据通常以两种不同的方式之一存储在 Web 上。
数据表是由表名、表中的字段和表的记录三个部分组成的。设计数据表结构就是定义数据表文件名,确定数据表包含哪些字段,各字段的字段名、字段类型、及宽度,并将这些数据输入到计算机当中。
也就是说,“得益于”pq强大的引擎,Text.NewGuid()只运行了一次,的确非常节省算力。
从事采购及生产运营管理的同学对物料表应该都不陌生。物料表英文为Bill Of Material, 简称BOM。简单说,物料表就是产品原材料清单。这个清单可以是单层的或多层的,因为每个“原”材料也会有它相应的下级物料,以及下下级物料…直到最终分解到最基本的元素,如阳光,空气,铁矿石等等……
所有要进行操作的文件下载链接: https://pan.baidu.com/s/10VtUZw8G-Ly-r4VypntjiA 密码: y5qu 下载成功后,整个文件夹如下图所示。
本章专门讨论 Power Query 新手会面临的两个常见问题:理解 Power Query 是基于数据类型(而不是数据格式)的工具,以及如何理解和处理 Power Query 查询中的错误。
小勤:大海,最近公司系统导出来的订单数据害屎人了,所有信息都堆在了一列里面,你看,怎么转成规范的明细表啊?
案例来源于一位同学的一种设备,去敏后格式如下:指标涉及100多个,每次测量的指标不一样,也就是说,设备除了“数据编号”外,其他标题名称错位存放于同一工作表中。另外,每个编号的条目数量(行数)不一样,大部分1条,但有的是2条或3条。
Power Query 的设计目的就是在业务分析师使用数据之前将数据加载到目标区域的表中。收集数据并将其重塑为所需的格式,Power Query 处理数据的基本流程,如图 1-1 所示。
把源数据汇总后,为了满足质量要求的数据,需要做数据清洗。PQ就好像变形金刚(英文版PowerBI的转换选项卡恰好也叫“Transform”),在转换选项卡中,集成了各类变形功能。使用频率最高的一般有12个小招: 首行作标题、修改数据类型、删除(重复、错误、空项目)、拆分、提取、合并、替换、填充、移动、排序、格式、逆透视。
Power Query 可以在 Power BI 或 Excel 中使用,很多人一开始就在想到底用哪个平台来使用 Power Query,其实不必为此纠结,总有一天会意识到需要把查询复制到一个另一个中的。这有可能是将查询从一个 Excel 工作簿中复制到另一个 Excel 工作簿中,从 Excel 复制到 Power BI,或者从 Power BI 复制到 Excel。在本章中,将探讨将查询从一个工具快速移植到另一个工具的方法。请记住,虽然本书的重点是 Excel 和 Power BI,但这些步骤对于任何承载 Power Query 的工具来说几乎是相同的,即使它包含在其他微软产品或服务中。
在Power Query中如果想要插入自定义的一行,有一个专门的函数Table.InsertRows,这个函数可以帮助我们在指定行的位置插入我们所需要的数据,但是这个函数需要我们把每一列的数据都要补上,但是大部分情况我们可能只需要在某一列中插入一个指定数据即可,这种该如何操作呢?
在群里看到个例子,将一些堆在一列,而且顺序也不太对的数据给整理好,给出的步骤是好大一串代码:
进入PowBI,弹出的如下页面也可以直接关闭,在Power BI中想要导入数据需要通过Power Query 编辑器,Power Query 主要用来清洗和整理数据。
导语:数据记录的不规范不完整会导致后续数据处理的严重复杂化,虽然针对特定场景总能找到对应的处理办法,但是,一定要尽可能从源头规范起来!
毫无疑问,对于开始就以表格形式处理数据的人来说,最简单的方法之一是打开 Excel 并开始在工作表中记录数据。虽然 Excel 并不是真正打算充当数据库的角色,但这正是实际发生的事情,因此 Power Query 将 Excel 文件和数据视为有效数据源。
设计优良的分析模型是 DAX 高效运行的前提。在本章中,我们将讨论许多与建模有关的主题,这些主题对于理解性能强劲的模型设计非常重要。
大海:这是因为你订单ID这一列里不全是数字。所以只能用文本类型类表示。而且错误信息里提示也很明确,既提示了错误类型,也显示了第一个出错的值是什么。
很多朋友在数据处理过程中经常碰到这样的数据和转换要求:即一些本来应该是多列的内容,全堆到了一列里。
VLookup无疑是Excel中进行数据匹配查询用得最广泛的函数,但是,随着企业数据量的不断增加,分析需求越来越复杂,越来越多的朋友明显感觉到VLookup函数在进行批量性的数据匹配过程中出现的卡顿问题也越来越严重。
说实话我没相关这个问题。甚至对于超级表这个概念并不是很清晰,唯一的概念是我在短视频上看到过,当时的感觉就是“这不就是Power query中最简单的功能么?这都啥破教程。”
我们在使用图片识别文字时常常会出现识别出来的文字是这样的,如果识别出来是这样的东西,它们的数据图片中是4列的,识别变成文字后是一列的:
Power BI 模型的真正强大之处在于通过使用 DAX 语言进行计算。虽然许多 Power BI 用户专注于模型并试着完全避开使用 DAX,但是除了最简单的基础聚合运算以外,其他所有的计算都需要通过 DAX 来实现。而且,你迟早会在 Power BI 中遇到更复杂的计算需求。根据我们的经验,典型的情况会是:你精心制作的一个 Power BI 报告初稿,会引出有关这些数据的越来越多、越来越复杂的问题。
本篇数据处理来自一个实际处理数据的简化。下图中,假设左边是一个直观的 BOM 结构展示,数据在 Excel 中存储格式如中间部分所示:第一列为物料编码的级别,第二列为物料编码。数据处理任务:需要在 Excel 中增加一列输出物料编码上一级的物料编码(目标为黄色部分)。
各位使用Power BI的小伙伴有很多是从事项目管理相关工作的,咱们的Power BI除了可以基于数据对现状展示以外,还可以对不同项目以及各个阶段工作量进行宏观展示。今天我们就来扒一扒如何利用Power BI做出项目Roadmap以及对项目一目了然的甘特图。
小勤:大海,在PowerQuery里面能不能对一列数求和、算个数、求最大、最小值之类的啊?
导语:把表头内容转成一列,是数据规范处理中经常遇到的一个问题,这个问题本身并不复杂,如果没有处理好,却有可能把问题复杂化。
在MySQL中,表是存储数据的基本单位,每张表有若干列,每一行代表一条数据记录。在MySQL中,数据是按行存储的。
小勤:大海,能在Power Pivot或Power BI将一个表里的数据匹配到另一个表里吗?
我是大海,感谢关注【Excel到PowerBI】,本文较长,建议耐心阅读,如果一时时间有限,建议收藏,并及时回头阅读。
在Excel的数据透视表里,我们如果要对某一列的内容进行次数统计和对比,可以同时将该列添加到透视表的“列”和“值”里,如下图所示对金额类别列进行统计对比:
Excel中两列数据的差异对比,方法非常多,比如简单的直接用等式处理,到使用Excel2016的新功能Power Query(Excel2010或Excel2013可到微软官方下载相应的插件)实现各种复杂的数据整理后再进行对比,可以根据实际需要选择使用。
开始本章翻译时,是5月初。当时并不知道平平无奇的5月Power BI会带来一大波更新,尤其是大杀器“字段参数”(字段参数参考文章)。
忽略指定过滤器后进行计算。 之前这个使用All函数生成忽略学科教师平均分的度量值,如果用AllExpect函数则可以写成
下午,我正爽歪歪地喝着咖啡,看着Power BI每秒钟刷新一次,静静等待某个分公司完成本月绩效任务,自动调用Python在钉钉群中发送喜报:
文章背景:在Excel中,如果想要实现近似匹配,可以使用Vlookup函数。在Power Query中,也可以实现查找并返回等于或介于两个数据点之间的值。
小勤:这个数据明明是个数值啊,为什么用函数ISTEXT判断的时候,结果还是TRUE?也就是说这个还是文本?
在Power Query及Power Pivot系列课程中,对大家日常学习和使用过程中的较多问题和可能遇到的坑有诸多讲解,比如,PQ系列课一开始就有新手经常遇到问题提示,让大家有一定的印象(也可能很多朋友直接跳过去了):
在Excel中,我们可以通过先在单元格中编写公式,然后向下拖动列来创建计算列。在PowerQuery中,还可以添加“自定义列”并输入公式。在Python中,我们创建计算列的方式与PQ中非常相似,创建一列,计算将应用于这整个列,而不是像Excel中的“下拉”方法那样逐行进行。要创建计算列,步骤一般是:先创建列,然后为其指定计算。
小勤:我有很多个人的沟通记录,怎么能够针对每个人将他们的沟通日期和沟通记录分别动态合并到一个单元格里面,并且换行显示?
Power Query提供了大量数据连接器。 这些连接器从 TXT、CSV 和Excel文件等数据源到Microsoft SQL Server等数据库,以及 Microsoft Dynamics 365 和 Salesforce 等常用 SaaS 服务。 如果未在 “获取数据 ”窗口中看到数据源,则始终可以使用 ODBC 或 OLEDB 连接器连接到数据源。
Excel里部分人工资调整,要引入到原表中,并保持未调整的人员数据和位置不变,这是典型的部分数据替换问题,若要使得到的结果位置完全不变,通过直接的数据复制粘贴是无法完成的,但可以通过公式或者构建排序参考表来完成,下面先以公式法为例进行说明:
领取专属 10元无门槛券
手把手带您无忧上云