添加自定义列

如果添加列时需要比 Power Query 中提供的即插即用列更大的灵活性,则可以使用 Power Query M 公式语言创建自己的自定义列。

假设有一个具有以下列集的表。

包含日期、国家/地区、单位、单位价格和百分比折扣列的示例初始表的屏幕截图。

使用单位单价折扣列,将创建两个新列:

  • 折扣前的总销售额:通过将单位列乘以单价列计算得出。
  • 折扣后的总销售额:通过将折扣前的总销售额列乘以净百分比值(一减去折扣值)计算得出。

目标是创建一个包含折扣前的总销售额和折扣后的总销售额的新列的表。

创建了自定义“折扣前的总销售额”和“折扣后的总销售额”列的表的屏幕截图。

创建自定义列

添加列选项卡中,选择自定义列

“添加列”选项卡上的“自定义列”命令的屏幕截图。

将出现“自定义列”对话框。 此对话框用于定义创建列的公式。

“自定义列”对话框的屏幕截图,可以在其中自定义列。

自定义列”对话框包含:

  • 新列名称框中的自定义列的初始名称。 可重命名此列。

  • 一个下拉菜单,可在其中为新列选择数据类型。

  • 数据类型选择下方右侧的可用列列表。

  • 自定义列公式框,在其中可输入 Power Query M 公式

要添加新的自定义列,请从可用列列表中选择列。 接着,选择列表下方的插入列按钮,以将其添加到自定义列公式。 还可以通过在列表中选择列来添加列。 或者,可以在自定义列公式中使用 Power Query M 公式语言 编写自己的公式。

注意

如果在创建自定义列时出现语法错误,则会出现一个黄色警告图标,以及错误消息和原因。

添加“折扣前的总销售额”列

可用于创建折扣前的总销售额列的公式为 [Units] * [Unit Price]。 在数据类型中,选择货币数据类型。

“折扣前的总销售额”的自定义列公式的屏幕截图。

该操作的结果将在表中添加新的折扣前的总销售额列。

包含名为“折扣前的总销售额”的新自定义列的表的屏幕截图,其中显示不带折扣的价格。

注意

如果使用的是 Power Query Desktop,则“数据类型”字段在“自定义列”中不可用。 这意味着在创建列后,需要为任何自定义列定义数据类型。 详细信息:Power Query 中的数据类型

添加“折扣后的总销售额”列

可用于创建折扣前的总销售额的公式为 [Total Sale before Discount]* (1-[Discount])。 将此新列的数据类型设置为货币

“折扣后的总销售额”的自定义列公式的屏幕截图。

该操作的结果将在表中添加新的折扣后的总销售额列。

包含名为“折扣后的总销售额”的新自定义列的表的屏幕截图,其中显示应用了折扣的价格。

修改现有自定义列

Power Query 会将自定义列添加到表中,并将已添加的自定义步骤添加到查询设置应用的步骤列表中。

已添加到已应用步骤列表的自定义列。

要修改自定义列,请在应用的步骤列表中选择已添加的自定义步骤。

自定义列对话框将出现,其中包含创建的自定义列公式。

注意

根据用于自定义列的公式,Power Query 会更改步骤的设置行为,以便获得更简化和本机体验。 对于此示例,已添加的自定义步骤将其行为从标准自定义列步骤更改为乘法体验,因为该步骤中的公式仅将两列的值相乘。

  • 还可以通过其他方法创建自定义列,例如根据你向 Power Query 编辑器提供的示例创建列。 详细信息:从示例添加列
  • 有关 Power Query M 参考信息,请转到 Power Query M 函数参考