添加条件列

使用 Power Query,可以创建新列,新列值将基于应用于表中其他列的一个或多个条件。

条件列命令位于常规组的添加列选项卡中。

Screenshot of the Power Query ribbon with the Add column tab open and the Conditional column option emphasized.

添加条件列

在此示例中,请使用下图所示的表。

Screenshot of the sample table to use when adding a conditional column.

在此表中,有一个提供 CustomerGroup 的字段。 在第 1 层价格第 2 层价格第 3 层价格字段中,也有适用于该客户的不同价格。 在此示例中,目标是根据 CustomerGroup 字段中的值创建名称为最终价格的新列。 如果“CustomerGroup”字段中的值等于 1,则希望使用“第 1 层价格”字段中的值;否则,将使用“第 3 层价格”中的值。

要添加此条件列,请选择条件列。 在“添加条件列”对话框中,定义以下部分:

  • 新列名称:定义新列的名称。 在此示例中,请使用名称“最终价格”
  • 条件子句:定义条件子句。 通过选择添加子句,可以添加更多子句。 将按照对话框中所示的顺序,从上到下测试每个条件子句。 每个子句都有四个部分:
    • 列名称:在下拉列表中,选择要用于条件测试的列。 对于此示例,选择 CustomerGroup
    • 运算符:为条件测试选择测试或运算符的类型。 在此示例中,CustomerGroup 列中的值必须等于 1,因此选择等于
    • :输入值或选择要用于条件测试的列。 对于此示例,输入 1
    • 输出:如果测试结果为正,则在此处输入的值或选择的列即为输出。 对于此示例,如果 CustomerGroup 值等于 1,则“输出值”应为“第 1 层价格”列中的值。
  • Final Else 子句:如果上述子句的测试结果都不为正,则此操作的输出将是此处定义的子句,作为手动输入的值或列中的值。 在这种情况下,输出将是“第 3 层价格”列中的值。

Screenshot of the Add conditional column dialog with all of the example values filled in.

该操作的结果提供了一个新的“最终价格”列,其中包含“第 1 层价格”列和“第 3 层价格”列中的值。

Screenshot of the table with the Final Price column containing the Any data type produced by the example conditional clauses.

注意

新的条件列不会定义数据类型。 可以按照 Power Query 中的数据类型中所述的步骤,添加一个新步骤来定义此新创建列的数据类型。

添加和组织多个子句

对于此示例,将更改目标。 新的条件子句包括:

  • 如果“CustomerGroup”列中的值等于 1,则输出将是“第 1 层价格”列中的值。
  • 如果“CustomerGroup”列中的值等于 2,则输出将是“第 2 层价格”列中的值。
  • 如果之前的测试结果都不为正,则输出将是“第 3 层价格”列中的值。

Screenshot of Add conditional column with two different conditional clauses defined for the values of the Final Price column.

注意

在每个子句的末尾,可以选择省略号按钮 (...) 以删除、上移或下移子句。

该操作的结果提供了一个新的“最终价格”列,其中包含“第 1 层价格”列、“第 2 层价格”列和“第 3 层价格”列中的值。

Screenshot of the table with the Final Price that contains the Any data type produced by the multiple conditional clauses.