エクセルIF関数の複数条件にネストは不要!LOOKUP関数で短く簡潔に

エクセルIF関数で、3つ以上の複数条件で指定すると、式が長くなり、途中で数式を間違えてしまった、ということはないでしょうか。そこで登場するのがLOOKUP関数です。この関数を使うと、IF関数の長ったらしいネストの式が、こんなにもと、驚くほど簡単に短くなります。長く、複雑になった入れ子を解消できます。

もう、IF関数のネスト(入れ子)は不要です!こんな素晴らしい使い方があったと、改めてLOOKUP関数を見直すことでしょう。数式が見た目もよく、簡潔にまとまります。LOOKUP関数で、IF関数の入れ子を回避しましょう。

これを見ることによって、スキルアップすること間違いありません!

 

 

IF関数の入れ子の問題

エクセルIF関数は、最大64個、入れ子にすることができますが、複数のIFを使って複雑な入れ子にすることは、推奨されていません。正しい結果が返されない可能性があります。

最後まで正しく計算されるとは限りらないので、予想外の結果が返ってくる場合があります。

入れ子が多いほど式を間違える可能性があり、見た目も分かりにくいです。

このIF関数の入れ子の問題を、LOOKUP関数で解消できます。

LOOKUP関数を使うと、長ーいIF関数の入れ子を、こんなにも非常に短く簡潔にできます。

この方法を契約一覧表を基に、契約者の年齢を、年代別に区分しましょう。

IF関数の入れ子の問題をLOOKUP関数で簡潔に短くする

下の表には、契約者の年齢が入力されています。この契約一覧表を使って、IF関数の長ーいネストの式を、短くする方法を説明していきましょう。

この契約者を、年代別にLOOKUP関数で、区分して表示させてみます。

 

 

年代別表示一覧表

年齢表示
20歳未満A
20歳以上30歳未満B
30歳以上40歳未満C
40歳以上50歳未満D
50歳以上E

 

契約者を年代別に区分して、上の表の通りA~Eで表示させてみましょう。

 

C列に、年代別にA~Eで表示させます。C2に、式を入力しましょう。

C2 =LOOKUP(B12,{0,20,30,40,50},{“A”,”B”,”C”,”D”,”E”}) 

C2の式は、「{0,20,30,40,50},{“A”,”B”,”C”,”D”,”E”}」がポイントになります。

年齢「23」を、検査範囲{0,20,30,40,50}で検索して、一致する値を、対応範囲{“A”,”B”,”C”,”D”,”E”}から返しています。

C2の式をドラッグして、下にコピーしましょう。

年齢別にA~Eで表示されました!

ここで、LOOKUP関数を使うと短い式ですが、IF関数を使うとどのような式になるか、実際に作成してみましょう。

 

 

LOOKUP関数の式をIF関数で作成するとどうなる?

契約者の年齢を年代別に、IF関数で区分して表示させてみましょう。

 

C2に、式を入力しましょう。

C2 =IF(B2<20,”A”,IF(B2<30,”B”,IF(B2<40,”C”,IF(B2<50,”D”,”E”))))

LOOKUPの式と比べてみましょう。

=LOOKUP(B12,{0,20,30,40,50},{“A”,”B”,”C”,”D”,”E”}) と比べて、複雑で分かりにくいです。

入れ子が多くなればなるほど、複雑になり、正しい結果が返されない可能性があります。

LOOKUP関数はあまり知られていない関数ですが、VLOOKUPと同じ検索/行列の関数です。検索、抽出にはVLOOKUP関数がよく使われますが、ここでLOOKUP関数の素晴らしさが分かります。

 

 

関数の説明

LOOKUP関数

エクセルLOOKUP関数は、指定した値を1行または1列からなるセルの範囲、または配列から見つける時に使います。ベクトル形式と配列形式の2種類の使い方がありますが、使用頻度はベクトル形式が高いです。

ベクトル形式の書式と引数

LOOKUP ((検査値, 検査範囲, 対応範囲)

検査値検索する値を指定します。検査値には数値、文字列、論理値が指定できます。または名前やセル参照でも指定できます。
検査範囲検索する範囲を1行または1列で指定します。昇順で並び替えておく必要があります。
対応範囲検索の対象となる範囲を指定します。1行または1列で範囲を指定し、検査範囲と同じサイズにします。

 

配列形式の書式と引数

LOOKUP (検査値,配列)

 検査値検索する値を指定します。検査値には数値、文字列、論理値が指定できます。または名前、セル参照でも指定できます。
 配列検査値と比較するセル範囲を指定します。配列の最初の行、列から検査値を探します。

 

IF関数

エクセルIF関数は、真の場合は真の場合の値を返し、偽の場合は偽の場合の値を返す関数です。IF関数は、エクセル関数の中で使用頻度が高い関数です。他の関数と組み合わせて使用されることも多いです。

IF関数の書式と引数

IF(論理式,真の場合,偽の場合)

論理式条件式を指定します。
真の場合論理式がTRUEの場合に返す値を指定します。
偽の場合論理式がFALSEの場合に返す値を指定します。省略するとFALSEを返します。

 

IF関数、AND関数、OR関数の組み合わせ

IF関数のネスト(入れ子)を、簡単に短くする方法を紹介しましたが、それでもIF関数は、よく使われる関数です。他との関数とも組み合わせて使うことが多いですが、中でもAND関数とOR関数とはよく組み合わせます。もし~がAかつB、もし~がAまたはB、の論理式です。これは、データを扱う作業には欠かせないスキルです。

こちらの記事もご覧ください。⇒エクセルIF関数で複数条件!OR関数、AND関数と組み合わせて使う