PowerQuery if文でカスタム列を作成する|複数条件とネスト

パワークエリでif文を使って新しい列データを作成する方法を紹介します。
if文の複数条件の設定方法や入れ子(ネスト)についても紹介していますので参考にしてみてください。

ドノ

if文の2種の作成方法を紹介しています!
・カスタム列+M言語
・条件列ボタン

目次

if文+カスタム列の使い方(M言語)

カスタム列でのif文による条件分岐は下記のように記述します。
※パワークエリ(M言語)では大文字と小文字が区別されるためif文は全て小文字で記載するようにしてください。

if 条件式 then 条件が真の処理 else 条件が偽の処理

if 条件式 then 条件が真の処理 else 条件が偽の処理 

if文の使用手順

使用方法の例として下記の条件を設定する手順を紹介します。
条件:数値が100以上のときは”OK”、100未満のときは”NG”とする。

STEP
カスタム列の追加

まず、ツールバーの「列の追加」タブ内にある「カスタム列」をクリックしてカスタム列の設定画面を開く。

STEP
if文による条件分岐列の作成

下記の条件式を入力して保存をクリックする。
式の意味は[数値]が100以上ならば”OK”として、それ以外ならば”NG”とするといったものです。

if [数値] >= 100 then "OK"
else "NG"
STEP
条件分岐による判定フィールドの作成完了

以上でIF文による条件分岐フィールドの作成は完了です。100以上がOK、100未満がNGとなっています。

カスタム列での列データの利用方法

式の中で列データを使用する場合は列名を選択したあとに「挿入」をクリックします。※列名を [ ] で囲んで記載してもOK。

複数条件の設定(and, or)

IF文の条件文は「and」と「or」を使用することで複数条件を設定することができます。
※and条件とor条件は組み合わせて使用可能です。

  • and:条件1と条件2の両方が真の場合、真となる
  • or:条件1か条件2のどちらかが真の場合、真となる
if [条件式1] and [条件式2] then [条件1と条件2が真の結果] else [偽の結果] 
if [条件式1] or [条件式2] then [条件1か条件2が真の結果] else [偽の結果] 
ドノ

ひとつの条件式の中で and と or を組み合わせ使うこともできます

if文の入れ子・ネスト

if文の中にさらにif文を入れて複数回の条件分岐を行うことも可能です。
下記のようにif~thenのあとにif文をさらに記載することで条件分岐を増やすことができます。ここでは条件3までしか記載していませんがさらに追加することも可能です。

if [条件式1] then
 if [条件式2] then
    if [条件式3] then [条件1、条件2、条件3のすべてが真の処理]
    else [条件1と条件2が真、条件3が偽の処理]
 else [条件1が真、条件2が偽の処理]
else [条件1が偽の処理]

イメージとしては下図のようになります。

また、下記のようにif~then~elseのあとにif文を追加することも可能です。else ifを増やしていくことで条件式がfalse(偽)だったときの条件を増やしていくことができます。イメージとしては下図のようになります。

if [条件式1] then [条件1が真の処理]
else if [条件式2] then [条件2が真の処理]
else if [条件式3] then [条件3が真の処理]
else [すべての条件が偽の処理]

比較演算子・論理演算子

if文の条件式の中で等しい・等しくない・以上・以下など様々な比較演算子を利用すると思います。ざっと下記にまとめてますので参考にしてみてください。

比較演算子意味
=等しい
<>等しくない
>より大きい
<未満
>=以上
<=以下
and論理積
or論理和
not論理否定

Sponsored link

if null / if not nullの条件式

if文の条件式で「値がnull」または「値がnullではない」という条件を表現する場合もあると思います。その書き方を紹介します。

if null の条件式

まずは「値がnull」という条件式についてですが、[列名] = null と記載すればOKです。

if [列名] = null then [NULLの場合の処理] then [NULL以外の処理] 

if not null の条件式

次に「値がnullではない」という条件を表現する場合についてですが、以下のように記載します。

  • [列名] <> null
  • not ( [列名] = null )
if [列名] <> null then [NULLの場合の処理] then [NULL以外の処理] 
if not ([列名] = null) then [NULLの場合の処理] then [NULL以外の処理] 

if 空白 の条件式

さいごに「値が空白」という条件式についてですが、[列名] = “” と記載すればOKです。

if [列名] = "" then [空白の場合の処理] then [空白以外の処理] 

Sponsored link

条件列ボタンの使い方(ボタン操作)

最後にマウス操作により条件分岐の列を作成する方法を紹介します。

ボタン操作によりif文による条件分岐を行うには、列の追加タブ内の「条件列」を使います。

条件列ボタンをクリックすると条件設定画面が表示されるので、条件・条件が真の場合の出力・条件が偽の場合の出力の3か所を設定します。

条件列の設定項目とそれぞれ内容は表の通りです。

設定項目内容
列名新しくできる列の名前
演算子比較条件(一致 や 以上以下等)
比較対象となる値
出力条件が「真」のときの結果
それ以外の場合条件が「偽」のときの結果
条件列の設定項目
ドノ

条件式の比較用の値 や 出力の値 には列データを用いることもできます

列データを使いたい場合は「列の選択」をクリックして、使いたい列を選択すればOKです。

条件列ボタンの使用手順

使用方法の例として下記の条件を設定する手順を紹介します。
条件:数値が100以上のときは”OK”、100未満のときは”NG”とする。

STEP
条件列の追加

まず、ツールバーの「列の追加」タブ内にある「条件列」をクリックして条件列を追加する。

STEP
条件列の設定

条件(数値が100以上のときは”OK”、それ以外は”NG”)に沿って、下記のように項目を設定してOKをクリックする。

  • 新しい列名:判定
  • 列名:数値
  • 演算子:次の値以上
  • 値:100
  • 出力:OK
  • それ以外の場合:NG
STEP
条件分岐による判定フィールドの作成完了

以上で条件列ボタンによる条件分岐フィールドの作成は完了です。100以上がOK、100未満がNGとなっています。

複数条件の設定

複数条件を作成したい場合は「句の追加」をクリックすることで新しい条件を追加することができます。

※右側にある「・・・」をクリックすれば 条件分の順番の変更 や 条件文の削除が行えます。

ドノ

こちらの複数条件設定は、カスタム列でelse if を用いた場合と同じ条件となります

Sponsored link

Power Queryのおすすめ書籍

パワークエリの学習本についてはコチラの記事でまとめてますので参考にしてみてください。

初心者向けおすすめ学習本

初中級者向けおすすめ学習本

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

仕事、お金、旅行のことなどメモしてます。
仕事ではTableauを勉強中!
初心者にもわかりやすいように学んだことを発信していきます。

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

CAPTCHA

目次