条件列を追加する

Power Query では、テーブル内の他の列に適用される 1 つ以上の条件に基づいた値を持つ新しい列を作成できます。

[条件列] コマンドは、[列の追加] タブの [全般] グループにあります。

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 を示すフィールドがあります。 また、Tier 1 PriceTier 2 Price、および Tier 3 Price のフィールドに、その顧客に適用できる価格がそれぞれ含まれています。 この例では、CustomerGroup フィールドの値に基づいて Final Price という名前の新しい列を作成することを目標としています。 CustomerGroup フィールドの値が 1 の場合は、Tier 1 Price フィールドの値を使用します。それ以外の場合は、Tier 3 Price の値を使用します。

この条件列を追加するには、[条件列] を選択します。 [条件列の追加] ダイアログ ボックスでは、次のセクションを定義します。

  • 新しい列名: 新しい列の名前を定義します。 この例では Final Price という名前を使用します。
  • 条件句: ここでは、条件句を定義します。 句をさらに追加するには、[句の追加] を選択します。 各条件句は、ダイアログ ボックスに表示される順序に従って、上から下にテストされます。 各句には、次の 4 つの部分があります。
    • 列名: ドロップダウンリストで、条件テストに使用する列を選択します。 この例では、[CustomerGroup] を選択します。
    • 演算子: テストの種類または条件テストの演算子を選択します。 この例では、[CustomerGroup] 列の値は 1 にする必要があるため、[指定の値に等しい] を選択します。
    • : 値を入力したり、条件テストに使用する列を選択したりします。 この例では、「1」と入力します。
    • 出力: テストが正の場合、ここに入力した値または選択した列が出力です。 この例では、CustomerGroup の値が 1 に等しい場合、出力値は Tier 1 Price 列の値である必要があります。
  • 最後の Else 句: 上記のいずれの句のテストも正でない場合、この操作の出力はここで定義されたもの、つまり手動で入力した値または列の値です。 この場合、出力は Tier 3 Price 列の値です。

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

この操作の結果、Tier 1 Price 列と Tier 3 Price 列の値を含む新しい [Final Price] 列が表示されます。

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

Note

新しい条件列では、データ型が定義されていません。 この新しく作成された列のデータ型を定義する新しい手順を追加するには、「Power Query のデータ型」で説明されている手順に従ってください。

複数の句の追加と整理

この例で、目標を変更してみましょう。 新しい条件句は次のとおりです。

  • [CustomerGroup] 列の値が 1 に等しい場合、出力Tier 1 Price 列の値です。
  • [CustomerGroup] 列の値が 2 に等しい場合、出力Tier 2 Price 列の値です。
  • 前のいずれのテストも正でない場合、出力Tier 3 Price 列の値です。

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

Note

各句の最後で省略記号ボタン ([...]) を選択すると、句を削除、上に移動、または下に移動することができます。

この操作の結果、Tier 1 Price 列、Tier 2 Price 列、Tier 3 Price 列の価格を含む [Final Price] 列が表示されます。

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