要点 —
IFは 1つの Yes/No を問い、2つのうち1つの値を返します:=IF(logical_test, value_if_true, value_if_false)。誰もがハマる点が2つ。 まず、3つ目の引数を省くと、テストが偽のとき空白ではなくFALSEという 文字が返ります——空にしたいなら,"")と書くこと。次に、IFのネストは2段で 止める。IF(…IF(…IF(…)))と縦に積んだピラミッドは読めず、括弧の数を 数える悪夢です。分岐が2つや3つを超えるなら、IFS/SWITCHかルックアップ表に切り替えます。 条件はテストの中でAND()/OR()を使ってまとめる——ネストしない。 全バージョンで動作します。
=IF(B2>=60, "Pass", "Fail")
=IF(AND(B2>=60, C2="Yes"), "Pass", "Fail")
IF は SUM の次にほとんどの人が覚える関数で、しかも一番なかなか「卒業」できない
関数です。見た目は単純——そして単一の IF は本当に単純です——けれど、3つ目や
4つ目の結果が必要になり、正しい道具ではなくネストしたIFに手を伸ばした瞬間に
やっかいが始まります。本記事は、IF を正直に保つための考え方の軸を据え、そのうえで
「どこで止めるか」を教える1つのルールを軸に組み立てます。
この記事で学べること
- 考え方の軸:
IFは道の分かれ道が一つ、それ以上ではない value_if_falseを省くとFALSEという文字が返る理由(そして空白にする方法)- ネストしたIFのピラミッド——なぜ2段を超えると崩れるのか、代わりに何を使うか
- ネストせずに
AND/ORで条件をまとめる - 「IFが一度も動かない」を起こす意外な落とし穴:
IFの文字列比較は大文字小文字を無視 - 今どきの一手:1つの
IFを列全体にスピルさせる
考え方の軸:道の分かれ道が一つ
IF は1つの分岐点です。1つの論理テスト——TRUE か FALSE に解決される
ものなら何でも——を評価し、その結果を2つの道のどちらかへ送ります。
' 「点数は60以上か? そうなら Pass、違うなら Fail」
=IF(B2>=60, "Pass", "Fail")
これが関数のすべてです。logical_test が問い、value_if_true と value_if_false
が2本の道。この絵を頭に置くと、たいていの「IFの問題」は、2方向用に作られた分岐点に
3つ・4つ・7つの結果を無理やり押し込もうとしているだけだとわかります。分かれ道には
出口が2つ。3つ目が必要になった瞬間、必要なのはより大きな IF ではなく——
別の形です。
命を救うルール:2段を超えてネストしない
IF の中に IF を入れれば3つ目の結果が、さらに4つ目、5つ目が得られます。Excel は
最大64段まで許します。そのほとんどは良いアイデアではありません。
' 成績の3段階をネストしたIFで — すでに読みにくい
=IF(B2>=90, "A", IF(B2>=80, "B", IF(B2>=70, "C", "F")))
新しい段階を足すたびに、ネストが1段深くなりそして末尾に閉じ括弧が1つ増えます。 5つ6つにもなると、ある分岐がどこにあるかを見つけるのに括弧を数え、編集のたびに 括弧の対応が崩れる危険があり、読まされるチームメイトはスタック全体を頭の中で 巻き戻さなければなりません。情報はすべてそこにある——けれど構造があなたに 逆らってきます。
判断はきっぱりしています。ネストは2段が限界、それを超えたら道具を変える。
成績のような順序のある数値の帯なら、IFS はピラミッドなしで
上から下へ素直に読めます。離散値の対応付け(コード→ラベル)なら
SWITCH、あるいは増えたり変わったりするものには——
こちらの方が良い——XLOOKUP を使った小さなルックアップ表
の方がはるかに保守しやすい。ネストしたIFの長い連鎖は賢さではありません。次に
ファイルを開いた人へ手渡す保守コストの請求書です。
FALSEの落とし穴:3つ目の引数は実務上「省略可」ではない
value_if_false は技術的には省略できます。省くと Excel は空白を返さず——
ブール値の**FALSE** をそのまま返します。
=IF(B2>=60, "Pass") ' 点数40 -> セルには FALSE と表示される
=IF(B2>=60, "Pass", "") ' 点数40 -> セルは空白
これが「なぜセルに FALSE と出るの?」という最も多い質問の正体で、対策は習慣です。
常に3つ目の引数を与える。 何も出したくないなら "" で明示します。ただし ""
には注意点が——それは空文字列であって本当に空のセルではないので、後続の
ISBLANK は FALSE を読み、COUNTA はそれを数えます。後の数式がそのセルに
本当に「数値または空」であることを求めるなら、"" ではなく NA() か数値を返します。
条件は AND / OR でまとめる——そのためにネストしない
ネストしたIFの大半は、誰かが2つの条件を同時に真にしたかったのに間違った形に
手を伸ばした、という理由だけで存在しています。そのためにネストはしません——
logical_test の中で AND か OR を使ってテストをまとめます。
' ネスト(動くが、読みにくく編集しにくい)
=IF(B2>=60, IF(C2="Yes", "Pass", "Fail"), "Fail")
' AND — きれいなテストひとつ
=IF(AND(B2>=60, C2="Yes"), "Pass", "Fail")
AND(…) はすべてのテストが通ったときだけ TRUE、OR(…) はどれか1つが通れば
TRUE。これらは2段のネストを1つの読みやすい分岐点に畳み込みます。ネストは、本当に
別々の下流の問いのために取っておく——「この2つが両方とも真でなければ」のためでは
ありません。それは AND の仕事で、SUMIFS や
FILTER でも使うのと同じ論理です。
大文字小文字を無視する落とし穴:「IFが一度も動かない」
IF の = 比較は大文字小文字を無視します。"Yes" = "yes" は Excel にとって
TRUE——たいていはそれで都合がいいのですが、そうでないときもあります。
=IF(A2="OK", 1, 0) ' "OK"、"ok"、"Ok" — すべてに一致
=IF(EXACT(A2,"OK"), 1, 0) ' 大文字小文字まで含めて "OK" だけに一致
ID と id のようなコード、あるいはチェックサムなど、本当に大文字小文字を区別する
テストが必要なときは、EXACT() で包みます。(これは VBA の鏡像です。VBA では =
が既定で大文字小文字を区別します——VBA UCase/LCase を
参照。)Excel がどちら側を既定にしているかを知っておくと、「値は同じに見えるのに
IFが反応しない」という困惑から救われます。
今どきの一手:1つのIFを列にスピルさせる
今の Excel では、IF はテストに配列を受け取り、各行に1つずつ結果をスピルします
——ドラッグも、数式の下方向コピーも不要です。
=IF(Score>=60, "Pass", "Fail") ' Score は範囲 -> 行ごとに結果が1つ、スピルする
テストを列全体(Table の列や # のスピル範囲)に向けると、1つのセルから結果の
一覧全体が生まれ、ソースが伸びるたびに再計算されます。長い IF の中で同じ部分式を
繰り返すなら、LET で一度名前を付けて Excel に1回だけ
計算させると、読みやすく、大きなシートでも速くなります。
判断:IF か IFS か、それともルックアップ表か
真の二択——1つの問い、2つの答え——には素の IF を使います。順序のある帯
(成績、ティア、しきい値)になった瞬間に IFS へ移ります。それが表す表のように
読めるからです。値をラベルへ対応付ける(ステータスコード→説明、地域→担当者)
なら、短く固定のリストには SWITCH、リストが長い・時とともに変わるなら本物の
ルックアップ表に対する XLOOKUP を使います。腕の見せどころは、より大きなIFを書くこと
ではありません——自分の問題が実はこの3つの形のどれなのかを、早い段階で見抜くこと
です。
ExcelMaster の使いどころ
実務のロジックは、たいてい数式の構文ではなくビジネスの言葉で語られます——60点以上で
かつ提出した人は合格、それ以外は不合格。ExcelMaster はその一文を正しい形に
変えます——それで足りるなら AND を伴う単一の IF、問題が分かれ道を超えていれば
きれいな IFS/ルックアップ。あなたは判断を述べるだけ。半年後に括弧を数える悪夢に
ならない構造を、こちらが選びます。
よくある質問
IFの数式が FALSE と表示されるのはなぜ?
3つ目の引数を省いたからです。=IF(test, value_if_true) はテストが偽のとき、
そのまま FALSE を返します。明示的に value_if_false を加えてください——空白なら
,"")、ラベルなら , "No"。
ExcelでIFは何段までネストできる?
最大64段——ですが、読みやすさはそのはるか手前で崩れます。ネストは多くても2段まで。
それ以上の分岐には IFS、SWITCH、ルックアップ表を使います。
IFを複数条件で書くには?
テストを AND か OR で論理テストの中にまとめ、ネストしません:
=IF(AND(B2>=60, C2="Yes"), "Pass", "Fail")。AND はすべてのテストが真であること、
OR はどれか1つが真であることを必要とします。
ExcelのIFは大文字小文字を区別する?
しません。IF(A2="ok", …) は "OK"、"Ok"、"ok" を等しく一致させます。大文字小文字を
区別する比較なら EXACT で包みます:=IF(EXACT(A2,"OK"), …)。
IF の代わりに IFS を使うべきなのはいつ?
順序のある結果が3つ以上あるとき(成績の帯など)です。IFS は各テストと結果を上から
下へ並べ、ネストも末尾の括弧もないので、読み書きがはるかに楽になります。
検証環境
検証環境: Excel 365(Windows 11)— 最終確認 2026-06-25。
関連ガイド: ExcelのIFS & SWITCH関数 · ExcelのIFERROR関数 · ExcelのSUMIFS関数 · ExcelのFILTER関数
