算数・数学では、一つの問題を解く方法は複数存在します。
非常に簡単な例で、
「2を3つ足してください。」
という問題ならば
「2+2+2」
でもいいですし
「2x3」
でもいいわけです。
算数・数学の好きな方というのは、一つ回答を得るのに複数の方法があるという事実を面白いと感じ、シンプルな数式で回答が得られる方をカッコイイと感じられるようなセンスを持っているように、私は思います。
計算をする道具の一つであるExcelでも、同じ回答を得るのに複数の方法があります。
Excelを使いこなせるというのは、複数の方法を思いつくことができ、その中から様々な要素を鑑みて最適な方法を選択できるということなんだと思っています。
実務でIF関数を利用する場合、ネストが深くなることがあります。
例えば、学校の先生がテストの点数によって生徒の評価を行うようなケースです。
合計点がH2セルに入力されているときに
250点未満を「E」
300点未満を「D」
350点未満を「C」
400点未満を「B」
400点以上を「A」
と評価する場合、IF関数を利用すれば
「=IF(H2<250,"E",IF(H2<300,"D",IF(H2<350,"C",IF(H2<400,"B","A"))))」
といった計算式になります。
正直言って解析するのもちょっといやな気分になります。
こんなときはIF関数よりもVLOOKUP関数を利用すれば、読みやすくメンテナンスも楽な数式にすることができます。
H2:H26セルに合計点、判定テーブルがL2:M6セルにある場合に、I2:I26セルに評価の表示を行う例 I2セルに
「=VLOOKUP(H2,$L$2:$M$6,2,TRUE)」
という計算式を入力
↓
I2セルをI26セルまでオートフィル
▼サンプルファイル(001994.xls 27KByte)ダウンロード
サンプルファイルでは、I2:I26セルにVLOOKUP関数を使った例、J2:J26セルには比較のためにIF関数を使った例を入力してあります。
IF関数を利用した場合、
「=IF(H2<250,"E",IF(H2<300,"D",IF(H2<350,"C",IF(H2<400,"B","A"))))」
とネストが深くて読むのも面倒な計算式が、VLOOKUP関数を使えば
「=VLOOKUP(H2,$L$2:$M$6,2,TRUE)」
というネストのない計算式で済んでしまいます。
完全に一致しない値を元に、「A」〜「E」の文字列を取得したいので、第4引数の検索の型に「TRUE」を指定しています。
仮に判定基準が変更になったような場合にも、IF関数を利用していれば深くネストされた数式を間違えないように注意しながら修正する必要がありますが、VLOOKUP関数を利用していれば判定テーブルを変更すれば済んでしまいます。
深くネストされたIF関数をよく使うという方は、VLOOKUP関数を利用するなど、他の方法で実装できないかを考えてみてはいかがでしょうか。
今回のサンプルファイルでは、評価テーブルを同じワークシートに作成していますが、実務で利用する場合は、別のワークシートに作成してそのワークシートを非表示にしておくなどする方が、より使いやすくなると思います。
Home » Excel(エクセル)の関数・数式の使い方 » 検索・行列 » IF関数のネストが深いときにVLOOKUP関数