ExcelのIF関数がうまくいかない原因と直し方|ネスト・型不一致・引用符ミスを解決【2026】

スポンサーリンク
スポンサーリンク

「条件を書いたつもりなのに結果がおかしい」「ネストしたら急にFALSEばかり返ってくる」——そんな場面で困ったことはありませんか?

 

原因のパターンはほぼ決まっています。

 

ネストの順番ミス・文字列と数値の型不一致・引用符の付け忘れ——

 

この3つが定番です。

 

この記事では、IF関数がうまくいかないときの症状から原因を絞り込み、再現性の高い解決手順を図解つきで解説します。

スポンサーリンク

まず確認!IF関数がうまくいかない「症状」から原因を絞り込もう

IF関数のトラブルは、表示されている結果や画面の状態によって原因が大きく変わります。

症状 考えられる主な原因 参照先
#NAME? エラーが出る 引用符の付け忘れ・全角文字の混入 原因③
#VALUE! エラーが出る 引数にエラー値が含まれている 原因③
数値条件なのに常にTRUE(合格)になる 文字列と数値の型不一致 原因①
1行目だけ正しく残りが全部おかしい ネストの条件順序ミス 原因②
括弧の数が合わないエラーが出る ネストの括弧閉じ忘れ 原因②
空白セルの判定が意図通りにならない ISBLANKと””の使い分けミス 原因④

IF関数 — 原因チェックナビ

症状を選ぶ
#NAME? エラー
常にTRUEになる
結果がズレる
空白判定がおかしい
#NAME? エラーの主な原因
チェック項目:
引用符 / 全角文字
原因③へ
↑ 文字列に ” ” が付いているか確認

IF関数の基本構文を最初に確認しよう

IF関数の書き方は次のとおりです。

 

=IF(論理式, 値が真の場合, 値が偽の場合)

 

この3つの引数のどこかにミスが潜んでいるケースがほとんど。次のセクションから原因別に見ていきましょう。

スポンサーリンク

原因① 文字列と数値の型不一致|もっとも見落としやすいミス

IF関数で「数値の比較をしているのに常にTRUEになる」という症状のうち、最も気づきにくいのが文字列と数値の型不一致です。

 

見た目は数字でも、Excelが文字列として扱っているケースが少なくありません。

文字列が混入するとまさかの誤判定が起きる

具体例で確認してみましょう。セルA1に文字列の「60」が入っているとします。数値の60ではなく、テキストとしての”60″です。このとき次の数式を入れるとどうなるでしょうか。

 

=IF(A1>=70,"合格","不合格")

 

結果は——「合格」になってしまいます。

 

60は70未満なので「不合格」のはずですよね。

 

ところがExcelの仕様上、>・<・>=・<= などの数値比較では「テキスト文字列は数値よりも必ず大きい」と判定される仕組みになっています。

 

そのためA1が文字列であれば何点であっても、すべて「合格」と返してしまうわけです。

 

WebシステムやCSVから数字データを貼り付けた際にこの状態になりやすいため、外部データを使った集計表では要注意でしょう。

型不一致の確認方法と修正手順

文字列かどうかの一番速い確認方法は、セルの「左右揃え」を見ることです。

 

Excelは数値を自動で右揃えにする仕様なので、数字なのに左揃えのセルは文字列の可能性があります。

 

セルの左上に小さな緑の三角マーク(エラーインジケーター)が出ていれば、文字列のサインと見てよいでしょう。

 

文字列→数値の変換手順

STEP 1
対象セルを選択 → ホームタブの書式を「標準」または「数値」に変更

STEP 2:セルをダブルクリックして Enter(または F2 → Enter)で再確定

← 必須!
セルが右揃えになり、IF関数が正しく数値として判定できる状態に

 

書式を変えるだけではExcelが変更を認識しない場合があります。F2→Enterの再確定操作を必ずセットで行いましょう。

 

対象セルが大量にある場合は、列を選択してから「データ」タブ→「区切り位置」→そのまま「完了」をクリックする方法で一括変換できます。

 

数式そのものが表示されて計算されない症状が重なっている場合は、Excel数式が表示されるだけで計算されない原因と直し方も合わせて確認してみてください。

スポンサーリンク

原因② ネストの順番ミス・括弧の閉じ忘れ

IF関数を入れ子(ネスト)にして複数の条件分岐を作る場合、「条件の順番」と「括弧の閉じ方」の2点でミスが起きやすくなります。

 

どちらも一見正しそうに見えるのが厄介なところです。

条件の順番を間違えると全体の結果がズレる

「90点以上:A、80点以上:B、70点以上:C、それ以外:D」という評価を例に考えましょう。

 

分類 数式の例 90点を入力した結果
❌ NG(小さい値から) =IF(A1>=70,"C",IF(A1>=80,"B",IF(A1>=90,"A","D"))) 「C」(誤り)
✅ 正解(大きい値から) =IF(A1>=90,"A",IF(A1>=80,"B",IF(A1>=70,"C","D"))) 「A」(正しい)

 

最初の条件に一致した時点でそこで処理が止まります。「>=70はC」を先に書いてしまうと、90点も80点も全員そこで引っかかってしまうわけです。

 

大きい値から順に条件を並べるのが鉄則と覚えておきましょう。

 

🔄
IFネストの条件順序:正解 vs NG
評価式の判定順

最初の条件

一致した時点で終了
NG:小さい値から
70→80→90 の順で書くと90点でも「C」になる
正解:大きい値から
90→80→70 の順で書けば正しく判定される
💡
迷ったらIFS関数
Excel 2019以降ならネストなしで同じ分岐が書ける

括弧の閉じ忘れを素早く見つけるコツ

ネストが3段以上になると、閉じ括弧「)))」の数が合わなくなるミスも頻発します。

 

括弧が足りないと「この数式には問題があります」というダイアログが表示されて入力が完了できません。

 

数式バーで入力中、Excelは括弧を色分けして対応関係を示してくれます。色が対応していない箇所があれば、そこに閉じ括弧が足りていないサインです。

 

また「数式」タブ→「数式の検証」を使うと、数式を1ステップずつ実行してどの部分で結果がズレているか追いかけられます。

 

ネストが複雑で原因がわからなくなったときは、迷わず活用してみてください。

スポンサーリンク

原因③ 引用符の付け忘れ・全角文字の混入(#NAME?の正体)

「#NAME?エラーが出る」「論理式は合っているはずなのにエラーになる」——

 

このパターンには、引用符の付け忘れや全角文字の混入が関係していることがほとんどです。

文字列を比較するとき引用符(””)は必須

次の数式を見てください。

 

=IF(A1=合格,"○","×")

 

引用符なしで「合格」という文字列を書くと、Excelは「合格」を名前付き範囲か関数名として解釈しようとします。

 

それが見つからないため「#NAME?」エラーが発生するわけです。正しくは =IF(A1="合格","○","×") のように、比較したい文字列をダブルクォーテーションで囲む必要があります。

全角文字の混入も同じ#NAME?の原因になる

括弧やコンマが全角になっているだけで、Excelは数式として認識できません。日本語入力(IME)がオンのまま入力してしまうと、気づかないうちに全角文字が混入しがちです。

 


#NAME? を引き起こす書き方と正しい書き方
⚠️ NG例
=IF(A1=合格,"○","×")
→ 引用符なし:#NAME? エラー=IF(A1="合格","○","×")
→ 全角括弧:#NAME? エラー

✅ 正しい書き方
=IF(A1="合格","○","×")
→ 文字列は必ず ” ” で囲むIMEをオフにして入力
→ 全角文字の混入を防ぐ

💡

数式入力の鉄則
数式を入力するときは必ずIMEをオフ(半角英数モード)にすること。カンマ・括弧・引用符はすべて半角で入力する。

 

参照先のセルにすでに#VALUE!や#NAME?などのエラー値が入っているとIF関数もそのエラーを引き継いでしまいます。

 

この場合はIFERROR関数を組み合わせて対処するのが実務上の定石です。詳しくはExcelでエラーを消す!IFERROR関数の使い方と具体例をご覧ください。

エラーの種類の見分け方についてはExcel関数エラーの原因と直し方|#VALUE!・#REF!・#NAME?症状別逆引きも参考にしてみてください。

スポンサーリンク

原因④ 空白セルの落とし穴とIFS関数|実務で役立つさらなる一手

定番の3ミスを押さえたうえで、実務でよくハマる2点を追加で紹介します。

 

どちらも「動いているように見えて実は誤判定している」パターンです。

ISBLANKと””の使い分けを知らないと誤動作する

「セルが空白なら処理をスキップしたい」という場面でよく使うのが次の2パターンです。

 

書き方 適切なシーン 注意点
=IF(ISBLANK(A1),…) ユーザーが手入力するセルの空チェック 数式が入っているセルはFALSEになる
=IF(A1="",…) 他の数式が空文字(“”)を返すかどうかのチェック スペース1文字が入るとFALSEにならない

スペースが1文字でも入っているとISBLANKではFALSEになります。スペースの混入が疑われる場合は =IF(TRIM(A1)="",…) のようにTRIM関数で除去してから判定するのがおすすめでしょう。

 

条件付き書式でIF関数を活用している場合も同様の誤判定が起きやすいため、Excel条件付き書式が反映されない原因と直し方もあわせてご確認ください。

ネスト地獄を解消するIFS関数(Excel 2019以降)

IFのネストが3段を超えると、数式が急速に読みにくくなります。

 

Excel 2019またはMicrosoft 365をお使いであれば、IFS関数(アイエフエス関数)への切り替えが有効な選択肢です。

 

先ほどの評価をIFSで書き直すと次のようになります。

 

=IFS(A1>=90,"A",A1>=80,"B",A1>=70,"C",TRUE,"D")

 

括弧を何重にも重ねる必要がなく、条件と結果のセットを横に並べていくだけです。

 

最後のTRUEは「上記すべての条件に当てはまらない場合」のデフォルト値を指定するために使います。

 

ネストと同様に、条件は厳しい順(大きい値から)に並べる必要がある点は変わりません。

 

ただし、IFS関数はExcel 2016以前の永続ライセンス版では使えません。社外に共有するファイルでは相手の環境を確認してから切り替えましょう。

スポンサーリンク

Q&A【よくある疑問まとめ】

Q. IF関数でFALSEと出るのに、条件式は正しいとしか思えません。どこを確認すればよいですか?
A. まず「型不一致」を疑ってください。見た目は数字でも、セルが文字列形式になっているケースが多いです。セルを選択したとき左上に緑の三角マーク(エラーインジケーター)が出ていれば文字列のサインです。ホームタブのリボン上の書式表示を確認して「文字列」と出ていれば「標準」か「数値」に変更し、F2→Enterで再確定してください。書式を変えるだけでは反映されないことがあります。それでもFALSEになる場合は、セル内に見えないスペースが混入している可能性があるため、TRIM関数で除去してから比較してみましょう。
Q. IFをネストしすぎて数式が読めなくなりました。どう整理すればよいですか?
A. Excel 2019以降であればIFS関数への書き換えが最速です。条件と結果をセットで横に並べるだけなので、構造が格段に読みやすくなります。IFSが使えない環境なら、各ネストの途中結果を別のセルに書き出してステップ別に動作確認する方法が有効です。「数式の検証」ツール(数式タブ→数式の検証)を使えば1ステップずつ実行して問題箇所を特定できます。筆者も複雑なネストのデバッグには必ずこのツールを活用しています。それでも解決しない場合は、いったんすべてのネストを分解して1条件ずつ動作確認してから再構築するのがもっとも確実な方法でしょう。
Q. 日付を条件に使いたいのですが、IF関数で正しく判定されません。
A. 日付を文字列として比較しているのが原因です。論理式に日付を直書きする場合は、DATE関数を使って日付シリアル値として指定してください。たとえば =IF(A1>=DATE(2026,4,1),"該当","対象外") のように書くと正しく判定されます。”2026/4/1″ のような文字列をそのまま書いてしまうと型不一致で誤った結果になる可能性があるためご注意ください。特定の期間内かどうかを判定したい場合は、AND関数と組み合わせて =IF(AND(A1>=DATE(2026,4,1),A1<=DATE(2026,6,30)),"第1四半期","対象外") のように書くのがおすすめです。
スポンサーリンク

まとめ

IF関数がうまくいかない原因は、「文字列と数値の型不一致」「ネストの条件順序ミス・括弧の閉じ忘れ」「引用符の付け忘れ・全角文字の混入」の3パターンにほぼ集約されます。

 

症状を確認してから原因を絞り込み、上から順に試していく習慣をつければ、多くのケースは短時間で解決できるでしょう。

 

ネストが複雑になってきたと感じたら、IFS関数への切り替えも視野に入れてみてください。

タイトルとURLをコピーしました