メインコンテンツへスキップ

Power Query: If文 - ネストされたIfと複数の条件

Author: Xiaoyang Last Modified: 2025-05-23

Excel Power Queryでは、IF文は最も人気のある関数の一つで、条件を確認し、結果がTRUEかFALSEかに基づいて特定の値を返します。このIF文とExcelのIF関数にはいくつかの違いがあります。このチュートリアルでは、このIF文の構文といくつかの簡単および複雑な例を紹介します。

Power Queryの基本的なIf文の構文

条件付き列を使用したPower QueryのIf文

Mコードを記述してPower QueryのIf文を作成する


Power Queryの基本的なIf文の構文

Power Queryでは、構文は次の通りです:

= if logical_test then value_if_true else value_if_false
  • logical_test: テストしたい条件。
  • value_if_true: 結果がTRUEの場合に返す値。
  • value_if_false: 結果がFALSEの場合に返す値。
注意: Power QueryのIf文は大文字小文字を区別します。if、then、elseはすべて小文字でなければなりません。

Excel Power Queryでは、このような条件ロジックを作成する方法は2つあります:

  • 基本的なシナリオでは「条件付き列」機能を使用する;
  • より高度なシナリオではMコードを記述する。

次のセクションでは、このIf文の使用例について説明します。


条件付き列を使用したPower QueryのIf文

例1:基本的なIf文

ここで、Power QueryでのIf文の使い方を紹介します。例えば、次のような製品レポートがあり、製品ステータスが「旧」の場合、50%の割引を表示し、「新」の場合、20%の割引を表示します(以下のスクリーンショット参照)。

A screenshot showing the product report with product status column and the discount column added in Excel

1. ワークシートからデータテーブルを選択し、Excel 2019およびExcel 365では、[データ] > [テーブル/範囲から]をクリックしてください。スクリーンショットをご覧ください:

A screenshot of the Data tab with From Table/Range option highlighted in Excel 2019 and Excel 365

注意: Excel 2016およびExcel 2021では、[データ] > [テーブルから]をクリックしてください。スクリーンショットをご覧ください:

A screenshot of the Data tab with From Table option highlighted in Excel 2016 and Excel 2021

2. 開いたPower Queryエディタウィンドウで、[列の追加] > [条件付き列]をクリックしてください。スクリーンショットをご覧ください:

A screenshot of the Power Query Editor with Add Column and Conditional Column options highlighted

3. 表示された[条件付き列の追加]ダイアログで、次の操作を行ってください:

  • 新しい列名: 新しい列の名前を入力します;
  • 次に、必要な基準を指定します。例えば、 ステータスが「旧」の場合50%、「新」の場合20%と指定します;
ヒント:
  • 列名: If条件を評価する対象の列。ここでは、ステータスを選択します。
  • 演算子: 使用する条件ロジック。選択した列名のデータ型によってオプションが異なります。
    • テキスト: 始まる、始まらない、等しい、含むなど。
    • 数字: 等しい、等しくない、以上など。
    • 日付: より前、より後、等しい、等しくないなど。
  • : 評価対象となる具体的な値。列名と演算子と一緒に条件を構成します。
  • 出力: 条件が満たされた場合に返される値。
  • Else: 条件がfalseの場合に返される別の値。

A screenshot of the Add Conditional Column dialog box in Power Query with conditions being set

4. 次に、[OK]ボタンをクリックしてPower Queryエディタウィンドウに戻ります。これで、新しい「割引」列が追加されます。スクリーンショットをご覧ください:

A screenshot of the Power Query Editor with the new Discount column added

5. 数値をパーセンテージ形式にしたい場合は、「割引」列ヘッダーのABC123アイコンをクリックし、必要に応じてパーセンテージを選択してください。スクリーンショットをご覧ください:

A screenshot of the ABC123 icon clicked to format the Discount column to percentage

6. 最後に、[ホーム] > [閉じて読み込む] > [閉じて読み込む]をクリックして、このデータを新しいワークシートに読み込みます。

A screenshot of the Close & Load option in Power Query to load data into a worksheet


例2:複雑なIf文

この条件付き列オプションを使用すると、[条件付き列の追加]ダイアログに2つ以上の条件を挿入することもできます。次のように行ってください:

1. データテーブルを選択し、[データ] > [テーブル/範囲から]をクリックしてPower Queryエディタウィンドウを開きます。新しいウィンドウで、 [列の追加] > [条件付き列]をクリックします。

2. 表示された[条件付き列の追加]ダイアログボックスで、次の操作を行ってください:

  • 新しい列名テキストボックスに新しい列の名前を入力します;
  • 最初の基準を最初の基準フィールドに入力し、必要に応じて[条件の追加]ボタンをクリックして他の基準フィールドを追加します。

A screenshot of the Add Conditional Column dialog box with multiple conditions set

3. 基準の入力を終えたら、[OK]ボタンをクリックしてPower Queryエディタウィンドウに戻ります。これで、必要な結果を持つ新しい列が作成されます。スクリーンショットをご覧ください:

A screenshot of the Power Query Editor with a new column reflecting multiple conditions applied

4. 最後に、[ホーム] > [閉じて読み込む] > [閉じて読み込む]をクリックして、このデータを新しいワークシートに読み込みます。


Mコードを記述してPower QueryのIf文を作成する

通常、条件付き列は基本的なシナリオに役立ちます。時々、ANDまたはORロジックを使用して複数の条件が必要になる場合があります。その場合、より複雑なシナリオのためにカスタム列内でMコードを記述する必要があります。

例1:基本的なIf文

最初のデータを例として、製品ステータスが「旧」の場合、50%の割引を表示し、「新」の場合、20%の割引を表示します。Mコードを記述するには、次のように行ってください:

1. テーブルを選択し、[データ] > [テーブル/範囲から]をクリックしてPower Queryエディタウィンドウを開きます。

2. 開いたウィンドウで、[列の追加] > [カスタム列]をクリックしてください。スクリーンショットをご覧ください:

A screenshot of the Power Query Editor with Add Column and Custom Column options highlighted

3. 表示された[カスタム列]ダイアログボックスで、次の操作を行ってください:

  • 新しい列名テキストボックスに新しい列の名前を入力します;
  • 次に、この数式をカスタム列 数式ボックスに入力します: if [Status] = "旧 " then "50% " else "20% "

A screenshot of the Custom Column dialog box in Power Query with a basic IF formula

4. 次に、[OK]をクリックしてこのダイアログボックスを閉じます。これで、必要な結果が得られます:

A screenshot of the Power Query Editor showing a new column after applying a custom formula

5. 最後に、 [ホーム] > [閉じて読み込む] > [閉じて読み込む]をクリックして、このデータを新しいワークシートに読み込みます。


例2:複雑なIf文

ネストされたIf文

通常、サブ条件をテストするために、複数のIf文をネストすることができます。例えば、以下のようなデータテーブルがあるとします。「Dress」の場合、元の価格に対して50%の割引を適用し、「Sweater」または「Hoodie」の場合、元の価格に対して20%の割引を適用し、他の製品は元の価格を維持します。

A screenshot of a dataset with product names and prices used for nested IF examples

1. データテーブルを選択し、[データ] > [テーブル/範囲から]をクリックしてPower Queryエディタウィンドウを開きます。

2. 開いたウィンドウで、[列の追加] > [カスタム列]をクリックします。開いた[カスタム列]ダイアログボックスで、次の操作を行ってください:

  • 新しい列名テキストボックスに新しい列の名前を入力します;
  • 次に、以下の数式をカスタム列数式ボックスに入力します。
  • = if [Product] = "Dress" then [Price] * 0.5 else
    if [Product] = "Sweater" then [Price] * 0.8 else
    if [Product] = "Hoodie" then [Price] * 0.8
    else [Price]

A screenshot of the Custom Column dialog box with a nested IF formula in Power Query

3. 次に、[OK]ボタンをクリックしてPower Queryエディタウィンドウに戻ると、必要なデータを持つ新しい列が作成されます。スクリーンショットをご覧ください:

A screenshot of the Power Query Editor showing a new column with nested IF logic applied

4. 最後に、 [ホーム] > [閉じて読み込む] > [閉じて読み込む]をクリックして、このデータを新しいワークシートに読み込みます。


ORロジックを使用したIf文

ORロジックは複数の論理テストを実行し、いずれかの論理テストがtrueであればtrueの結果を返します。構文は次の通りです:

= if logical_test1 or logical_test2 or … then value_if_true else value_if_false

例えば、以下の表があるとします。ここで、新しい列を表示させたい:製品が「Dress」または「T-shirt」の場合、ブランドは「AAA」、それ以外の製品のブランドは「BBB」。

A screenshot of a dataset used for OR logic examples in Power Query

1. データテーブルを選択し、[データ] > [テーブル/範囲から]をクリックしてPower Queryエディタウィンドウを開きます。

2. 開いたウィンドウで、[列の追加] > [カスタム列]をクリックします。開いた[カスタム列]ダイアログボックスで、次の操作を行ってください:

  • 新しい列名テキストボックスに新しい列の名前を入力します;
  • 次に、以下の数式をカスタム列数式ボックスに入力します。
  • = if [Product] = "Dress" or [Product] = "T-shirt" then "AAA"
    else "BBB"

A screenshot of the Custom Column dialog box with an OR logic formula in Power Query

3. 次に、[OK]ボタンをクリックしてPower Queryエディタウィンドウに戻ると、必要なデータを持つ新しい列が作成されます。スクリーンショットをご覧ください:

A screenshot of the Power Query Editor showing a new column with OR logic applied

4. 最後に、 [ホーム] > [閉じて読み込む] > [閉じて読み込む]をクリックして、このデータを新しいワークシートに読み込みます。


ANDロジックを使用したIf文

ANDロジックは単一のIf文内で複数の論理テストを実行します。すべてのテストがtrueである場合にtrueの結果が返されます。いずれかのテストがfalseの場合、falseの結果が返されます。構文は次の通りです:

= if logical_test1 and logical_test2 and … then value_if_true else value_if_false

上記のデータを例として取り上げます。新しい列を表示させたい:製品が「Dress」で注文数が300より大きい場合、元の価格に50%の割引を適用し、そうでない場合は元の価格を維持します。

1. データテーブルを選択し、[データ] > [テーブル/範囲から]をクリックしてPower Queryエディタウィンドウを開きます。

2. 開いたウィンドウで、[列の追加] > [カスタム列]をクリックします。開いた[カスタム列]ダイアログボックスで、次の操作を行ってください:

  • 新しい列名テキストボックスに新しい列の名前を入力します;
  • 次に、以下の数式をカスタム列数式ボックスに入力します。
  • = if [Product] ="Dress" and [Order] > 300 then [Price]*0.5
    else [Price]

A screenshot of the Custom Column dialog box with an AND logic formula in Power Query

3. 次に、[OK]ボタンをクリックしてPower Queryエディタウィンドウに戻ると、必要なデータを持つ新しい列が作成されます。スクリーンショットをご覧ください:

A screenshot of the Power Query Editor showing a new column with AND logic applied

4. 最後に、[ホーム] > [閉じて読み込む] > [閉じて読み込む]をクリックして、このデータを新しいワークシートに読み込みます。


ORおよびANDロジックを使用したIf文

さて、これまでの例は理解しやすかったですね。今度はさらに難易度を上げましょう。ANDとORを組み合わせて、思いつく限りの条件を作ることができます。このタイプでは、数式に括弧を使用して複雑なルールを定義できます。

上記のデータを例として取り上げます。新しい列を表示させたい:製品が「Dress」で注文数が300より大きい、または製品が「Trousers」で注文数が300より大きい場合、「A+」を表示し、それ以外は「Other」を表示します。

1. データテーブルを選択し、[データ] > [テーブル/範囲から]をクリックしてPower Queryエディタウィンドウを開きます。

2. 開いたウィンドウで、[列の追加] > [カスタム列]をクリックします。開いた[カスタム列]ダイアログボックスで、次の操作を行ってください:

  • 新しい列名テキストボックスに新しい列の名前を入力します;
  • 次に、以下の数式をカスタム列数式ボックスに入力します。
  • =if ([Product] = "Dress" and [Order] > 300 ) or
    ([Product] = "Trousers" and [Order] > 300 )
    then "A+"
    else "Other"

A screenshot of the Custom Column dialog box with combined AND and OR logic in Power Query

3. 次に、[OK]ボタンをクリックしてPower Queryエディタウィンドウに戻ると、必要なデータを持つ新しい列が作成されます。スクリーンショットをご覧ください:

A screenshot of the Power Query Editor showing a new column with combined AND and OR logic applied

4. 最後に、[ホーム] > [閉じて読み込む] > [閉じて読み込む]をクリックして、このデータを新しいワークシートに読み込みます。

ヒント:
カスタム列数式ボックスでは、次の論理演算子を使用できます:
  • = : 等しい
  • <> : 等しくない
  • > : より大きい
  • >= : 以上
  • < : より小さい
  • <= : 以下

最高のオフィス生産性ツール

🤖 Kutools AI アシスタント: データ分析を革命化する: インテリジェント実行   |  コード生成  |  カスタム数式の作成  |  データを分析しグラフを生成  |  拡張機能を呼び出す
人気の機能: 重複を見つけてハイライトまたはマーキング   |  空白行を削除   |  データを失わずに列またはセルを統合   |   丸める ...
スーパーLOOKUP: 複数条件のVLookup    複数値のVLookup  |   複数シートの検索   |   ファジーマッチ ....
高度なドロップダウンリスト: ドロップダウンリストを迅速に作成   |  依存ドロップダウンリスト   |  マルチセレクトドロップダウンリスト ....
列管理: 特定の数の列を追加  |  列を移動  |  非表示列の可視ステータスを切り替え  |  範囲と列を比較 ...
注目の機能: グリッドフォーカス   |  デザインビュー   |   強化された数式バー    ワークブック & ワークシート管理   |  オートテキスト ライブラリ (Auto Text)   |  日付ピッカー   |  データの統合   |  セルの暗号化/復号化    リストで電子メールを送信   |  スーパーフィルター   |   特殊フィルタ (太字/斜体/取り消し線をフィルタリング...) ...
トップ15のツールセット12 のテキストツール (テキストの追加, 特定の文字を削除, ...)  |  50以上 のグラフ の種類 (ガントチャート, ...)  |  40以上の実用的な 数式 (誕生日に基づいて年齢を計算する, ...)  |  19 の挿入ツール (QRコードの挿入, パスから画像を挿入, ...)  |  12 の変換ツール (単語に変換する, 通貨変換, ...)  |  7 の統合 & セルの分割ツール (高度な行のマージ, セルの分割, ...)  |  ...さらに多く

Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、300以上の高度な機能を提供し、生産性を向上させ、保存時間を節約します。  最も必要な機能を入手するにはここをクリック...


Office TabはOfficeにタブインターフェイスをもたらし、作業を非常に簡単にします

  • Word、Excel、PowerPoint、Publisher、Access、Visio、Projectでタブ付きの編集と読み取りを有効にします。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を50%向上させ、毎日数百回のマウスクリックを減らします!