数式のネストレベルが拡大


数式で、関数の中に関数を入れることをネストまたは入れ子と呼びます。たとえば次のような使い方です。

上の数式はIF関数の中に他の関数が入っていません。ネストしていない数式です。対して下の数式は、IF関数の中でもう一つIF関数が使われています。これがネストしている数式です。青色で示したIF関数は「1つめのネストしている関数」という意味でネストレベル1の関数とも呼ばれます。

さて、このように関数の中に他の関数を入れて、その関数の中にもさらに別の関数を入れて、そのまた関数の中にも・・・と関数のネストを繰り返したとき、いったい何個の関数をネストできるのでしょう。実はExcel 2003までの仕様では、最大のネストレベルが7と決まっていました。

Excel 2007では、許される関数のネストレベルが最大64になりました。

Excel 2003ではエラーになって入力できなかった数式も、ほら!ご覧の通り。

本当に64レベルまで入力できるか、実際にやってみました。

IF(A1="",~) の中で IF(A2="",~) がレベル1のネスト、IF(A3="",~) がレベル2のネスト・・・と続けて、IF(A65="",~)がレベル64のネストです。問題なく入力できました。念のため、もう1つネストを深くしてみると、

ちゃんとエラーになりました。しかも、エラーメッセージに「ネストが深すぎる」とエラーの原因まで明記されています。Excel 2003のエラーメッセージよりもわかりやすくなりましたね。でも、ヘルプで「ネスト」と書かれているのに、エラーメッセージでは「入れ子」となっています。このへんは用語を統一して欲しいものです。