微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,以用于进行更深入的分析。
简介
假设你已从若干不同的源将数据导入了 Power BI,但在检查这些数据时,这些数据并没有做好用于进行分析的准备。 是什么使数据没有为分析做好准备?
检查数据时,你发现了一些问题,包括:
名为 Employment status 的一列仅包含数字。
若干列包含错误。
某些列包含 NULL 值。
某些列中显示的客户 ID 似乎是重复复制的。
单一地址列合并有“街道地址”、“城市”、“省/市/自治区”以及“邮政编码”。
你随即开始处理数据,但每次在报表上创建视觉对象时,都会得到错误的数据和不正确的结果,并且关于销售总额的简单报表也是错误的。
由于脏数据可能过于繁多,你可能会感到沮丧,但你决定开始着手处理,想办法使此语义模型尽可能恢复纯净的状态。
幸运的是,Power BI 和 Power Query 为你提供了功能强大的环境,用于清理和准备数据。 清理数据具有以下优点:
度量值和列在执行聚合和计算时会生成更准确的结果。
表经过了整理,用户可以从中以直观的方式查找数据。
重复项会被删除,使数据导航更为简单。 它还将生成可用于切片器和筛选器的列。
一个复杂的列可以被拆分为两个更简单的列。 可以将多列合并成一列,易于阅读。
可以将代码和整数替换为可读的值。
通过学习本模块,你将了解如何:
解决不一致、意外或 NULL 值以及数据质量问题。
应用用户友好的值替换。
分析数据,使你在使用数据之前能了解特定列的更多信息。
评估和转换列数据类型。
将数据形状转换应用于表结构。
合并查询。
将用户友好的命名约定应用于列和查询。
在高级编辑器中编辑 M 代码。
调整初始数据
Power BI Desktop 中的 Power Query 编辑器使你能够调整(转换)导入的数据。 你可以完成如下操作:重命名列或表、将文本更改为数字、删除行,以及将第一行设为标头等。 务必对数据进行调整,从而确保它满足你的需求并且适合在报表中使用。
你已将两个源中的原始销售数据加载到一个 Power BI 模型中。 某些数据来自销售团队在 Microsoft Excel 中手动创建的 .csv 文件。 其他数据是通过连接到你组织的企业资源计划 (ERP) 系统来加载的。 现在,当在 Power BI Desktop 中查看数据时,你注意到数据是杂乱的;不需要的某些数据和所需的某些数据的格式都不正确。
在开始生成报表之前,需要使用 Power Query 编辑器对数据进行清理和调整。
Power Query 编辑器入门
若要开始调整数据,请在 Power BI Desktop 的“开始”选项卡上选择“转换数据”选项来打开 Power Query 编辑器。
在 Power Query 编辑器中,所选查询中的数据会显示在屏幕中间,而在屏幕左侧,“查询”窗格会列出可用的查询(表)。
在 Power Query 编辑器中工作时,你对数据进行调整的所有步骤都会被记录下来。 随后,每当查询连接到数据源时,它会自动应用你的步骤,从而使你的数据始终按你指定的方式调整。 Power Query 编辑器仅对数据的特定视图进行更改,因此,你无需担心会对原始数据源造成任何更改。 可以在屏幕右侧的“查询设置”窗格中查看你的步骤列表以及查询的属性。
Power Query 编辑器功能区包含许多可用于选择、查看和调整数据的按钮。
图片
识别列标头和名称 对初始数据进行调整的第一步是标识数据内的列标头和名称,然后评估它们所在的位置以确保它们位于正确的位置。
在下面的屏幕截图中,SalesTarget(一个未提供的示例)的 csv 文件中的源数据有一个按产品分类的目标,以及按月份拆分的一个子类别,这两者都被整理成了列。
然而,你会注意到数据没有按预期导入。
这使数据难以阅读。 在数据处于当前状态时会发生问题,因为列标头位于不同的行中(标记为红色),并且若干列有未描述的名称,例如“Column1”和“Column2”等。
在识别了列标头和名称所在的位置后,可以进行更改以重新整理数据。
提升标头
当表在 Power BI Desktop 中创建后,Power Query 编辑器会假设所有数据都属于表行。 但是,数据源的第一行可能会包含列名称,这是之前 SalesTarget 示例中发生的情况。 若要更正此误差,需要将第一个表行提升为列标头。
可以通过两种方式提升标头:在“开始”选项卡上选择“将第一行用作标头”选项,或选择“Column1”旁边的下拉菜单按钮,然后选择“将第一行用作标头”。
下图说明了“将第一行用作标头”功能会对数据造成哪些影响:
重命名列
调整数据的下一步是检查列标头。 你可能会发现,一列或多列的标头错误、标头拼写错误,或者标头命名约定不一致或对用户不友好。
请参阅前面的屏幕截图,上面显示了“将第一行用作标头”功能的影响。 请注意,包含子类别“Name”数据的列现在的标头变成了“Month”。 此列标头不正确,因此需要对它进行重命名。
可以通过两种方式对列标头进行重命名。 一种方法是右键单击标头,选择“重命名”,编辑名称,然后按 Enter。 或者,可以双击列标头,然后使用正确的名称覆盖该名称。
还可以通过以下方法解决此问题:删除(跳过)前两行,然后将列重命名为正确名称。
删除前几行
在调整数据时,可能需要删除前几行,例如,当这些行为空白或者包含报表中不需要的数据时。
继续使用 SalesTarget 示例时,可以注意到,第一行为空白(没有数据),第二行的数据已不再需要。
若要删除这些多余的行,请在“开始”选项卡上选择“删除行”>“删除前几行”。
删除列
数据调整过程中的一个关键步骤是删除不必要的列。 越早删除这些列越好。 删除列的一种方式是在从数据源获取数据时限制列。 例如,如果使用 SQL 从关系数据库中提取数据,则需要在 SELECT 语句中使用列列表对提取的列进行限制。
在此过程的早期阶段删除列(而不是之后再进行删除)是最好的,特别是在表之间建立了关系的情况下。 删除不必要的列将有助于你专注于所需的数据,并有助于改进 Power BI Desktop 语义模型和报表的整体性能。
检查每一列,并询问自己是否真的需要里面所含的数据。 如果不打算在报表中使用这些数据,那么这些列对你的数据模型而言没有任何价值。 因此,应该删除这些列。 如果你的需求随着时间改变了,你之后可以随时添加这些列。
可以通过两种方式删除列。 第一种方法是选择要删除的列,然后在“开始”选项卡上选择“删除列”。
或者,可以选择要保留的列,然后在“开始”选项卡上选择“删除列”>“删除其他列”。
逆透视列
逆透视是 Power BI 一项有用的功能。 此功能可用于任意数据源中的数据,但你通常会在从 Excel 导入数据时使用此功能。 下面的示例显示了包含销售数据的示例 Excel 文档。
尽管数据最初可能是有意义的,但难以通过这些数据创建从 2018 年到 2019 年合并的所有销售总额。 你的目标是通过三列在 Power BI 中使用这些数据:Month、Year 和 SalesAmount。
将数据导入到 Power Query 中时,它将类似下图所示。
接着,将第一列重命名为 Month。 此列未被正确标记,因为在 Excel 中,该标头标记的是 2018 和 2019 列。 突出显示 2018 和 2019 列,在 Power Query 中选择“转换”,然后选择“逆透视”。
可以将 Attribute 列重命名为 Year,将 Value 列重命名为 SalesAmount。
逆透视简化了稍后针对数据创建 DAX 度量值的过程。 完成此过程后,即表示你现在创建了一种通过 Year 和 Month 列来切分数据的更简单的方式。
列透视
如果要调整的数据是平面数据(换句话说,即它包含许多详细信息,但未按任何方式整理或分组),结构的缺少可以会使你难以识别数据中的模式。
可以使用“透视列”功能将平面数据转换成一个表,其中包含列中每个唯一值的聚合值。 例如,你可能需要使用此功能来通过使用不同的数学函数对数据进行汇总,例如“Count”、“Minimum”、“Maximum”、“Median”、“Average”或“Sum”。
在 SalesTarget 示例中,可以对列进行透视以获取每一产品类别中产品子类别的数量。
在“转换”选项卡上,选择“转换”>“透视列”。
在显示的“透视列”窗口中,从“值列”列表中选择一列,例如“Subcategory name”。 展开高级选项,从“聚合值函数”列表中选择一个选项,例如“Count (All)”,然后选择“确定”。
下图说明了“透视列”功能如何改变数据的组织方式。
Power Query 编辑器会记录对数据进行调整所采取的全部步骤,步骤的列表会显示在“查询设置”窗格中。 如果进行了所需的全部更改,请选择“关闭并应用”关闭 Power Query 编辑器,将更改应用到你的数据模型。 然而,在选择“关闭并应用”之前,可以在 Power Query 编辑器中采取进一步的步骤来清理和转换数据。 本模块中随后将介绍这些额外的步骤。
简化数据结构
将数据从多个源导入 Power BI Desktop 中时,数据将保留其预定义的表和列名。 你可能需要更改其中的一些名称,使它们的格式保持一致、更易于处理,并且对用户而言更具有意义。 可以在 Power BI Desktop 中使用 Power Query 编辑器对这些名称进行更改并简化数据结构。
为了继续之前对模型中的初始数据进行调整,你需要采取进一步措施来简化销售数据的结构,并准备好数据为销售团队开发报表。 你重命名了这些列,但现在你需要检查查询(表)的名称以确定是否可以进行任何改进。 你也需要查看列的内容,并替换任何需要更正的值。
重命名查询
将不常见或无用的查询名称更改为更明显或用户更熟悉的名称是比较好的做法。 例如,如果将产品事实数据表导入 Power BI Desktop 并且查询名称显示为“FactProductTable”,则可能需要将它更改为对用户易记名称,例如“Products”。 同样,如果导入视图,此视图的名称可能会带有“v”前缀,例如“vProduct”。 人们可能会发现这一名称不清楚并且令人混淆,因此,可能需要删除此前缀。
在本例中,你检查了 TargetSales 查询的名称,意识到此名称是无用的,因为你将会有针对每年带有此名称的查询。 若要避免混淆,需要将年份添加到查询名称。
在 Power Query 编辑器中,在数据左侧的“查询”窗格中,选择想要重命名的查询。 右键单击查询并选择“重命名”。 编辑当前名称或键入新名称,然后按 Enter。
替换值
可以使用 Power Query 编辑器中的“替换值”功能将所选列中的任何值替换为另一个值。
在本例中,你会注意到,在“Attribute”列中,月份 December 拼写错了。 需要更正此拼写错误。 选择包含想要替换的值的列(在本例中为“Attribute”),然后选择“转换”选项卡上的“替换值”。
在“要查找的值”框中,输入想要替换的值的名称,接着在“替换为”框中,输入正确的值名称,然后选择“确定”。 在 Power Query 中,你无法像在 Excel 中一样选择一个单元格和更改一个值。
可以在“查询设置”窗格中查看对数据进行重建格式和更正所采取的步骤列表。 完成需要进行的所有步骤后,可以选择“关闭并应用”关闭 Power Query 编辑器,将更改应用到数据模型。 不过,可以采取进一步操作来清理和转换数据。
替换 NULL 值
有时,你可能会发现数据源包含 NULL 值。 例如,销售订单中的运费金额可能会有一个 NULL 值(只要它与零同义)。 如果此值保持为 NULL,聚合计算将出错。 一种解决方法是将 NULL 更改为零,这将生成更准确的运费平均值。 在此实例中,使用之前进行的相同步骤将帮助你将 NULL 值替换为零。
删除重复项
还可以使用 Power Query 中的“删除重复项”功能从列中删除重复项,从而在所选列中仅保留唯一名称。
在本例中,可以注意到“Category Name”列包含每一类别的重复项。 因此,需要创建包含唯一类别的一个表,并将它用于语义模型中。 可以通过以下方式实现此操作:选择一列,右键单击此列的标头,然后选择“删除重复项”选项。
可以考虑在删除重复项之前复制表。 “复制”选项位于上下文菜单的顶部,如下面的屏幕截图所示。 如有需要,在删除重复项之前复制表使你能够比较表并能够使用这两个表。
命名表、列和值的最佳做法
表、列和值的命名约束没有固定的规则,但是,我们建议使用你的组织内常用的并且所有人都一致认同是常用术语的语言和缩写。
最佳做法是为表、列和度量值提供描述性的业务术语,并将下划线(“_”)替换为空格。 请务必保持缩写、前缀以及“number”和“ID”等词的一致性。如果不是在组织内常用的缩写,那么过短的缩写可能会导致混淆。
此外,可以删除可能在表名中使用的前缀或后缀并改为以简单的格式对它们进行命名,这将有助于避免混淆。
替换值时,请尝试想象这些值将如何显示在报表中。 过长的值可能难以阅读并且难以融入视觉对象中。 过短的值可能难以理解。 只要文本适合视觉对象,避免对值使用缩写也是一个不错的主意。
评估和更改列数据类型
当你从任意数据源导入表时,Power BI Desktop 将自动开始扫描前 1,000 行(默认设置)并尝试检测列中的数据类型。 Power BI Desktop 在某些情况下可能不会检测到正确的数据类型。 如果出现不正确的数据类型,你会遇到性能问题。
在处理平面文件时,例如逗号分隔值 (.CSV) 文件和 Excel 工作簿 (.XLSX),有很大的几率会遇到数据类型错误,因为数据是手动输入到工作表中的,因此会存在错误。 相反,在数据库中,数据类型是在创建表或视图时预定义的。
最佳做法是在将数据加载到 Power BI 语义模型中之前在 Power Query 编辑器中评估列数据类型。 如果确定数据类型不正确,则可以进行更改。 可能还需要对列中的值应用某一格式,并且更改列的汇总默认设置。
为了继续对销售数据进行清理和转换以准备用于报表,现在需要评估列以确保它们拥有正确的数据类型。 你需要更正识别到的所有错误。
评估 OrderDate 列。 按预期来看,它应包含数值数据,但 Power BI Desktop 错误地将列数据类型设置成了文本。 若要对此列进行报告,需要将数据类型从文本更改为日期。
不正确的数据类型可能造成的影响
以下信息使你能够深入了解 Power BI 未检测到正确数据类型时可引发的问题。
不正确的数据类型将阻止你创建某些计算、派生层次结构或创建与其他表的正确关系。 例如,如果尝试要计算 Quantity of Orders YTD,你将遇到以下错误,指出 OrderDate 列数据类型不是进行基于时间的计算所需的日期。
Quantity of Orders YTD = TOTALYTD(SUM('Sales'[OrderQty]), 'Sales'[OrderDate])
对日期字段应用不正确的数据类型引发的另一个问题是,无法创建日期层次结构,此层次结构便于按年、月或周来分析数据。 以下屏幕截图显示了 SalesDate 字段未被识别为日期类型,且将仅作为表视觉对象中的日期列表显示。 但是,最佳做法是使用日期表并关闭自动日期/时间来移除自动生成的层次结构。
更改列数据类型
可以在以下两个位置更改列的数据类型:在 Power Query 编辑器中和 Power BI Desktop 报表视图中通过使用列工具进行更改。 在加载数据之前,最好在 Power Query 编辑器中更改数据类型。
在 Power Query 编辑器中更改列数据类型
在 Power Query 编辑器中,可以通过两种方式来更改列数据类型。 一种方法是选择存在问题的列,在“转换”选项卡中选择“数据类型”,然后从列表中选择正确的数据类型。
另一种方法是选择列标头旁的数据类型图标,然后从列表中选择正确的数据类型。
与在 Power Query 编辑器中所做的任何其他更改一样,对列数据类型进行的更改也将作为编程步骤被保存。 此步骤称为“更改类型”,并且将在每次数据刷新时进行迭代。
完成清理和转换数据的所有步骤后,可以选择“关闭并应用”关闭 Power Query 编辑器,将更改应用到语义模型。 在此阶段,你的数据应已调整好了,适合用于分析和报表。
将多个表合并为一个表
合并查询的功能非常强大,因为它使你能够追加或合并不同的表或查询。 在以下情况下,可以将表合并为一个表:
存在过多的表,使得难以导航一个过于复杂的语义模型。
多个表具有一个类似的角色。
一个表只有一两个可以放进不同表中的列。
想在一个自定义列中使用来自不同表的多个列。
可以通过两种不同的方式合并表:合并和追加。
假设你正在为销售和人力资源团队开发 Power BI 报表。 他们要求你创建一个联系信息报表,其中要包含每名员工、供应商和客户的联系信息和位置。 HR.Employees、Production.Suppliers 和 Sales.Customers 表中的数据如下图所示。
但是,这些数据来自多个表,因此,这一困境确定了你如何合并这多个表中的数据并创建一个真实数据来源表以从中创建报表。 利用 Power BI 的固有功能,可以将查询合并到一个表中。
追加查询 在追加查询时,你会将数据行添加到另一个表或查询中。 例如,你可能有两个表,其中一个表有 300 行,另一个表有 100 行,在追加查询后,最后将有 400 行。 在合并查询时,你会将列从一个表(或查询)添加到另一个表(或查询)中。 若要合并两个表,必须有一个列是两个表之间的关键值。
对于之前提及的情况,你将在 HR.Employee 表中追加 Production.Suppliers 和 Sales.Customers 表,以便拥有一个联系人信息的主列表。 由于你想创建一个表,此表要包含员工、供应商和客户的所有联系信息,因此,当你合并查询时,你的合并表中所需的相关列的命名必须与原始数据表中的命名相同,这样才能看到一个合并的视图。
开始合并查询之前,可以从表中删除此任务不需要的无关列。 若要完成此任务,请将每个表的格式设置为只有四个包含你的相关信息的列,并对它们进行重命名,使它们全都具有相同的列标头:ID、company、name 和 phone。 以下图像是重格式化后的 Sales.Customers、Production.Suppliers 和 HR.Employees 表的代码片段。
完成重格式化后,可以合并查询。 在 Power Query 编辑器功能区的“开始”选项卡上,选择“追加查询”的下拉列表。 可以选择“将查询追加为新查询”,这意味着追加的输出将生成一个新查询或表,或者可以选择“追加查询”,这会将行从现有表添加到另一个表中。
下一个任务是创建新的主表,因此需要选择“将查询追加为新查询”。 选择后会转至一个窗口,你可以从中将要追加的表从“可用表”添加到“要追加的表”中,如下图所示。
在添加了要追加的表后,请选择“确定”。 你将被路由到一个新查询,其中包含所有三个表中的所有行,如下图所示。
现在,你已成功创建了包含员工、供应商和客户信息的一个主表。 你可以退出 Power Query 编辑器,然后生成围绕此主表的所有报表元素。
但是,如果是想合并表,而不是将数据从一个表追加到另一个表,此过程将有所不同。
合并查询
合并查询时,你将基于表之间通用的列将数据从多个表合并到一个表中。 此过程类似于 SQL 中的 JOIN 子句。 假设销售团队现在希望你将订单和它们对应的详细信息(当前位于两个表中)合并到单个表中。 可以通过合并 Orders 和 OrderDetails 这两个表来完成此任务,如下图所示。 这两个表都具有“OrderID”列。
转到 Power Query 编辑器功能区上的“开始”,然后选择“合并查询”下拉菜单,从中可以选择“将查询合并为新查询”。 此选择将打开一个新窗口,从中可以选择要从下拉列表中合并的表,然后选择两个表都具有的列,在本例中为“orderid”。
还可以选择如何联接两个表,这也是类似 SQL 中的 JOIN 语句的一个过程。 这些联接选项包括:
左外部 - 显示第一个表中的所有行以及第二个表中的匹配行。
完全外部 -显示两个表中的所有行。
内部 - 显示两个表之间匹配的行。
在这样的情境下,你将选择使用“左外部”联接。 选择“确定”,这会将你路由到一个新窗口,从中可以查看你合并的查询。
现在,你可以通过不同的方式合并两个查询或表,从而根据业务需求以最合适的方式查看你的数据。
在 Power BI 中分析数据
分析数据是指了解数据的细微差别:确定异常、检查并开发基本数据结构以及查询数据统计信息,例如行计数、值分布、最小值和最大值,以及平均值等。 这一概念很重要,因为它使你能够对数据进行调整和整理,以便实现轻松地与数据交互和识别数据的分布,这有助于在几乎毫不费力的情况下在前端处理数据来开发报表元素。
假设你正在为组织的销售团队开发报表。 你不确定数据的结构化方式以及数据是如何包含在表中的,因此,需要在开发视觉对象之前在幕后分析数据。 Power BI 的固有功能使这些任务具有了用户友好且直接的特性。
检查数据结构
在 Power Query 编辑器中开始检查数据之前,应首先了解整理数据的基本数据结构。 可以在 Power BI Desktop 的“模型”选项卡下查看最新语义模型。
在“模型”选项卡上,可以通过选择表或列来编辑特定列和表属性,并且可以通过使用“转换数据”按钮来转换数据,这会使你转至 Power Query 编辑器。 此外,可以使用功能区上的“管理关系”来管理、创建、编辑和删除不同表之间的关系。
查找数据异常和数据统计信息
在创建了到数据源的连接并选择了“转换数据”后,会转至 Power Query 编辑器,你可以从中确定数据中是否存在异常。 数据异常是指数据中存在离群值。 确定存在哪些异常可有助于确定数据的正常分布情况,以及是否存在需要进一步调查的特定数据点。 Power Query 编辑器通过使用“列分布”功能来确定数据异常。
选择功能区上的“视图”,在“数据预览”下,可以从一些选项中进行选择。 若要了解数据异常和统计信息,请选择“列分布”、“列质量”和“列分析”选项。 下图显示了出现的统计信息。
“列质量”和“列分布”显示在数据列上方的图表中。 “列质量”显示有效、错误和空数据的百分比。 理想情况下,100% 的数据都需是有效数据。
“列分布”显示数据在列内的分布情况以及明确和唯一值的计数,这两者都可以指示出数据计数的详细信息。 明确值是列中所有不同的值,包括重复值和 NULL 值,而唯一值则不包含重复值和 NULL 值。 因此,这个表中的“distinct”指明总共出现多少个值,而“unique”则指明这些值中有多少只出现了一次。
使用“列分析”,可以深入了解前 1,000 行数据的列内的统计信息。 此列提供了若干个不同的值,包括行计数,这在验证数据是否已成功导入时非常重要。 例如,如果原始数据库有 100 行,则可以使用这一行计数来验证是否存在 100 行,如果是,则表示已正确导入。 此外,这一行计数将显示 Power BI 已视为离群值的行数、空行和字符串以及最小值和最大值,这将分别指示列中最小和最大值。 这种区别对于数字数据尤其重要,因为如果你的最大值超出了业务所定义的“最大值”,它将立即通知你。该值会引起你的注意,这意味着你可以在深入研究数据时集中精力。 如果数据位于文本列中(如上图所示),在数据按字母顺序排序时,最小值是第一个值,而最大值是最后一个值。
此外,“值分布”图还会指示该特定列中每个非重复值的计数。 查看上图中的图时,可以注意到,值分布指示“Anthony Grosse”在“SalesPerson”列中出现的次数最多,“Lily Code”出现的次数最少。 此信息十分重要,因为它可以标识离群值。 如果某个值远远大于列中的其他值,通过“值分布”功能,可以确定开始调查出现此情况原因的位置。
在数值列上,“列统计信息”还将包含存在多少个零和 NULL 值,以及列中的平均值、列中值的标准偏差和列中偶数和奇数值的数量。 这些统计信息使你能够了解数据在列中的分布情况,并且十分重要,因为它们会在列中汇总数据并充当确定离群值的起点。
例如,在查看发票数据时,你注意到“值分布”图显示“SalesPerson”列中的一些销售人员在数据中出现的次数相同。 此外,你还注意到“Profit”列以及其他一些表中也出现了相同的情况。 在调查过程中,你会发现你使用的数据是错误的,需要刷新,因此你应立即进行刷新。 如果不查看此图,你可能不会如此快速地看到此错误,因此,“值分布”是必不可少的功能。
在 Power Query 编辑器中完成你的编辑并且准备开始生成视觉对象后,请回到 Power Query 编辑器功能区上的“开始”。 选择“关闭并应用”,这将使你回到 Power BI Desktop,还将应用任何列编辑/转换。
现在你已确定了构成 Power BI 中的数据分析的元素,这包括在 Power BI 中加载数据、询问列属性以清楚了解列中数据的类型和格式并进行进一步编辑、发现数据异常,以及在 Power Query 编辑器中查看数据统计信息。 掌握这一知识后,你可以在你的工具包中包含能够有效研究数据的功能。
使用高级编辑器修改 M 代码
每次在 Power Query 中调整数据时,你会在 Power Query 过程中创建一个步骤。 可以在适当的位置对这些步骤进行重新排序、删除和修改。 你所执行的每个清理步骤都可能是使用图形界面创建的,但 Power Query 会在幕后使用 M 语言。 可以通过使用 Power Query 高级编辑器来读取合并的步骤。 始终可以对 M 语言直接进行读取和修改。 你无需使用 M 代码即可利用 Power Query。 尽管你几乎不需要编写 M 代码,但它仍然可以证明是有用的。 由于 Power Query 中的每一步骤都是采用 M 代码编写的,因此,即使 UI 为你创建了它,但你可以使用这些步骤来了解 M 代码并且对它进行自定义以满足你的需求。
创建清理数据的步骤后,选择 Power Query 的“视图”功能区,然后选择“高级编辑器”。
应显示以下屏幕。
每一 Power Query 步骤大约将与一两行 M 代码一致。 你无需成为 M 代码专家即可读懂它。 你甚至可以通过更改它来进行试验。 例如,如果需要更改数据库的名称,可以直接在代码中完成,然后选择“完成”。
你可能会注意到,M 代码是自上而下编写的。 此过程中后面的步骤可以通过等号左侧的变量名称来引用前面的步骤。 在对这些步骤进行重新排序时要谨慎,因为这可能会破坏语句依赖关系。 使用“in”语句写入查询公式步骤。 通常,最后一个查询步骤用作 in final data set 结果。
欢迎留言讨论~