IF(IF(IF(IF…)))はもう嫌だ! IFの入れ子は卒業しよう

パソコン小技

― IFS と SWITCH を使ってみる ―

Excelで「条件によって結果を変えたい」と思ったとき、
多くの人が最初に使うのが IF関数 です。

=IF(A1>=80,”A”,IF(A1>=60,”B”,”C”))

ただ、この書き方は

  • 条件が増えると読みにくい
  • ミスに気づきにくい

という弱点があります。

そこで登場するのが
IFSSWITCH です。


IFS関数:条件を「上から判定」する


IFS関数は、
複数の条件式を順番に評価する関数です。

=IFS(A1>=80,”A”, A1>=60,”B”, A1>=40,”C”)

この式は次のように動きます。

  1. A1が80以上なら「A」
  2. そうでなければ60以上なら「B」
  3. そうでなければ40以上なら「C」

IFSが向いている場面

  • 点数による評価
  • ランク分け
  • 範囲判定(以上・未満)

つまり、
「大小関係」で判断したいときに使います。


SWITCH関数:値が「一致」するかで分岐する

SWITCH関数は、
特定の値に一致するかどうかで結果を切り替える関数です。

=SWITCH(A1,  1,”未提出”,  2,”提出済”,  3,”再提出”  “不明”)

A1の値が
1なら「未提出」
2なら「提出済」
3なら「再提出」

というように、
値と結果をセットで書けるのが特徴です。

SWITCHが向いている場面

  • コード変換
  • 区分・状態の表示
  • 固定パターンの分岐

IFS と SWITCH の違いを整理する

観点IFSSWITCH
判定方法条件式値の一致
比較内容大小・範囲等しいか
主な用途点数・評価コード・区分

使い分けの目安

  • 「〇点以上」 → IFS
  • 「〇番なら」 → SWITCH

なぜIFSとSWITCHを使うのか

ここまで読むと、
「じゃあ IFの入れ子はダメなのか?」
と思われるかもしれません。

正直に言うと、
とどちゃん自身は IF の入れ子がそこまで嫌いではありません。

むしろ、一人で作る時には職人的に楽しんでいる時もあります。


IFの入れ子と、IFS / SWITCH の見方

① バージョンの問題

SWITCH は、
古いバージョンの Office では使えません。

そのため、誰の環境でも確実に動くという観点、気遣いは必要です。そんなときには
IF の入れ子が悪いわけではありません。


② 読みやすさ・伝わりやすさ

もう一つは、「あとから読む人」の存在です。それを考えるとIFの入れ子は可能なら避けた方がいいかもしれません。
IFSやSWITCHは見てわかりやすいですし、修正もしやすいそれは

  • 条件がひと目で分かるか
  • どこで何を判断しているか
  • ミスに気づきやすいか

これは Excel だけでなく、
プログラミングのコードでも同じです、面倒くさいなと思いながらも、

  • 変数を分かりやすく命名する
  • 必要なところにコメントを書く

共同で作業する中で、古いバージョンを使う人もいるかも
後から使うひと修正する人には、見やすい方がいいかも

そんなちょっとした気遣いが、
IFの入れ子や IFS や SWITCH にもつながっている気がします。


まとめ

このブログで一番伝えたかったことは、IFの入れ子は IFSで置き換えできるよ! そしてSWITCHとの使い分けるともっとシンプルになるよ。ということでした。

  • IFS:範囲・条件判定
  • SWITCH:値ごとの分岐

今どきの Excel は、「計算」よりも「条件をどう整理するか」が大切。

IFとIFS と SWITCH を使い分けられるようになると、Excel の見え方が
すこし、変わってくる……かも……です。
しらんけど。


こどもプログラミング教室 すまいる・キッズ
 代表・メインインストラクター
一般社団法人 日本褒め言葉カード協会
 藤井寺支部長
褒め言葉トランプマスターインストラクター
西尾茂和(とどちゃん)です。

コメント