こんにちは、さち です。
エクセルで必須と言っても過言ではない「IF」関数。
条件の分岐で使いますよね。
ただ、少し複雑な条件分岐をする式を書くと
「IF」の中に「IF」が入る
いわゆる「ネスト(入れ子)」の状態ができることがあります。
ネストは、「IF」が入り組んで見にくいため
「(」や「)」の数が足りずエラーを起こすなど
トラブルの原因になりがち。
ということで、今回は
「IF」のネストの見にくさを解決する方法を考えてみます。
「IF」の入れ子が見にくい問題
上図の「式」は、「条件」が
「○」なら、「まる」
「×」なら、「ばつ」
「△」なら、「さんかく」を表示します。
「それ以外」の時は、何も表示しません。
そんなに複雑なことはしていないのですが
「IF」が入れ子(ネスト)になっていて見にくいですね。
この式を見やすくする方法を考えてみます。
方法1 - 改行を使う
セル内では改行ができないと思われがちですが
実は、「Alt + Enter」キーで改行ができます。
上図は、次の「IF」が出てくる場所で改行をしました。
2行目以降の先頭には「半角スペース」を入れました。
「半角スペース」は式に影響しないので入れ放題です。
これだけでも結構見やすくなりました。
ただ、最後に「)」が連続していて見にくいので
プログラミング風に、インデント(行頭のスペース)と改行を入れてみました。
対応するカッコには同じ色が付くし
カーソルを合わせるとカッコが強調表示されるから
5行はやり過ぎかなという気がしないでもない…。
方法2 - 「IF」を分割する
見にくい原因は「入れ子(ネスト)」でしょ?
なら、それをやめればいいじゃない。
その結果が上図です。
ちなみに、「&」は「文字列」をつなぐ記号で
それぞれの「IF」の結果(出力)をつないでいます。
(「&」がないとエラーが出ます)
この方法なら
式を改行しなくてもある程度見やすさを確保できるので
スペースを取らないというメリットもあります。
よし!これでいいじゃん!
…と思いきや、この方法は
入れ子の最深部の結果が「空っぽ」である時しか使えません。
例えば、入れ子(ネスト)だった元の式は
すべての「IF」を「偽(FALSE)」で進むと何も出力しませんでしたが
これが「空っぽ」以外ならダメなわけです。
なかなか、上手くいかないものです。
おまけ - 「IF」の出力が数値の場合
前項2つの方法は、「IF」の出力が「文字列」の場合でした。
出力が「数値」で計算に用いる場合は
「&」ではなく「+」を使うなど少し変更が必要です。
まとめ
結局、場合によって
「方法1」「方法2」を使い分けるしかなさそうです。
プログラム言語でいう
「switch」や「case」に相当するものがエクセルで使えれば
もっとシンプルに書ける可能性があるので
もう少し調べてみようと思います。
【関連記事】
→ エクセル:「IF」の中に「IF」はややこしい!「AND」「OR」を使おう
→ エクセル(Excel)で知ってると便利なこと 目次
コメント