関数IFを使う際に、論理式をもっとシンプルに短く、設定している条件をわかりやすく表現する方法はない?
関数IFを「いかにシンプルに、わかりやすく作成するか?」は常につきまとう課題です。この課題に対して、LOOKUPやSWITCHでの置き換えを説明してきました。
しかし、いつでも都合よく置き換えられるとは限らない点が問題です。
置き換えは難しいが、論理式をもっとシンプルにわかりやすくしたいという方に向けて関数IFSを活用する方法を説明します。
エクセル使用する際、関数IFを使おうと考える場面が多々あると思います。(関数IFの論理式について詳しくはこちらです)
条件を整理し、論理式に反映してしまえば、短時間で大量のデータを条件に合わせて処理可能です。条件をきっちりと整理できれば、複雑な処理も可能です。
しかし、論理式が複雑になりやすく、シンプルかつわかりやすく表現するには工夫が必要です。
工夫することで改善が図れればよいです。しかし不可能な場合は、複雑な関数IFで表現せざるを得なくなるのは問題です。
少しでも、論理式を短く、簡潔に表現できる方法について説明します。
LOOKUPとSWITCHの考え方が理解できていれば簡単な方法ですので、是非ご活用ください。
関数IFの論理式が長く、複雑になる原因
「なぜ、長く、複雑になるか?」関数IFのネスト
長く、複雑になる原因の一つとして、関数IFのネストが考えられます。
ネストは、「IFの中に、また関数を入れる」というイメージです。
特にIFの中にIFがまた入る場合、何度も似たような構造が繰り返すことになります。ネストできる関数が64と多いので、ネストの繰り返しによって複雑になっていきます。
例えば、前月の数値に対して今月どの程度アップしたかを計算し、評価をするケースです。
IFを何度も繰り返すことで、論理式が長くなっていく様子が確認できます。以下、実際に作成してみます。
事例|関数IFのネストが長く、複雑にする
IFを使い、前月の数値に対して今月どの程度アップしたかを出力する論理式を考えました。
IFの中にIFをネストさせた影響で、長く複雑になっています。
論理式内の文字数は101文字であり、ネストが増えることによって、IFが繰り返し登場していることが確認できます。
IFの代わりにIFSを使う
関数IFを、IFSに置き換えわかりやすくします。
関数IFS|基本と活用方法
関数IFSは論理関数に分類され、以下のように定義されます。
(論理式1,値が真の場合,論理式2,値が真の場合・・・)
論理式に対して値が真の場合の結果をセットすることができます。論理式と結果を最大127まで指定することができます。
関数IFSを用いる際は、必ず厳しい条件から順に論理式に反映するようにしてください。IFSでは、前から演算処理が順次実施されるので、順番を間違えると誤った結果が出力されます。
IFSを用いて、前月の数値に対して今月どの程度アップしたかを構成してみます。
IFと同等の結果を得ることができます。
文字数が101→91文字となり約10%短くすることができました。また、条件がそのまま論理式に反映されており、関係性が確認しやすくなりました。
関数IFSの置き換えでわかりやすくなるパターン
条件に合わせて分類を行うような場合、例えば合否判定のような場合は関数IFでシンプルに構成することが可能です。
しかし、分類パターンが増えてしまうとIFの中にIFのネストが発生してしまいます。こういった場合には、IFSを用いて論理式を短く、わかりやすくすることを考えるとよいかもしれません。
<参考>IFをLOOKUPに置き換え短くする
今回の事例をLOOKUPで構成すると、論理式の文字数はさらに削減可能です。(LOOKUPについての説明はこちら)
実際に、配列形式で作成してみます。
文字数が101→25文字となり約75%短くすることができました。
まとめ
「IFの中にIFが繰り返し入ってしまい、論理式が長く、複雑になってしまう」という問題に対して、関数IFSによる置き換えを説明しました。
分類パターンが多い場合には、IFSを用いた方が短く、条件もわかりやすく表現できます。
- IFの中にIFをネストしていくと、繰り返しにより論理式が長く、複雑になる
- IFSは論理式に対し結果をセットするため論理式内に条件を反映できる
- IFSに置き換えると論理式を短く、条件をわかりやすくできる
IFとIFSは同種の関数ですので、うまく状況に応じて使いわけると便利です。
当ブログでは実際の仕事での経験を通して、役立つノウハウの蓄積を図っています。お時間があれば以下のリンクより、色々な記事を読んでいただければと思います。
ここまで読んでいただき、ありがとうございました。
コメント