スプレッドシート特有のエラー表示(#N/A、#ERROR!)の解説

Googleスプレッドシートのシートを前に「条件によって表示を変えたい」と悩んだことはないでしょうか。

入金済みかどうか、目標を達成したかどうか、そうした判定を毎回目で見て手入力していると、時間もかかるしミスも起こりやすい。そんな悩みを解決してくれるのがIF関数です。

基本構文はシンプルなのに、いざ使おうとすると「エラーが出る」「思った通りに動かない」という壁にぶつかる人が多いです。

この記事では、IF関数の基本から、初心者がつまずきやすいポイント、スマホで入力するときの注意点まで、会話形式でわかりやすく解説していきます。

IF関数って何?基本の書き方を教えて!

リュージ、スプレッドシートで「60点以上なら合格」みたいな判定を自動でやりたいんだけど、これって関数でできるの?僕、毎回目で見て手入力してて疲れちゃった…。

それはまさにIF関数の出番だね。「もし〜ならA、そうでなければB」という条件分岐を自動でやってくれる関数なんだ。書き方はこう。

=IF(条件式, 真の場合の値, 偽の場合の値)
例えば「=IF(B2>=60,”合格”,”不合格”)」と入力すると、B2セルが60以上なら「合格」、それ未満なら「不合格」と自動で表示されるよ。

思ったよりシンプル!これだけ覚えればいいの?

構文自体はね。ただ実務では「単一条件の判定」「AND・ORを使った複数条件の判定」「エラー対策との組み合わせ」の3パターンで使うことが多いよ。まずは一番シンプルな単一条件から慣れていこう。

IF関数は「=IF(条件式,真の場合の値,偽の場合の値)」という構文で、条件式がTRUEなら2番目、FALSEなら3番目の値が表示される。実務では①単一条件の判定②AND・ORを使った複数条件の判定③エラー対策との組み合わせ、という3パターンで使われることが多い。まずは単一条件から慣れていくのが習得の近道である。

実際どう使うの?具体例が知りたい!

合否判定はわかったけど、もっと仕事で使えそうな例が知りたいな。

例えば入金管理。入金日が入力されているかどうかで「=IF(D2=””,”未入金”,”入金済み”)」と書けば、D列に日付があれば「入金済み」、空欄なら「未入金」と自動表示されるよ。

おお、それは催促漏れ防止に良さそう!売上目標の達成判定とかもできる?

できるよ。「=IF(C2>=B2,”達成”,”未達”)」で実績が目標以上かを判定できる。段階評価したいなら入れ子にして「=IF(C2/B2>=1,”達成”,IF(C2/B2>=0.9,”ほぼ達成”,”未達”))」のように書くこともできるよ。

割引計算とかにも使えたりする?

もちろん。「=IF(C2=”VIP”,B2*0.9,B2)」ならVIP顧客だけ自動で10%割引になる。見積書や請求書を作るときにかなり時短になるよ。

IF関数は入金管理・売上目標の達成判定・割引価格の自動計算など、日常業務のさまざまな判断作業に活用できる。「=IF(D2="","未入金","入金済み")」のように空白判定を使う型と、「=IF(C2>=B2,"達成","未達")」のように数値比較を使う型を覚えておくと、多くの業務パターンに応用が利く。

エラーが出た…!スプレッドシートならではのつまずきポイント

リュージ!スマホでIF関数を打ってたら「#NAME?」ってエラーが出たんだけど、何にも間違えてないと思うんだよね…。

それ、スプレッドシート初心者が本当によく引っかかるやつだ。ダブルクォーテーションが全角になってない?スマホのキーボードだと自動で「”」が全角の「”」に変換されちゃうことがあるんだ。

まさにそれだ!全然気づかなかった…。見た目じゃほとんど区別つかないよ。

だよね。対策としては、スマホ入力のときはキーボードを英語(ローマ字入力ではなく英字)に切り替えてから記号を打つと安全だよ。PCでも日本語入力モードのまま「”」を打つと全角になることがあるから、数式を打つときは半角英数モードにしておくのがコツ。

他にもスプレッドシートならではの注意点ってある?

あるよ。「#N/A」は参照先が見つからないときに出るエラーで、他の関数(VLOOKUPなど)と組み合わせたときによく出てくる。あと「#ERROR!」はスプレッドシート特有の表示で、数式の構文自体がおかしいときに出る。Excelの「#NAME?」「#REF!」とは出方が微妙に違うから、検索するときは「スプレッドシート」で調べたほうが早く解決するよ。

なるほど、Excelの記事を見て解決しようとしてたから噛み合わなかったのか…。

そう、ここは意外と見落としがちなポイント。あと分母が0になる「#DIV/0!」もIF関数で事前に防げる。「=IF(B2=0,””,”計算式”)」のように、分母が0のときは空白を返すようにしておけば集計やグラフが崩れないよ。

スプレッドシートのIF関数でつまずきやすいのは、ダブルクォーテーションの全角混入によるエラーである。特にスマホ入力時は自動的に全角の「”」に変換されやすいため、記号を打つ際は半角英数モードを意識するとよい。またスプレッドシートには「#N/A」「#ERROR!」などExcelと出方の異なるエラー表示があるため、対処法を調べる際は「スプレッドシート」と明記して検索すると解決が早い。分母が0になる場合はIF関数で事前に空白処理をしておくと、集計やグラフの崩れを防げる。

複数条件を扱いたいときはどうすればいい?

「売上目標も達成してて、かつ粗利率も基準クリアしてたら合格」みたいに、条件が2つ以上あるときはどうするの?

それはAND関数の出番。「=IF(AND(C2>=B2,E2>=0.3),”達成”,”未達”)」のように書けば、両方の条件を満たしたときだけ「達成」と表示される。逆に「どちらか一方でもOK」なら、AND関数の代わりにOR関数を使えばいい。

条件がもっと多い場合、例えば「80点以上はA、60点以上はB、それ未満はC」みたいな3段階評価は?

それはIF関数を入れ子(ネスト)にする方法もあるけど、正直おすすめはIFS関数。「=IFS(条件1,結果1,条件2,結果2,TRUE,その他の結果)」と書けば、入れ子にせず条件を横に並べられて見やすいよ。しかもGoogleスプレッドシートなら無料で最初からずっと使えるのが地味に嬉しいポイント。

無料で最初から使えるのはいいね!バージョンとか気にしなくていいの助かる。

そうなんだ。ちなみにIF関数は上から順番に判定されるから、条件を書く順番は「厳しい条件から先に」がコツ。緩い条件を先に書くと、後ろの条件が判定される前に確定してしまうことがあるから気をつけて。

複数条件をすべて満たす場合はAND関数、いずれかを満たす場合はOR関数をIF関数と組み合わせるとよい。3段階以上の評価をしたい場合は、IF関数の入れ子よりもIFS関数を使うほうが数式がシンプルで見やすくなる。Googleスプレッドシートではバージョンを気にせず無料でIFS関数を使える点もメリットである。条件は厳しいものから順に書くのが基本ルールとなる。

まとめ:IF関数の使い方早見表

やりたいこと 数式の型 単純な条件判定 =IF(条件,真の場合,偽の場合) 空白かどうかで判定 =IF(A2=””,”未入力”,”入力済み”) 複数条件(すべて満たす) =IF(AND(条件1,条件2),真の場合,偽の場合) 複数条件(いずれか満たす) =IF(OR(条件1,条件2),真の場合,偽の場合) 3段階以上の評価 =IFS(条件1,結果1,条件2,結果2,TRUE,その他) 分母0のエラー防止 =IF(分母=0,””,計算式)

今日でIF関数、ちゃんと使えるようになった気がする!特にダブルクォーテーションの全角問題、教えてもらってなかったら一生気づかなかったかも…。

そこは本当にみんな引っかかるところだからね。まずは単一条件から始めて、慣れてきたらAND・OR、最終的にIFS関数まで使えるようになれば、業務のかなりの部分を自動化できるよ。

IF関数は「=IF(条件,真の場合,偽の場合)」という基本構文さえ押さえれば、入金管理や売上判定、割引計算など幅広い業務に応用できる。特にスマホ入力時のダブルクォーテーション全角化や、Excelとは異なるエラー表示など、スプレッドシート特有のつまずきポイントを事前に知っておくことで、無駄なエラー対応の時間を減らせる。複数条件を扱う際はAND・OR関数、3段階以上の評価にはIFS関数を活用し、条件は厳しいものから順に記述するのが基本である。

関連記事

  1. スプレッドシートをスマホで改行するには?Enterで確定されてしまう問題を解決

  2. Googleスプレッドシートの ARRAYFORMULA関数の使い方

  3. スプレッドシートのプルダウンの作り方|色付け・連動・複数選択まで解説

  4. スプレッドシートで「あの人が何を編集したか」を確認する方法

  5. Googleスプレッドシートの SUMIF・COUNTIF関数の使い方(条件範囲の指定ミスも解説)

  6. スプレッドシートのショートカット、これだけ覚えれば仕事が変わる【厳選5つ】

  7. スプレッドシートで家計簿を作る方法|自動計算・グラフ化・Googleフォーム連携まで解説

  8. スプレッドシートのショートカット、覚えて本当に速くなる?挫折しない覚え方も解説

  9. スプレッドシートが重い・固まる時に試すべき7つの対処法