パワークエリでif文を使って複数の文字列(複数条件)の置換を行う方法を紹介します。
パワークエリにはswich関数やcase関数などがないため代わりとして使えると思います。
部分一致(キーワードを含む)の場合の置換設定方法や先頭が一致または末尾が一致などの細かな設定方法も紹介します。
方法として以下の2つを紹介しています!
利用しやすい方を参考にしてくだい。
・カスタム列+M言語
・条件列ボタン
if文+カスタム列による複数文字列の置換
if文による複数文字列の置換は下記のように記述します。
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 関数の詳しい使い方はこちらで解説していますので参考にしてみてください。
if文による置換手順
使用方法の例として下記の果物(置換前)列にある値を置換して英語に変換します。
まず、ツールバーの「列の追加」タブ内にある「カスタム列」をクリックしてカスタム列の設定画面を開く。
下記の条件式を入力して保存をクリックする。
最後のelseの後に元の列[果物_置換前]を入力しておくことで、どの置換条件にも一致しなかった値は元の値のままになるようにしています。
if [果物_置換前]="りんご" then "Apple"
else if [果物_置換前]="オレンジ" then "Orange"
else if [果物_置換前]="ぶどう" then "Grape"
else if [果物_置換前]="もも" then "Peach"
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 [列名]
式の内容としては対象の列のそれぞれの行データに置換したい文字列が含まれているかチェックして、含まれている場合はその文字列を別の文字列に置換するといったものです。
上記の式では3つの置換設定していませんがelse if の文を増やすことで置換する文字列を増やすことができます。
使用例
例として下記の式を、下図の商品列に適用するとこのように置換することができます。
if Text.Contains([商品],"US") then Text.Replace([商品],"US","UK")
else if Text.Contains([商品],"B100") then Text.Replace([商品],"B100","C100")
else [商品]
Sponsored link
条件列ボタンによる複数文字列の置換
条件列ボタンによる複数文字列の置換は下記のように設定します。
対象列のデータと「置換前の文字列」が一致するかをチェックして、一致した場合に「置換後の文字列」に変更しています。
どの条件とも一致しなかった場合は、元のデータのままになるように「それ以外の場合」には元の列を設定しておきます。
上記の式では3つの文字列しか置換していませんが「句の追加」をクリックすることで条件を増やせます。
条件列の詳しい使い方はこちらでも解説していますので参考にしてみてください。
条件列ボタンによる置換手順
使用方法の例として下記の果物(置換前)列にある値を置換して英語に変換します。
まず、ツールバーの「列の追加」タブ内にある「条件列」をクリックして条件列の設定画面を開く。
- 「句の追加」をクリックして条件式を増やします。
- 列名に対象列名、演算子は「指定の値に等しい」、値に置換したい文字列、出力に置換後の文字列を設定します。
- 「それ以外の場合」で列の選択を選び、対象列を選択します。
これで複数の文字列を置換する条件列を作成できました。
あとは元の列を削除した後に今回作成した列の列名を修正すれば完了です。
条件列では文字列の一部分のみを置換するといった設定はできません。
行いたい場合は上述してあるif文+カスタム列の方法を参考にしてください。
Sponsored link
パワークエリの学習本についてはコチラの記事でまとめてますので参考にしてみてください。
・初心者向けおすすめ学習本
・初中級者向けおすすめ学習本
コメント