Excel PowerQuery

if関数を使って複数条件に応じた値を出力するカスタム列を作る(if then else)-PowerQuery基礎-

こんにちわ、マツコ先生 です。

「if関数を使って複数条件に応じた値を出力するカスタム列を追加する方法」でお困りではないでしょうか?

本記事でそんなお悩みを解決していきますよ!

本記事を読むことで
・複数条件に応じた値を出力する方法は2つあることが分かる
・M関数には、他言語にあるような分岐条件を示すSwitchやCase文はなく、if文を重ねてくしか方法がないことを理解できる

複数条件に応じた値を出力する際のポイント

  • どの値(列)を基準に条件を設定するか決める
  • どのような値のときに、どんな値を出力したいか決める(表に整理することを推奨)
  • 同じ条件を複数設定していないことを確認する

準備

サンプルとして次のような表を使って、品名の値に応じた値を出力するカスタム列を追加します。

方法1:条件列の追加メニューを使う

1つ目の方法は、コードを記述せずに入力画面のガイドに沿って入力する方法です。

上のメニューから "列の追加" を選択し、”条件列" のアイコンをクリックします。

"条件列の追加" の設定画面が表示されるので、条件を1つずつ入力し、"OK" をクリックします。

次の入力例は、品名の値が"りんご"のとき、"果物" を出力するように設定しています。続けて条件を追加するために "句の追加" をクリックします。

すべての条件を設定できたら "OK" をクリックします。

設定した条件に応じた値が出力される新しい列が表示されていると思います。条件の修正をしたい時は、"適用したステップ" に表示される歯車マークをクリックしましょう。

方法2:カスタム列からコードを記述

2つ目の方法は、コードを直接入記述する方法です。

上のメニューから "列の追加" を選択し、”カスタム列" のアイコンをクリックします。

"カスタム列" の設定画面が表示されるので、列名を設定し、数式を入力していきます。

数式の記述の仕方は次のようになります。
if "条件" then "条件一致の時の値" else "条件不一致の場合の値"
この式を複数重ねるようにして条件を追加して行きます。

if [品名] = "りんご" then
"果物"
else if [品名] = "みかん" then
"果物"
else if [品名] = "にんじん" then
"野菜"
else if [品名] = "キャベツ" then
"野菜"
else if [品名] = "豚肉" then
"精肉"
else if [品名] = "牛肉" then
"精肉"
else
"その他")

設定した条件に応じた値が出力される新しい列が表示されていると思います。条件の修正をしたい時は、"適用したステップ" に表示される歯車マークをクリックしましょう。

または、コードを直接、修正したい時は、上のメニューから "ホーム" を選択し、”詳細エディター" のアイコンをクリックします。

または、コードを修正した後は、左下に"構文エラーが検出されませんでした"と表示されていることを確認してから”OK" をクリックします。

まとめ

今回は「if関数を使って複数条件に応じた値を出力するカスタム列を追加する方法」をご説明しました。

今回は、次の2つの方法を紹介しました。

  • 方法1:条件列の追加メニューを使う
  • 方法2:カスタム列からコードを記述

また、複数条件に応じた値を出力する際のポイントを決める必要があることに留意しましょう。

  • どの値(列)を基準に条件を設定するか決める
  • どのような値のときに、どんな値を出力したいか決める(表に整理することを推奨)
  • 同じ条件を複数設定していないことを確認する

また、以下の記事もお困りの問題を解決するヒントになるかもしれないので、ぜひ参考にしてみてください!

あわせて読みたい
あわせて読みたい

-Excel, PowerQuery
-, , ,