本講座では、パワークエリで利用される条件判断の方法を学習します。データを整形していく過程では、必ず条件判断を使いこなす必要がありますので重要なスキルとなります。
固定値を使った条件判断
固定値を使った条件判断の方法を学習します。方法は、画面上で入力していく方法と条件式を入力する方法の二通りがあります。両方使えるようにしておく方が応用が効きます。
説明で利用するExcelファイルをダウンロードして実際に操作をしてみましょう。
シナリオ
氏名と身長の二列のシンプルなサンプルデータを用意しました。170以上の場合に合格でそれ以外は不合格といった列を追加したいと思います。
画面上から条件を指定する方法
パワークエリエディタを開きます。
- テーブル内のセルを選択して[データ]タブを選択します。
- [テーブルまたは範囲から]を選択します。

- [列の追加]タブを選択します。
- [条件列]を選択します。

シナリオ通りに条件を入力していきます。
シナリオ
170以上の場合に合格でそれ以外は不合格といった列を追加
- [新しい列名]に追加となる列名を入力します。
- [列名]で[身長]列を選択します。
- [演算子]は[次の値以上]を選択します。
- [値]は[170]と固定値を入力します。
- [出力]は[合格]と入力します。
- [それ以外の場合]は[不合格]と入力します。

結果を確認すると170以上で合格、それ以外は不合格と表示される新しい列が追加されました。

プログラムでは、if else 文が使われています。
1 2 |
= Table.AddColumn(追加された条件列, "合否判定(カスタム列)", each<span class="swl-marker mark_orange"> if [身長] >= 170 then "合格" else "不合格"</span>) |
カスタム列の追加で条件式を入力する方法
パワークエリエディタを開きます。
- テーブル内のセルを選択して[データ]タブを選択します。
- [テーブルまたは範囲から]を選択します。

- [列の追加]タブを選択します。
- [カスタム列]を選択します。

シナリオ通りに条件式を入力します。
シナリオ
170以上の場合に合格でそれ以外は不合格といった列を追加
- [新しい列名]に追加となる列名を入力します。
- [カスタム列の式]に以下の条件式を入力します。
1 |
= <span class="swl-marker mark_orange">if [身長] >= 170 then "合格" else "不合格"</span> |

結果を確認すると170以上で合格、それ以外は不合格と表示される新しい列が追加されました。

列の値を使った条件判断
続いて列同士の値で条件判断する方法を学習します。方法は、画面上で入力していく方法と条件式を入力する方法の二通りがあります。両方使えるようにしておく方が応用が効きます。
説明で利用するExcelファイルをダウンロードして実際に操作をしてみましょう。
シナリオ
氏名と実績と予定の3列のシンプルなサンプルデータを用意しました。実績と予定の列の値同士を比較して[実績≧予定]となっていれば達成でそれ以外は未達成と表示する列を追加します。
画面上から条件を指定する方法
パワークエリエディタを開きます。
- テーブル内のセルを選択して[データ]タブを選択します。
- [テーブルまたは範囲から]を選択します。

- [列の追加]タブを選択します。
- [条件列]を選択します。

シナリオ通りに条件を入力していきます。
シナリオ
実績と予定の列の値同士を比較して[実績≧予定]となっていれば達成でそれ以外は未達成と表示する列を追加
- [新しい列名]に追加となる列名を入力します。
- [列名]で[実績]列を選択します。
- [演算子]は[次の値以上]を選択します。
- [値]は下図のようにアイコンを[列の選択]に変更して、[予定]列を選択します。
- [出力]は[達成]と入力します。
- [それ以外の場合]は[未達成]と入力します。

結果を確認するとシナリオ通りの結果となっていました。

プログラムでは、if else 文が使われています。
1 2 |
= Table.AddColumn(変更された型, "結果", each if [実績] >= [予定] then "達成" else "未達成") |
カスタム列の追加で条件式を入力する方法
パワークエリエディタを開きます。
- テーブル内のセルを選択して[データ]タブを選択します。
- [テーブルまたは範囲から]を選択します。

- [列の追加]タブを選択します。
- [カスタム列]を選択します。

シナリオ通りに条件式を入力します。
シナリオ
実績と予定の列の値同士を比較して[実績≧予定]となっていれば達成でそれ以外は未達成と表示する列を追加
- [新しい列名]に追加となる列名を入力します。
- [カスタム列の式]に以下の条件式を入力します。
1 |
= if [実績] >= [予定] then "達成" else "未達成" |

結果を確認するとシナリオ通りの結果となっていました。

パラメータ値を使った条件判断
固定値をパラメータとして定義して利用する方法を学習します。パラメータを利用すると複数のクエリで共有できるので複雑な連携が発生してくると有効になります。単一のクエリであっても普段から利用しておくことをお勧めします。
説明で利用するExcelファイルをダウンロードして実際に操作をしてみましょう。
シナリオ
氏名と身長の二列のシンプルなサンプルデータを用意しました。170以上の場合に合格でそれ以外は不合格といった列を追加したいと思います。
画面上から条件を指定する方法
パワークエリエディタを開きます。
- テーブル内のセルを選択して[データ]タブを選択します。
- [テーブルまたは範囲から]を選択します。

パラメーターを登録します。シナリオの条件で利用する170をパラメーターとして登録します。
- [ホーム]タブの[パラメーターの管理]を選択します。
- [新しいパラメーター]を選択します。

- [名前]にパラメーター名称を入力します。分かり易いようにしておくと良いでしょう。
- [説明]に後で何のパラメーターなのか分かるように説明を入れておきます。

- [列の追加]タブを選択します。
- [条件列]を選択します。

シナリオ通りに条件を入力していきます。
シナリオ
170以上の場合に合格でそれ以外は不合格といった列を追加
- [新しい列名]に追加となる列名を入力します。
- [列名]で[身長]列を選択します。
- [演算子]は[次の値以上]を選択します。
- [値]はアイコンを[パラメーター]に変更して先ほど作成し[身長の合格点]を選択します。
- [出力]は[合格]と入力します。
- [それ以外の場合]は[不合格]と入力します。

結果を確認すると170以上で合格、それ以外は不合格と表示される新しい列が追加されました。

プログラムでは、if else 文が使われています。
1 2 |
= Table.AddColumn(変更された型, "合否", each if [身長] >= <span class="swl-marker mark_orange">身長の合格点</span> then "合格" else "不合格") |
カスタム列の追加で条件式を入力する方法
パワークエリエディタを開きます。

- [列の追加]タブを選択します。
- [カスタム列]を選択します。

シナリオ通りに条件式を入力します。
シナリオ
170以上の場合に合格でそれ以外は不合格といった列を追加
- [新しい列名]に追加となる列名を入力します。
- [カスタム列の式]に以下の条件式を入力します。
1 |
= if [身長] >= 身長の合格点 then "合格" else "不合格" |

結果を確認すると170以上で合格、それ以外は不合格と表示される新しい列が追加されました。

パワークエリ学習コンテンツ
-
第1回PowerQuery講座|パワークエリとは?何ができる?どう起動する?
-
第2回PowerQuery講座|パワークエリのデータソースの取り込み方法をデータ形式毎に解説
-
第3回PowerQuery講座|パワークエリの『列』操作
-
第4回PowerQuery講座|パワークエリの『行』操作
-
第5回PowerQuery講座|文字を整えて(テキストクレンジング)パワークエリで扱いやすいようにする。
-
第6回PowerQuery講座|パワークエリの数字計算(四則演算、四捨五入、切り上げ、切り捨て)
-
第7回PowerQuery講座|パワークエリの統計関数やグループ化機能を使った列の集計方法
-
第8回PowerQuery講座|パワークエリの時間を表すデータ型と時間を使った計算
-
第9回PowerQuery講座|パワークエリの様々な条件判断
-
第10回PowerQuery講座|パワークエリで行と列を入れ替える(列のピボット解除、列のピボット)
-
第11回PowerQuery講座|パワークエリにおけるクエリの管理方法
コメント