IF関数を使っていてエラー表示が出ると、どうすれば解決できるのか、いつも悩みます。。
気持ちはすごくわかります。
私もIF関数を使い始めの頃は数式やワークシートの値を何度も見返したりしてエラーの原因を見つけるのに悪戦苦闘していました(笑)
実際に、エラーの種類は大別すると7種類あります。
今回はそれぞれの原因と解決策について解説していきますね。
はじめに
本題に入る前に、この記事がおすすめな人を挙げてみます。
- IF関数を使う頻度が高い人
- IF関数に限らず、関数のエラー解消に困っている人
- 事務職の人
ちなみに、最低限「IF関数の基礎」を把握している想定での記事となります。
※自信がない方はこちらの記事で学んでください。
→【エクセル初心者向け】データの条件分岐を自動化してストレスフリー!IF関数の使い方
IF関数でエラーになるケースは全部で7種類
IF関数を使っていると、どんなに慣れている方でもエラーが発生することをゼロにできるわけではありません。
私自身も、数式の”,”[カンマ]の漏れや、参照するセルを指定間違えなどが原因でエラーを起こすことがしばしばあります。
実は、エラーを起こさないことではなく、「エラーを解決するリカバリ作業を迅速にできるかどうか」が重要なのです。
このエラーのリカバリ作業を迅速にできるかどうかが、エクセル関数の上級者かどうかの分かれ道といえます。
使う頻度の高いIF関数だけでも、このエラー解消が問題なくできるようになるために、まずは全体像を把握しましょう。
そのために、IF関数でどんなエラーが起きるか、エラー結果を基準に全7種類を以下のとおり表にまとめてみました。
No. | 数式確定 | 数式の戻り値 | エラー結果 |
---|---|---|---|
1 | × | – | 「この数式には問題があります~」 というメッセージが表示 |
2 | × | – | 「この関数に対して~」 というメッセージが表示 |
3 | 〇 | × | 戻り値が”#NAME?”というエラー値 |
4 | 〇 | × | 戻り値が”#VALUE!”というエラー値 |
5 | 〇 | × | 戻り値が”#REF!”というエラー値 |
6 | 〇 | × | 戻り値が”#N/A”というエラー値 |
7 | 〇 | 〇 | 戻り値がユーザーの想定外の値 |
それでは、1つずつエラー結果ごとの原因とその解決策について解説していきます。
【エラー1】「この数式には問題があります~」というメッセージが表示
1つ目のエラーは、メッセージが表示されて数式の確定すらできないエラーです。
このメッセージとは、具体的には以下の内容です。
この数式には問題があります。
数式を入力していない場合は次の点に注意します。
最初の文字に等号(=)やマイナス記号(-)を使用している場合は、数式として認識されます。
- 入力内容:=1+1、セルの表示:2
これを回避するには、先頭に単一引用符(‘)を入力します。
- 入力内容:’=1+1、セルの表示:=1+1
原因
IF関数の場合、”()”[カッコ]や”,”[カンマ]を消したり、入れ忘れると発生します。
上記の例では、数式中の”IF”の隣の”(”[左カッコ]が抜けてしまうことが原因です。
よって、IF関数の引数で入力できるルール外のため、数式が確定できていないというわけです。
ちなみに”)”[右カッコ]が抜けた場合は、Excel側で補正してくれる場合が多いです。
なお、このメッセージを消さないことには、数式を確定できないため、その場で解決するか、いったん数式をすべて消去する必要があります。
解決策
解決策は、シンプルに数式を見直して該当部分を然るべき内容へ修正することです。
そのために、重要なのはエラーの原因部分をどう判断するかですが、そのポイントは以下の2点です。
- 数式内のすべてIF関数の”()”[カッコ]抜けや”,”[カンマ]抜けがないか
- 他の関数と組み合わせている場合は、その関数の”()”[カッコ]や”,”[カンマ]抜けがないか
特に、IF関数は他の関数と組み合わせる機会が多いので、組み合わせる場合は、チェックすべき”()”[カッコ]や”,”[カンマ]が増えるので、より注意を払いましょう。
【エラー2】「この関数に対して~」というメッセージが表示
2つ目のエラーも、メッセージが表示されて数式の確定すらできないエラーです。
このメッセージとは、具体的には以下の内容です。
この関数に対して、多すぎる引数が入力されています。
原因
こちらのエラーメッセージは数式内に余計な”,”[カンマ]を入れてしまうと表示されます。
こちらのメッセージも消さないことには、関数の数式を確定できないため、その場で解決するか、いったん数式をすべて消去する必要があります。
解決策
解決策は、シンプルに数式を見直して余計な”,”[カンマ]を消すことです。
数式内にIF関数の数が多かったり、他の関数と複数組み合わせていると目視で該当箇所を見つけることが大変です。
どうしても余計な”,”[カンマ]の場所が分からない場合は、個々の関数の動作確認をしたものを順番にIF関数へ入れていくと良いですね。
【エラー3】戻り値が”#NAME?”というエラー値
3つ目のエラーは、戻り値が”#NAME?”というエラー値です。
読み方は「ネーム」と呼びます。
なお、エラー3~6は数式の確定はできますが、IF関数の戻り値がエラー値になってしまうものです。
原因
このエラーは以下のような場合に表示されます。
- 関数名の入力ミス
- 引数部分で”[ダブルクオーテーション]なしの文字列がある
続いて、具体例として実際の画面も見ていきましょう。
上記のように、数式の引数部分が”[ダブルクオーテーション]が漏れていると発生します。
解決策
解決策は、シンプルに数式を見直して該当部分を然るべき内容へ修正することです。
その際、特に注視すべきポイントは以下の2点です。
- 関数名が正しいか
- 数式内に文字列がある際に”[ダブルクオーテーション]が左右に1つずつあるか
関数名の部分は、IF関数自体は関数名が短いので間違える可能性は少ないため、他の関数と組み合わせる場合に注意しましょう。
それよりも、IF関数の場合は引数に文字列を数式内に直接入力することの方が頻度は高いため、”[ダブルクオーテーション]漏れがないようにしましょうね。
【エラー4】戻り値が”#VALUE!”というエラー値
4つ目のエラーは、戻り値が”#VALUE!”というエラー値です。
読み方は「バリュー」と呼びます。
原因
このエラーは以下のような場合に表示されます。
- 数式内のすべてIF関数の”,”[カンマ]抜けがある
- 他の関数と組み合わせている場合は、その関数の”,”[カンマ]抜けがある
こちらは、実は1つ目のエラーと近い原因ですが、異なる点は”,”[カンマ]抜けの結果、まだ数式として修正できそうだとExcel側が判断できる場合に発生します。
たとえば、以下のように「数式に入力エラーが見つかりました。~」というエラーメッセージが表示されるケースです。
では、具体例として実際の画面も見ていきましょう。
数式に入力エラーが見つかりました。これを次のように修正しようとしています:
=***********
この修正に同意しますか?
このエラーメッセージの「はい」を押下すると、修正内容が不適切であった場合には以下のようにエラーになります。
修正結果が問題ない場合(たとえばIF関数の”)”[右カッコ]など)の修正であれば良いですが、上図のようにエラーなってしまうケースがあることも覚えておきましょう。
解決策
解決策は、こちらもシンプルに数式を見直して該当部分を然るべき内容へ修正することです。
その際、特に注視すべきポイントは以下の2点です。
- 数式内のすべてIF関数の”()”[カッコ]抜けや”,”[カンマ]抜けがないか
- 他の関数と組み合わせている場合は、その関数の”()”[カッコ]や”,”[カンマ]抜けがないか
まず、1は1つのIF関数の数式中には、引数「真の場合」と「偽の場合」の両方があれば”,”[カンマ]は2つ、引数「偽の場合」を省略する場合は”,”[カンマ]は1つ必要となります。
”,”[カンマ]に不足があれば追加しましょう。
続いて、2は組み合わせている関数の数式中に指定しなければならない”,”[カンマ]が必要数分あるかを確認し、不足していれば、こちらも追加しましょう。
【エラー5】戻り値が”#REF!”というエラー値
5つ目のエラーは、戻り値が”#REF!”というエラー値です。
読み方は「リファレンス」と呼びます。
原因
こちらは、引数としてセル参照していたセルを削除や移動させてしまった場合に表示されます。
よくあるケースは、上記のように、意図せずに参照セルを削除してしまう場合ですね。
その場合、該当の引数部分が”#REF!”というエラー値に変わるため、どの引数の参照セルを消してしまったか分かりやすいです。
上記の例では、2つ目のIF関数の引数「論理式」と「真の場合」の部分が”#REF!”というエラー値になっていましたね。
そして、今回の例では、IF関数の結果が評価”A”に該当するケースであったため、IF関数の戻り値自体はエラーになっていない点が注意ですね。
解決策
解決策は、こちらもシンプルに数式を見直して、 “#REF!”になっている引数はどこか探し、該当する引数を再度セル参照し直せばOKですね。
【エラー6】戻り値が”#N/A”というエラー値
6つ目のエラーは、戻り値が”#N/A”というエラー値です。
読み方は「ノー・アサイン」と呼びます。
原因
以下のような場合に表示されます。
- 配列数式の場合に各配列の行数・列数が不一致
- 検索/行列関数と組み合わせている場合に、その関数の「検索値」が見つからない
1の具体的なケースは以下のとおりです。
上記のように、1つ目の配列「A2:A31」と2つ目の配列「B2:B32」の行数が異なるため、配列数式の戻り値が”#N/A”というエラー値になっています。
2については、解決策含めてVLOOKUP関数のエラーに関する以下の記事をご参照くださいね。
【エクセル中級者向け】VLOOKUP関数で起きるエラー7種類の原因と解決策まとめ | Excelを制する者は人生を制す ~No Excel No Life~
目次1 はじめに2 VLOOKUP関数でエラーになるケースは全部で7種類3 【エラー1】「この数式には問題があ・・・
解決策
解決策は、原因1の配列数式についてのみ言及します。
各配列の行数・列数が一致しているかを確認し、もし異なっていればセル範囲を再度指定し直しましょう。
【エラー7】戻り値がユーザーの想定外の値
最後の7つ目のエラーは、エラー値やメッセージが表示されない、ユーザーの想定外の戻り値が出てしまっている場合を指します。
こちらは、IF関数では起こりがちなため、もしかすると7つのエラーの中で一番発生率が高いといえます。
原因
主な原因は、数式を記述する人が参照するセルの指定間違えや、引数「論理式」が誤っている(”<”や”>”などの論理演算子の指定誤り等)、IF関数のネストの順番間違えなどが挙げられますね。
たとえば、以下のような状態です。
上記は、本来は評価がA→B→C→Dと判断されるようにネストしたかったところが、誤ってC→B→A→Dと判断される順番に記述してしまっていますね。
これは、人の目によるチェックでないと検出できません。
解決策
このように、IF関数のネストする順番を間違えると、一見問題ないように見える数式でも結果があべこべになってしまうケースもあります。
よって、挿入した数式が、きちんと想定通りの結果になっているか、チェック・検証が重要になりますね。
自分だけでなく、第三者が記述した数式においても、「数式の検証」機能を使うと段階的にチェックできるのでおすすめですよ。
数式の計算を段階的にチェックできる「数式の検証」
Excelの便利機能の代表として数式・関数があります。 ただ、計算が複雑になると、途中経過がわかりにくくなって・・・
さいごに
今回はIF関数のエラー全7種類について触れてきたので、かなりのボリュームになりました。
実際に、IF関数は慣れるまでは、いろいろなエラーを経験することになるはずです。
私もIF関数を使いたての頃はしょっちゅうエラーになっていたことがあるくらいです(笑)
しかし、何度もエラーを起こしては修正の繰り返しで、エラーの原因が不思議とわかるようになってきます。
つまり、数式の迅速なリカバリ作業ができるかどうかは、経験値に比例しますので、ぜひとも本記事を見ながらエラーの解消に何度も挑戦してみてくださいね!
なお、エラー解消以外にも、IF関数の応用テクニックを私の書籍で紹介しているので、こちらもご参考にしていただければと思います。
▼IF関数を基本から応用まで体系的に学びたい方向け
▼IF関数の応用テクニックに加えて、その他VLOOKUP関数なども学びたい方向け
ご参考になれば幸いですm(_ _)m
本記事は、実は私の書籍である「すごい!関数」の中で盛り込むはずだったコンテンツのひとつです。
ページ数の都合で泣く泣くカットした部分でしたが、IF関数を使う方全員に理解してほしい重要ポイントなので記事にまとめて直してみました。
エラーが起きると、本当に解消するまでに時間もかかりますし、精神的にもきついので、実際にエラーが出て困っている方の助けになれば嬉しいですね。