エクセルの関数IFで条件を色々と反映すると、論理式の部分が長く、複雑になってしまう。もっと簡潔な論理式にできないか?
エクセル関数IFはよく使いますが、ついつい論理式が複雑になってしまいます。
「どんな論理式を作成したか?」後日見直した際、自分で作成したにも関わらず、もう一度理解するのにものすごく時間がかかったという経験ないでしょうか。
論理式の構造をわかりやすくしたいという方に、関数SWITCHを用いて、論理式内の条件の関係性がわかりやすくなる方法について、事例を交えて説明します。
エクセルでデータ分析や処理などを行う場合、関数IFの活用を考える場面が多々あります。(関数IFの論理式について詳しくはこちらです)
複雑な処理が一気にできるので、とても便利です。また、一度しっかりと条件を設定してしまえば、間違うことなく自動処理してくれます。
しかし、設定した条件が複雑で、とても長い論理式ができあがってしまうと、一目見ても設定した条件がどんな内容であったかわからなくなってしまいます。
出力されている内容が正しいか否かの確認をする場合など、設定した条件が簡単に確認できないのは問題です。
同じ処理を実行するのであれば、なるべく論理式を簡潔に構成し、「設定した条件を確認しやすい」方法を考えます。
関数にも得意・不得意があるので、得意なパターンを取り上げ、事例とセットで実際に活用していただけるように説明します。
関数IFの設定条件が確認しづらい原因
「なぜ、条件が確認しづらいか?」関数IFのネスト
設定した条件が確認しづらい原因の一つとして、関数IFのネストが考えられます。
ネストは、「IFの中に、また関数を入れる」と考えてもらえればよいかと思います。
IFの中に関数がいくつも入り、その度に新しい条件が追加されていきます。IFにネストできる関数が64とかなり多いので、ネストの繰り返しによって条件が追加になっていきます。
例えば、出席番号の末尾一桁(0~9)に対して色(赤、青、黄)を割り振ってチーム分けするといった場合です。
ネストの影響で、条件と論理式の関係性の他に余計な情報が増え、条件が確認しづらくなっていきます。以下、実際に作成してみます。
事例|関数IFのネストがわかりづらくする
IFを使い、出席番号の末尾一桁と色のチーム分けを自動出力させる論理式を考えました。
ネストの影響で、条件と論理式の関係性が確認しづらくなっています。
論理式内の文字数も多く(142文字)、ネストが増えることによって、条件と論理式の関係が非常にわかりづらくなっています。
IFの代わりにSWITCHを使ってわかりやすくする
条件と論理式の関係性が確認しづらい関数IFを、SWITCHに置き換えわかりやすくします。
関数SWITCH|基本と活用方法
関数SWITCHは論理関数に分類され、以下のように定義されます。
(式,値1,結果1,値2,結果2,…)
値に対して結果をセットすることで条件設定を直接入力していくことができます。値と結果を最大126まで指定することができます。
SWITCHを用いて、出席番号の末尾一桁と色のチーム分けを構成してみます。
IFと同等の結果を得ることができます。
条件がそのまま論理式に反映されており、関係性が非常に確認しやすくなりました。また、文字数も142→76文字となり約50%短くすることができました。
関数SWITCHの置き換えでわかりやすくなるパターン
特定の値に特定の条件があらかじめ割り振られているような状況においては、SWITCHでの置き換えが機能します。
値に対する結果のセットを、直接論理式内に反映していけるからです。
例えば、郵便番号のように特定の番号と地域が結び付けられている場合です。こういった場合、関数IFを用いるとものすごくわかりづらくなりそうです。SWITCHを使えば、直接条件を論理式に反映していけるので、関係性がわかりやすいです。
条件は論理式内に直接記載されているので、簡単に確認できないという問題は解決できます。
まとめ
「関数IFの論理式が複雑になり、条件との関係性がわからない」という問題に対して、関数SWITCHを用いて関係性を明確にする方法をまとめました。
特定の値に特定の条件があらかじめ割り振られているような状況においては、SWITCHでの置き換えで条件と論理式の関係性が明確になります。
- 関数IFは関数のネストが可能なため、条件と論理式の関係性がわかりにくくなる
- SWITCHは論理関数で、値に対し結果をセットするため論理式内に条件を反映できる
- 論理式を見れば条件がわかり、シンプルに表現できる
一目見れば条件がわかるのは、とても便利ですね。
当ブログでは実際の仕事での経験を通して、役立つノウハウの蓄積を図っています。お時間があれば以下のリンクより、色々な記事を読んでいただければと思います。
ここまで読んでいただき、ありがとうございました。
コメント