注意: 本文已完成其工作,随后将不再使用。 为防止出现“找不到页面”问题,我们将删除已知无效的链接。 如果创建了指向此页面的链接,请删除这些链接,以便与我们一起为用户提供通畅的 Web 连接。
注意: Power Query 在 Excel 2016 中称为“获取和转换”。 在此处提供的信息适用于两者。 若要了解详细信息,请参阅在 Excel 2016 中获取和转换。
若要在 Excel 中创建 Power Query 公式,可以使用“查询编辑器编辑栏”或“高级编辑器”。 查询编辑器是 Power Query 附带的一种工具,使你可以在 Power Query 中创建数据查询和公式。 用于创建这些公式的语言是 Power Query 公式语言。 可以使用许多 Power Query 公式发现、组合和优化数据。 若要了解有关所有 Power Query 公式的详细信息,请参阅 Power Query 公式类别。
我们来创建一个简单公式,然后创建一个高级公式。
创建简单公式
对于简单公式示例,我们可使用 Text.Proper() 公式将文本值转换为正确的大小写。
-
在“POWER QUERY”功能区选项卡上,选择“从其他源”>“空白查询”。
-
在“查询编辑器编辑栏”中,输入 = Text.Proper("text value"),然后按 Enter 或选择“输入”图标。
-
Power Query 在公式结果窗格中显示结果。
-
若要在 Excel 工作表中查看结果,请选择“关闭并加载”。
结果在工作表中类似于如下所示:
还可以在“查询编辑器”中创建高级查询公式。
创建高级公式
对于高级公式示例,我们使用公式组合将列中的文本转换为正确的大小写。 可以使用“Power Query 公式语言”将多个公式合并为具有数据集结果的查询步骤。 结果可以导入到 Excel 工作表中。
注意: 本主题介绍高级 Power Query 公式。 若要了解有关 Power Query 公式的详细信息,请参阅了解 Power Query 公式。
例如,假设你有一个 Excel 表,其中包含要转换为正确大小写的产品名。
原始表如下所示:
而且你希望生成的表如下所示:
我们逐步执行查询公式步骤以更改原始表,以便 ProductName 列中的值的大小写正确。
使用高级编辑器的高级查询示例
若要清理原始表,可使用“高级编辑器”创建查询公式步骤。 我们构建每个查询公式步骤以演示如何创建高级查询。 下面列出了完整查询公式步骤。 创建高级查询时,请遵循此过程:
-
创建以 let 语句开头的一系列查询公式步骤。 请注意,“Power Query 公式语言”区分大小写。
-
每个查询公式步骤都按名称引用一个步骤,从而建立于上一个步骤的基础上。
-
使用 in 语句输出查询公式步骤。 一般而言,最后一个查询步骤用作 in 最终数据集结果。
步骤 1 - 打开高级编辑器
-
在“POWER QUERY”功能区选项卡上,选择“从其他源”>“空白查询”。
-
在“查询编辑器”中,选择“高级编辑器”。
-
你会看到“高级编辑器”。
步骤 2 - 定义原始源
在“高级编辑器”中:
-
使用 let 语句以分配 Source = Excel.CurrentWorkbook() 公式。 这会将 Excel 表用作数据源。 有关 Excel.CurrentWorkbook() 公式的详细信息,请参阅 Excel.CurrentWorkbook。
-
将 Source 分配给 in 结果。
let Source = Excel.CurrentWorkbook(){[Name="Orders"]}[Content] in Source
-
高级查询在“高级编辑器”中类似于下面所示。
-
在工作表中查看结果:
-
单击“完成”。
-
在“查询编辑器”功能区中,单击“关闭并加载”。
-
结果在工作表中类似于下面所示:
步骤 3 - 将第一行升级为标题
若要将 ProductName 列中的值转换为正确的文本,首先需要将第一行升级为列标题。 可在“高级编辑器”中执行此操作:
-
向查询公式步骤添加 #"First Row as Header" = Table.PromoteHeaders() 公式,并引用 Source 作为数据源。 有关 Table.PromoteHeaders() 公式的详细信息,请参阅 Table.PromoteHeaders。
-
将 #"First Row as Header" 分配给 in 结果。
let Source = Excel.CurrentWorkbook(){[Name="Orders"]}[Content], #"First Row as Header" = Table.PromoteHeaders(Source) in #"First Row as Header"
结果在工作表中类似于下面所示:
步骤 4 - 将列中的每个值更改为正确大小写
若要将每个 ProductName 列值转换为正确的文本,可使用 Table.TransformColumns(),并引用“First Row as Header”查询公式步骤。 可在“高级编辑器”中执行此操作:
-
向查询公式步骤添加 #"Capitalized Each Word" = Table.TransformColumns() 公式,并引用 #"First Row as Header" 作为数据源。 有关 Table.TransformColumns() 公式的详细信息,请参阅 Table.TransformColumns。
-
将 #"Capitalized Each Word" 分配给 in 结果。
let
Source = Excel.CurrentWorkbook(){[Name="Orders"]}[Content],
#"First Row as Header" = Table.PromoteHeaders(Source),
#"Capitalized Each Word" = Table.TransformColumns(#"First Row as Header",{{"ProductName", Text.Proper}})
in
#"Capitalized Each Word"
最终结果会将 ProductName 列中的每个值更改为正确的大小写,在工作表中类似于下面所示:
借助 Power Query 公式语言,可以创建简单到高级的数据查询以发现、组合和优化数据。 若要了解有关 Power Query 的详细信息,请参阅 Microsoft Power Query for Excel 帮助。