このページには広告が含まれる場合があります。
シリーズでお送りしている本連載ですが、
何回か前に「IFERROR関数」を取り上げていました。
「エクセル2007」が登場するまでは、「ISERROR」関数で処理していたシート内のエラーに対して、新しく「IFERROR」関数ができたおかげで、関数式を短くしながらエラー処理を行えるようになったというお話です。
今回は、「エクセル2013」から登場した「IFNA」関数を取り上げました。
関数の名前からも分かるように、「IFERROR」関数と性質は同様になります。
集計対象の値が見つからない場合に、「#N/A」というエラーがセルに表示されますが、
その場合に処理を「IFNA」関数だけで分岐できるようになったわけです。
上の画面は、「ISNA」関数と「IFNA」関数の両方を使った結果となります。
セル「C2」とセル「C3」には、セル「B2」とセル「B3」に入力された関数式を表示しています。
もちろん、関数式の表示には前回見た「FORMULATEXT」関数を使っています。
「IFNA」関数とは、対象となるセルが「#N/A」というエラーであれば
どのような値を表示するかを設定する関数です。
今回の場合は、セル「A2」が「#N/A」であれば、「エラーです」という文字列を表示するようにしています。
対して昔からある「ISNA」関数は、対象のセルに「#N/A」というエラーが発生した場合に、それが「TRUE(正しい)」のか「FALSE(間違い)」なのかを返すのみとなります。
したがって、「#N/A」となった場合にどう処理したいかをさらに「IF」関数を使って判断するしかないのです。
「ISNA」関数だと「IF」関数を余計に使わなければならず、おのずと関数式自体が長くなってしまいます。
#N/Aとなりやすい主な関数とは
前回の「FORMULATEXT」関数は、関数式が入っていないセルを参照すると
結果として「#N/A」のエラーを表示します。
上の場合は、「FORMULATEXT」関数で参照しているセル「A1」に
関数式が入っていないので、結果として「#N/A」が表示されています。
検索系の関数にも「#N/A」というエラーが表示される場合が多いかもしれません。
例えば、上のように「VLOOKUP」関数を使って、「宮嶋」という名前を検索してその結果を集計しようとしても「宮嶋」という名前が見つからなければ、「#N/A」が表示されてしまいます。
そんなエラーが表示された場合に処理を行う必要があれば、
「IFNA」関数を使うと式をコンパクトにできるのです。
続きは次回
エクセルのマクロ(関数)なども含めたプログラミングの世界では、エラーが発生した場合の条件分岐は当たり前の作業となりますが、この作業が簡素化されるのは、開発側(関数の利用者側)にとっても大変楽になりますよね。
さて、次回からは「エクセル2016」で新たに追加された関数達を見ていきたいと思います。
最初は、条件分岐の新しい関数である「SWITCH」関数となります。
どうぞお楽しみに!