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

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

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

Author Xiaoyang Last modified

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 Aide:データ分析を革新します。主な機能:Intelligent Executionコード生成カスタム数式の作成データの分析とグラフの生成Kutools Functionsの呼び出し……
人気の機能重複の検索・ハイライト・重複をマーキング空白行を削除データを失わずに列またはセルを統合丸める……
スーパーLOOKUP複数条件でのVLookup複数値でのVLookup複数シートの検索ファジーマッチ……
高度なドロップダウンリストドロップダウンリストを素早く作成連動ドロップダウンリスト複数選択ドロップダウンリスト……
列マネージャー指定した数の列を追加列の移動非表示列の表示/非表示の切替範囲&列の比較……
注目の機能グリッドフォーカスデザインビュー強化された数式バーワークブック&ワークシートの管理オートテキスト ライブラリ日付ピッカーデータの統合セルの暗号化/復号化リストで電子メールを送信スーパーフィルター特殊フィルタ(太字/斜体/取り消し線などをフィルター)……
トップ15ツールセット12 種類テキストツールテキストの追加特定の文字を削除など)50種類以上のグラフガントチャートなど)40種類以上の便利な数式誕生日に基づいて年齢を計算するなど)19 種類の挿入ツールQRコードの挿入パスから画像の挿入など)12 種類の変換ツール単語に変換する通貨変換など)7種の統合&分割ツール高度な行のマージセルの分割など)… その他多数
Kutoolsはお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...


Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に

  • Word、Excel、PowerPointでタブによる編集・閲覧を実現
  • 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
  • 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!

全てのKutoolsアドインを一つのインストーラーで

Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。

Excel Word Outlook Tabs PowerPoint
  • オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
  • 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
  • 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
  • 30日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得