在 Excel 中创建 Power Query 公式

重要:  本文是由机器翻译的,请参阅免责声明。请在 此处 中查找本文的英文版本以便参考。

注意: Power Query 在 Excel 2016 中称为“获取和转换”。在此处提供的信息适用于两者。 若要了解详细信息,请参阅在 Excel 2016 中获取和转换

若要在 Excel 中创建 Power Query 公式,可以使用“查询编辑器编辑栏”或“高级编辑器”。 查询编辑器是 Power Query 附带的一种工具,使你可以在 Power Query 中创建数据查询和公式。 用于创建这些公式的语言是 Power Query 公式语言。 可以使用许多 Power Query 公式发现、组合和优化数据。 若要了解有关所有 Power Query 公式的详细信息,请参阅 Power Query 公式类别

我们来创建一个简单公式,然后创建一个高级公式。

创建简单公式

对于简单公式示例,我们可使用 Text.Proper() 公式将文本值转换为正确的大小写。

  1. 在“POWER QUERY”功能区选项卡上,选择“从其他源”>“空白查询”。

    Power Query 功能区
  2. 在“查询编辑器编辑栏”中,输入 = Text.Proper("text value"),然后按 Enter 或选择“输入”图标。 公式编辑器

  3. Power Query 在公式结果窗格中显示结果。

  4. 若要在 Excel 工作表中查看结果,请选择“关闭并加载”。

结果在工作表中类似于如下所示:

Text.Proper

还可以在“查询编辑器”中创建高级查询公式。

创建高级公式

对于高级公式示例,我们使用公式组合将列中的文本转换为正确的大小写。 可以使用“Power Query 公式语言”将多个公式合并为具有数据集结果的查询步骤。 结果可以导入到 Excel 工作表中。

注意: 本主题介绍高级 Power Query 公式。 若要了解有关 Power Query 公式的详细信息,请参阅了解 Power Query 公式

例如,假设你有一个 Excel 表,其中包含要转换为正确大小写的产品名。

原始表如下所示:

段前

而且你希望生成的表如下所示:

段后

我们逐步执行查询公式步骤以更改原始表,以便 ProductName 列中的值的大小写正确。

使用高级编辑器的高级查询示例

若要清理原始表,可使用“高级编辑器”创建查询公式步骤。 我们构建每个查询公式步骤以演示如何创建高级查询。 下面列出了完整查询公式步骤。 创建高级查询时,请遵循此过程:

  • 创建以 let 语句开头的一系列查询公式步骤。 请注意,“Power Query 公式语言”区分大小写。

  • 每个查询公式步骤都按名称引用一个步骤,从而建立于上一个步骤的基础上。

  • 使用 in 语句输出查询公式步骤。 一般而言,最后一个查询步骤用作 in 最终数据集结果。

步骤 1 - 打开高级编辑器

  1. 在“POWER QUERY”功能区选项卡上,选择“从其他源”>“空白查询”。

  2. 在“查询编辑器”中,选择“高级编辑器”。

    高级编辑器

  3. 你会看到“高级编辑器”。

    高级编辑器 2

步骤 2 - 定义原始源

在“高级编辑器”中:

  1. 使用 let 语句以分配 Source = Excel.CurrentWorkbook() 公式。 这会将 Excel 表用作数据源。 有关 Excel.CurrentWorkbook() 公式的详细信息,请参阅 Excel.CurrentWorkbook

  2. Source 分配给 in 结果。

    let Source =
    Excel.CurrentWorkbook(){[Name="Orders"]}[Content]
    in Source
  3. 高级查询在“高级编辑器”中类似于下面所示。

    高级编辑器 3
  4. 在工作表中查看结果:

    1. 单击“完成”。

    2. 在“查询编辑器”功能区中,单击“关闭并加载”。

步骤 1 - 高级编辑器

结果在工作表中类似于下面所示:

步骤1 - 结果

步骤 3 - 将第一行升级为标题

若要将 ProductName 列中的值转换为正确的文本,首先需要将第一行升级为列标题。 可在“高级编辑器”中执行此操作:

  1. 向查询公式步骤添加 #"First Row as Header" = Table.PromoteHeaders() 公式,并引用 Source 作为数据源。 有关 Table.PromoteHeaders() 公式的详细信息,请参阅 Table.PromoteHeaders

  2. #"First Row as Header" 分配给 in 结果。

    let
        Source = Excel.CurrentWorkbook(){[Name="Orders"]}[Content],
        #"First Row as Header" = Table.PromoteHeaders(Source)
    in
        #"First Row as Header"

结果在工作表中类似于下面所示:

步骤 3 - 结果

步骤 4 - 将列中的每个值更改为正确大小写

若要将每个 ProductName 列值转换为正确的文本,可使用 Table.TransformColumns(),并引用“First Row as Header”查询公式步骤。 可在“高级编辑器”中执行此操作:

  1. 向查询公式步骤添加 #"Capitalized Each Word" = Table.TransformColumns() 公式,并引用 #"First Row as Header" 作为数据源。 有关 Table.TransformColumns() 公式的详细信息,请参阅 Table.TransformColumns

  2. #"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 列中的每个值更改为正确的大小写,在工作表中类似于下面所示:

步骤 4 - 结果

借助 Power Query 公式语言,可以创建简单到高级的数据查询以发现、组合和优化数据。 若要了解有关 Power Query 的详细信息,请参阅 Microsoft Power Query for Excel 帮助

注意: 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×