中級編の最終回では、関数を「ネスト」によって組み合わせる方法を解説します。ネストとは、関数の引数として別の関数式を組み込み、入れ子にする式の立て方です。エクセル2003までのバージョンでは、最大7つの階層まで関数をネストできます。これを使えば、余計な作業セルを設けなくても、一発で目的の計算やデータ処理を実現できます。

 ネストによって関数を組み合わせる例として、ここでは「関数のエラーを防ぐ」定番テクニックを紹介しましょう。中級編の第1回で触れた「VLOOKUP関数にエラーを表示させない方法」です。

 下の図1は、VLOOKUP関数を使って商品リストから商品番号を検索し、該当する商品名を調べる表です。VLOOKUP関数は、引数に「検索値、範囲、列番号、検索の型」の4つを指定して、「検索値」を「範囲」の左端で探し、見つかった行の、「列番号」で指定した列からデータを取り出します。ここでは「検索値」に調べる「商品番号」、「範囲」に商品リストを指定し、「列番号」を「2」として2列目の商品名を取り出すように式を立てました。「検索の型」は検索のモードを指定する引数で、「FALSE」とすれば、完全に一致する値のみを検索します。

図1 F2セルに入力した「商品番号」を左側の商品リストで検索し、該当する「商品名」を自動表示するVLOOKUP関数の式。正しい商品番号を入れれば問題ないが…

 ところが、検索が終わって「商品番号」欄を「Delete」キーで消去すると、VLOOKUP関数がエラーを表示します。VLOOKUP関数は、引数「検索値」に指定したセルが空欄のとき、「#N/A」というエラーを表示する仕様となっているのです。これは「値が無効である」を意味する「Not Available」の略語。検索する値が存在しないので、「無効」だというわけです(図2)。

図2 検索する「商品番号」欄をクリアすると、VLOOKUP関数はエラー「#N/A」を表示する。このままでは、「商品番号」欄に常に何かしらの値を入れておく必要があり、具合が悪い

 このエラーを解消するにはどうすればよいでしょうか。「検索値が空欄のときもエラーにならないVLOOKUP関数を教えてください」というのはムリな相談です。こんなときこそ、関数の「組み合わせ」が威力を発揮します。IF関数を使った“場合分け”によって、対策を講じればよいのです。

[IF関数を使うとこうなる:次のページへ]