使用 Power Query,您可以创建新列,其值基于一个或多个应用于表中其他列的条件。
条件列命令位于“常规”组中的“添加列”选项卡上。
添加条件列
在此示例中,你将使用下图所示的表。
在此表中,你有一个提供 CustomerGroup 的字段。 在 “第 1 层价格”、“第2 层价格”和 “第 3 层价格 ”字段中,你也有适用于该客户的不同价格。 在此示例中,目标是根据 CustomerGroup 字段中找到的值创建名为 Final Price 的新列。 如果 CustomerGroup 字段中的值等于 1,则希望使用 “第 1 层价格” 字段中的值;否则,请使用 第 3 层价格中的值。
若要添加此条件列,请选择 “条件”列。 在 “添加条件列 ”对话框中,定义以下部分:
- 新列名称:定义新列的名称。 在此示例中,使用名称 Final Price。
-
条件子句:定义条件子句。 可以通过选择 Add clause 来添加更多子句。 每个条件子句都根据对话框中显示的顺序(从上到下)进行测试。 每个子句有四个部分:
- 列名称:在下拉列表中,选择要用于条件测试的列。 对于此示例,请选择 CustomerGroup。
- 运算符:为条件测试选择测试或运算符的类型。 在此示例中, CustomerGroup 列中的值必须等于 1,因此请选择 等于。
- 值:输入值或选择要用于条件测试的列。 对于此示例,请输入 1。
- 输出:如果测试为正值,则在此处输入的值或所选列为输出。 对于此示例,如果 CustomerGroup 值等于 1,则 输出 值应为 “第 1 层价格” 列中的值。
- Final Else 子句:如果上述子句都没有通过测试,则此操作的输出是此处定义的值,可以是手动输入的值或列中的值。 在这种情况下,输出是 “第 3 层价格” 列中的值。
该操作的结果产生了一个新的 “最终价格” 列,其中包含来自第 1 层价格和第 3 层价格列的值。
注释
新的条件列未定义数据类型。 可以按照 Power Query 中数据类型中所述的步骤添加一个新步骤来定义此新创建的列的数据类型。
添加和组织多个子句
在此示例中,让我们更改目标。 您的新条件子句为:
- 如果 CustomerGroup 列中的值等于 1,则 输出 是 “第 1 层价格” 列中的值。
- 如果 CustomerGroup 列中的值等于 2,则 输出 是 “第 2 层价格 ”列中的值。
- 如果上述测试都不是正面测试,则 输出 是 第 3 层“价格 ”列中的值。
注释
在每个子句的末尾,可以选择省略号按钮(...)以删除、上移或下移子句。
该操作的结果是提供“最终价格”列,该列的价格来自于“第 1 层价格”、“第 2 层价格”和“第 3 层价格”列。