. PowerQuery if文でカスタム列を作成する|複数条件と入れ子 | DONOLOG
PowerQuery if文でカスタム列を作成する|複数条件と入れ子 | DONOLOG
PowerQuery if文でカスタム列を作成する|複数条件と入れ子 | DONOLOG

Без кейворда

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

if 条件式 then 条件が真の処理 else 条件が偽の処理 if文の使用手順 使用方法の例として下記の条件を設定する手順を紹介します。条件:数値が100以上のときは”OK”、100未満のときは”NG”とする。 まず、ツールバーの「列の追加」タブ内にある「カスタム列」をクリックしてカスタム列の設定画面を開く。 if文による条件分岐列の作成 下記の条件式を入力して保存をクリックする。式の意味は[数値]が100以上ならば”OK”として、それ以外ならば”NG”とするといったものです。 if [数値] >= 100 then "OK" else "NG" 条件分岐による判定フィールドの作成完了 以上でIF文による条件分岐フィールドの作成は完了です。100以上がOK、100未満がNGとなっています。 カスタム列での列データの利用方法 式の中で列データを使用する場合は列名を選択したあとに「挿入」をクリックします。 ※列名を [ ] で囲んで記載してもOK。 複数条件の設定(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 [条件式1] then if [条件式2] then if [条件式3] then [条件1、条件2、条件3のすべてが真の処理] else [条件1と条件2が真、条件3が偽の処理] else [条件1が真、条件2が偽の処理] else [条件1が偽の処理] if [条件式1] then [条件1が真の処理] else if [条件式2] then [条件2が真の処理] else if [条件式3] then [条件3が真の処理] else [すべての条件が偽の処理] 比較演算子・論理演算子 比較演算子意味=等しい等しくない>より大きい未満>=以上以下and論理積or論理和not論理否定

if null と if not nullの条件式

if null の条件式

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

if [列名] = null then [NULLの場合の処理] then [NULL以外の処理] if not null の条件式 if [列名] null then [NULLの場合の処理] then [NULL以外の処理] if not ([列名] = null) then [NULLの場合の処理] then [NULL以外の処理] if 空白 の条件式

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

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

文字列を含む または 含まない条件式

文字列を含む の条件式
  • [列名]:指定の文字列が含むか調べたい列
  • “文字列”:指定の文字列
  • 文字列が含む場合の値:指定文字列が含む場合の値や処理
  • 文字列が含まれない場合の値:指定文字列が含まれない場合の値や処理
if Text.Contains([列名],"文字列") then 文字列が含む場合の値 else 文字列が含まれない場合の値 文字列を含まない の条件式 if not Text.Contains([列名],"文字列") then 文字列が含まない場合の値 else 文字列が含む場合の値

文字列置換の条件式

完全一致の文字列置換

列の文字列データと完全一致した場合に文字列を置換する式は下記の通りです。

if [列名] = "置換前の文字列1" then "置換後の文字列1" else if [列名] = "置換前の文字列2" then "置換後の文字列2" else if [列名] = "置換前の文字列3" then "置換後の文字列3" else if [列名] = "置換前の文字列4" then "置換後の文字列4" else if [列名] = "置換前の文字列5" then "置換後の文字列5" else [列名]

複数文字列に対応できるように記載してありますが、if elseの行を削除すればひとつの文字列の置換も可能です。また、else ifの行を増やすことで置換する文字列を増やすことも可能です。

部分一致の文字列置換

列の文字列データの一部分だけを置換する式は下記のように記述します。

if Text.Contains([列名],"置換前の文字列1") then Text.Replace([列名],"置換前の文字列1","置換後の文字列1") else if Text.Contains([列名],"置換前の文字列2") then Text.Replace([列名],"置換前の文字列2","置換後の文字列2") else if Text.Contains([列名],"置換前の文字列3") then Text.Replace([列名],"置換前の文字列3","置換後の文字列3") else [列名]

複数文字列に対応できるように記載してありますが、if elseの行を削除すればひとつの文字列の置換も可能です。また、else ifの行を増やすことで置換する文字列を増やすことも可能です。

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

最後にマウス操作により条件分岐の列を作成する方法を紹介します。これには、列の追加タブ内の「条件列」を使います。

  • 列名: 条件式の入力列
  • 演算子: 比較条件(一致 や 以上以下等)
  • 値: 比較する値 または 列
  • 出力: 条件が「真」のときの出力値 または 出力列
  • それ以外の場合: 条件が「偽」のときの結果 または出力列
条件列ボタンの使用手順

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

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

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

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

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

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

Power Queryのおすすめ書籍

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

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

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

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

コメント

コメントする コメントをキャンセル

オススメの学習本はコチラ!