関数

IF関数(条件で答えを変える)

「〇〇ならA、ちがえばB」を自動で。判定の基本です。

📖 このページでわかること

  1. IF関数の構文「=IF(条件, 真の場合, 偽の場合)」
  2. 条件で使う比較演算子(=・>・< など)の意味
  3. 文字列や空欄を結果にするときの書き方
  4. 点数で「合格/不合格」を自動表示する具体例
  5. 3段階以上を判定するネストIFとIFS関数
  6. 複数の条件をまとめるAND・OR・NOT
  7. エラーをやさしく処理するIFERROR
  8. つまずきやすい間違いと、その直し方
fx
セルくんです。「点数が80以上なら合格、それ以外は不合格」のように、条件によって答えを変えたいことってありますよね。そんなときに活躍するのが IF関数 です。道の途中にある「分かれ道の標識」のように、エクセルが自動で行き先を選んでくれますよ。IF関数は他のたくさんの関数と組み合わせて使う、いわば「判断の土台」になる関数です。やさしく見ていきましょう。

IF関数は「分かれ道の標識」

IF(イフ)関数は、ある条件が成り立つかどうかを判定して、成り立つときと成り立たないときで、ちがう結果を表示する関数です。「イフ」は英語の「もし〜なら」という意味で、まさにその通りのはたらきをします。

歩いていて分かれ道に立ったとき、「雨なら右、晴れなら左」という標識があれば、迷わず進めますよね。IF関数は、その標識をエクセルの中に置いてあげるイメージです。条件を見て、エクセルが自動で「右」か「左」かを選んでくれます。

手作業で「この人は合格、この人は不合格…」と一人ずつ書いていくのは大変ですし、見落としもあります。IF関数なら、一度ルールを決めて数式にしておけば、何百件あっても一瞬で正しく振り分けてくれます。

たとえると… IF関数は「分かれ道の標識」です。「もし〇〇なら、こっち(A)へ。ちがえば、あっち(B)へ」と、条件を見て自動で答えを振り分けてくれます。標識に書く「もし〇〇なら」の部分が、このあと出てくる「条件」です。

IF関数の構文

IF関数は、カッコの中に3つの情報を順番に書きます。引数と引数のあいだは、半角のカンマ「,」で区切ります。

=IF(条件, 真の場合, 偽の場合)
例)=IF(A1>=80, "合格", "不合格")
引数意味
① 条件成り立つかどうかを判定する式。例:A1が80以上か。
② 真の場合条件が成り立つときに表示する内容。
③ 偽の場合条件が成り立たないときに表示する内容。

「条件」は、必ず「成り立つ/成り立たない」のどちらかになる式を書きます。たとえば A1>=80 は、A1が80以上なら成り立ち(真)、79以下なら成り立たない(偽)、というふうにハッキリ分かれます。

文字を表示したいときは "" で囲む 「合格」のような文字(文字列)を結果にしたいときは、必ずダブルクォーテーション"合格" のように囲みます。囲み忘れると、エラー(#NAME?)になってしまいます。数字を結果にするときは、囲む必要はありません。

条件で使う「比較演算子」

条件は、2つの値をくらべる「比較演算子」で書きます。「比較演算子」とは、大小や等しいかどうかを判定する記号のことです。よく使うのは次の6つです。

記号意味読み方
=等しいA1=100A1は100と等しい
>より大きいA1>80A1は80より大きい(81以上)
<より小さい(未満)A1<60A1は60より小さい(59以下)
>=以上A1>=80A1は80以上(80もふくむ)
<=以下A1<=50A1は50以下(50もふくむ)
<>等しくないA1<>0A1は0ではない
「以上」と「より大きい」はちがう >=80 は80をふくむ(80もOK)、>80 は80をふくまない(81から)です。「80点ちょうども合格にしたい」なら、>= を使いましょう。1点の差で結果が変わるので、ここは特にていねいに。
「以上・以下」は記号の向きと順番に注意 「以上」は >=、「以下」は <= です。等号(=)は不等号のあとに書きます。=>=< のように逆に書くとエラーになるので気をつけましょう。

条件に文字列や空欄を使うとき

条件は数字だけでなく、文字でもくらべられます。たとえば「B1が『東京』なら…」という条件は、文字を "" で囲んで次のように書きます。

=IF(B1="東京", "首都圏", "地方")
B1が「東京」なら「首都圏」、ちがえば「地方」と表示

「セルが空欄かどうか」を判定したいときは、何も入っていないことを表す ""(空文字)を使います。

=IF(A1="", "未入力", "入力済み")
A1が空欄なら「未入力」、何か入っていれば「入力済み」と表示
- スポンサーリンク -
広告スペース

具体例1:点数で合格・不合格を出す

セル A1 にテストの点数が入っているとします。「80点以上なら合格、それ未満なら不合格」と自動で表示してみましょう。

=IF(A1>=80, "合格", "不合格")
A1が90なら「合格」、A1が72なら「不合格」と表示される
B2fx=IF(A2>=80,"合格","不合格")
AB
1点数判定
290合格
372不合格

A2が90なので「80以上」が成り立ち、B2に「合格」と表示されます(緑枠が数式のセル)。

エクセルが行う判定の流れは、こうです。

  1. A1の値が「80以上か?」を確かめます。
  2. 成り立てば(90など)、真の場合の "合格" を表示します。
  3. 成り立たなければ(72など)、偽の場合の "不合格" を表示します。
  4. 下の行にも同じ判定をしたいときは、この数式を下にコピーします。
数字や計算式を結果にすることもできます 結果は文字だけでなく、計算式や数値でもOKです。たとえば =IF(A1>=10000, A1*0.9, A1) なら「1万円以上なら1割引、未満ならそのまま」という割引計算もできます。

IFを実際に入力してみよう(手順)

では、上の合格・不合格の例を、実際に手を動かしながら入力してみましょう。1ステップごとに画面がどう変わるかをモックで見せます。式が長く見えても、左から順に足していくだけなので大丈夫ですよ。

  1. 判定したいデータを用意し、結果を出すセルを選びます。A列に点数、B列に判定を出すとして、まずB2をクリックして選びます。A2には点数「90」が入っているとします。
B2fx
AB
1点数判定
290

答えを出すB2を選択(緑枠)。判定のもとになる点数はA2にあります。

  1. 「=IF(」と入力します。半角で =IF( まで打つと、「次は条件だよ」とヒントが出ます。先頭の「=」も半角です。
B2fx=IF(
AB
1点数判定
290=IF(

数式バーに「=IF(」と表示。ここから条件を足していきます。

  1. 条件「A2>=80」を入力し、カンマを打ちます。A2をクリックして >=80 と続け、区切りのカンマ「,」を打ちます。これで「A2が80以上か?」という条件になります。
B2fx=IF(A2>=80,
AB
1点数判定
290=IF(A2>=80,

条件「A2>=80」を入力。「80以上か?」をエクセルに尋ねた状態です。

  1. 真の場合「"合格"」を入力し、カンマを打ちます。条件が成り立ったときに出す文字を、半角の "" で囲んで "合格" と入力し、カンマ「,」を打ちます。文字は必ず "" で囲むのを忘れずに。
B2fx=IF(A2>=80,"合格",
AB
1点数判定
290=IF(A2>=80,"合格",

真の場合「"合格"」を入力。条件が成り立ったらこの文字が出ます。

  1. 偽の場合「"不合格"」を入力し、「)」で閉じてEnterを押します。成り立たなかったときの文字 "不合格" を入力し、最後にカッコ「)」を閉じてEnterキーを押します。これで完成です。
B2fx=IF(A2>=80,"合格","不合格")
AB
1点数判定
290合格

Enterを押すと、A2が90=80以上なので「合格」と表示されます。点数を変えれば判定も自動で変わります。

📋 こんなときに使う

IF関数は「条件で自動的に振り分けたい」場面ならどこでも使えます。実務ではこんなときに大活躍します。

合否・達成判定:テストの点数、ノルマの達成率、健康診断の数値などを「合格/不合格」「達成/未達」に自動で振り分ける。

在庫の発注要否:在庫数が基準を下回ったら「発注」、足りていれば「OK」と表示。=IF(A1<=10, "発注", "OK") のように使い、補充のタイミングを見える化できます。

割引・送料の判定:購入金額に応じて「割引あり/なし」「送料無料/有料」を自動表示。請求書や見積書づくりが楽になります。

具体例2:購入金額で送料無料を判定する

ネットショップでよくある「○円以上で送料無料」も、IF関数で表せます。セル A1 に購入金額が入っていて、「5000円以上なら送料0円、未満なら送料500円」としてみましょう。

=IF(A1>=5000, 0, 500)
A1が5000以上なら送料0、未満なら500を表示
B2fx=IF(A2>=5000,0,500)
AB
1購入金額送料
260000
33000500

6000円は5000以上なので送料0、3000円は未満なので送料500。金額で自動判定します。

「送料無料」「送料500円」と文字で出したいなら、結果を "" で囲みます。

=IF(A1>=5000, "送料無料", "送料500円")
金額に応じて、文字でわかりやすく表示

具体例3:点数をA・B・Cランクに分ける

2段階(合格・不合格)ではなく、「80以上はA、60以上はB、それ未満はC」のように3段階で判定したいこともあります。このときは、IFの中にIFを入れる「入れ子(ネスト)」を使います。次の見出しでくわしく見ていきましょう。

複数の条件を扱う

IFの入れ子(ネスト)

判定を3段階以上にしたいときは、IFの中にIFを入れる「入れ子(ネスト)」を使います。先ほどのA・B・Cランクは、こう書きます。

=IF(A1>=80, "A", IF(A1>=60, "B", "C"))
80以上ならA、そうでなく60以上ならB、どちらでもなければC
B2fx=IF(A2>=80,"A",IF(A2>=60,"B","C"))
AB
1点数ランク
285A
372B
450C

85→A、72→B、50→C。入れ子のIFで3段階に振り分けた結果です。

読み解き方はこうです。まず「A1は80以上か?」を判定し、成り立てば「A」。成り立たなければ、偽の場所に置いた2つめのIF「A1は60以上か?」へ進みます。そこで成り立てば「B」、成り立たなければ「C」。このように「偽の場合」の場所に、次のIFをそのまま書くのがコツです。

  1. A1が80以上か判定する → 成り立てば「A」で終わり。
  2. 成り立たなければ、次のIFへ。A1が60以上か判定する → 成り立てば「B」。
  3. どちらも成り立たなければ「C」。
カッコの数に注意 IFを入れ子にすると、最後に閉じカッコ「)」を入れた数だけ並べる必要があります。上の例では最後が "C")) と2つ閉じています。カッコが足りないとエラーになるので、IFを増やしたら閉じカッコも同じ数だけ増やすことを忘れずに。

ただし入れ子が増えると読みづらく、まちがいの元になります。実用上は3段階くらいまでにしておくのがおすすめです。それより多いときは、次のIFS関数やVLOOKUPの表引きに切り替えるとすっきりします。

IFS関数ですっきり書く

新しめのExcel(Microsoft 365 など)には、入れ子をしなくても複数条件を並べて書ける IFS関数 があります。「条件1, 結果1, 条件2, 結果2…」とペアで並べるだけなので、ネストよりずっと読みやすくなります。

=IFS(A1>=80, "A", A1>=60, "B", TRUE, "C")
条件と結果をペアで並べる。最後の TRUE は「どれにも当てはまらない場合」

条件は上から順に判定され、最初に成り立ったところで止まります。だから「80以上」を「60以上」より先に書くのが大事です。最後の TRUE は「ここまでのどれにも当てはまらなかったら」という、いわば受け皿の役割です。

IFSは古いExcelでは使えないことも IFS関数は比較的新しい関数です。古いバージョンのExcelでは使えないことがあるため、幅広い環境で使いたいときは、これまでどおりIFの入れ子で書くと安心です。ファイルを人に渡すときは、相手の環境にも気を配りましょう。

AND・OR・NOTとの組み合わせ

「2つの条件を両方満たす」「どちらか一方を満たす」を判定したいときは、IFの条件部分に AND(すべて満たす)や OR(どれか満たす)を入れます。

関数意味成り立つとき
ANDかつ(すべて満たす)並べた条件が全部成り立つとき
ORまたは(どれか満たす)並べた条件のどれか1つでも成り立つとき
NOT〜でない(反対にする)条件が成り立たないとき

たとえば「国語も数学も両方80点以上なら合格」は、ANDを使ってこう書きます。

=IF(AND(A1>=80, B1>=80), "両方合格", "再テスト")
A1とB1が両方とも80以上のときだけ「両方合格」

「どちらか一方でも80点以上ならよい」場合は、ANDのかわりに OR を使います。

=IF(OR(A1>=80, B1>=80), "どちらか合格", "両方不合格")
A1かB1のどちらか一方でも80以上なら「どちらか合格」

NOTは条件の結果をひっくり返します。たとえば =IF(NOT(A1=""), "入力あり", "未入力") は「A1が空欄でないなら」という意味になります。

ANDとORは2つ以上でもOK 条件は2つだけでなく、3つ4つと並べられます。=IF(AND(A1>=80, B1>=80, C1>=80), "全科目合格", "不合格") なら、3科目すべてが80点以上のときだけ「全科目合格」になります。

IFERRORでエラーを回避する

計算の結果がエラーになることがあります。たとえば割り算で割る数が0だと #DIV/0! が出ます。こうしたエラーをやさしいメッセージに置きかえるのが IFERROR(イフ・エラー)関数です。

=IFERROR(A1/B1, "計算できません")
A1÷B1が計算できればその結果を、エラーになれば「計算できません」と表示

IFERRORは「もしエラーなら、こう表示して」という専用の関数で、IF関数と兄弟のような存在です。空欄に見せたいときは、メッセージのかわりに "" を指定します。VLOOKUPなどと組み合わせて使うことも多い、覚えておくと便利な関数です。

つまずきやすい間違い

IF関数でよくある間違いを、先に知っておきましょう。

間違い直し方
演算子を全角で入力(> や =)比較演算子は半角で入力する
文字を "" で囲み忘れた"合格" のように半角の "" で囲む
"" を全角(” ”)で入力したダブルクォーテーションも半角
カッコの数が合わないIFを増やしたら閉じカッコも同じ数だけ
条件の範囲がダブっている「80以上」を先、「60以上」を後の順に書く
「全角」と「半角」に注意 エクセルの数式は、記号や英字を半角で入力するのが基本です。日本語入力モードのまま打つと、全角の「>」や「”」になってエラーの原因になります。数式を入れるときは、半角入力に切りかえる習慣をつけましょう。

よくある失敗と直し方

IF関数でつまずいたとき、画面にどんなエラーが出て、どう直せばよいかを具体的に見ていきましょう。エラーは「どこを直せばいいか」のヒントだと思えば、こわくありません。

失敗1:文字を "" で囲み忘れて #NAME?

合格という文字を、ダブルクォーテーションで囲まずに =IF(A2>=80, 合格, 不合格) と書いてしまうと、エクセルは「合格」を関数名か何かと勘違いして #NAME? エラーを出します。

B2fx=IF(A2>=80,合格,不合格)
AB
1点数判定
290#NAME?

文字を "" で囲み忘れたため #NAME? に。

原因:結果の文字を "" で囲んでいない。直し方:"合格""不合格" のように、半角の "" でそれぞれ囲みます。=IF(A2>=80, "合格", "不合格") とすれば直ります。

失敗2:「>=」を「=>」と逆に書いてエラー

「以上」は >= ですが、うっかり => と逆に書くと、エクセルが式として認識できずエラーになります。<=(以下)を =< と書くのも同じ失敗です。

原因:等号(=)と不等号の順番が逆。直し方:等号はあとです。「以上」は >=、「以下」は <= と覚えましょう。読み方も「だい・なり・いこーる(>=)」と、不等号→等号の順です。

失敗3:入れ子で閉じカッコが足りない

IFを入れ子にしたとき、=IF(A2>=80, "A", IF(A2>=60, "B", "C") のように最後の「)」を1つ忘れると、「カッコの数が合いません」と注意され、Enterが通りません。

原因:開いたカッコ「(」の数だけ「)」で閉じていない。直し方:IFを2つ使ったら「)」も2つ。末尾を "C")) と2つにします。Excelが「修正候補」を出したら、内容を確認してから受け入れると安心です。

複数条件をネストからIFSへ(実演)

最後に、3段階以上の判定を「IFの入れ子」と「IFS」の両方で組み立て、画面でくらべてみましょう。どちらも結果は同じですが、IFSのほうが読みやすいのがわかります。

まずはIFの入れ子。点数を「80以上A/60以上B/それ未満C」に振り分けます。

B2fx=IF(A2>=80,"A",IF(A2>=60,"B","C"))
AB
1点数ランク
272B

入れ子のIF。72は「80以上」では止まらず、次の「60以上」で止まって「B」になります。

同じことをIFSで書くと、条件と結果をペアで並べるだけになり、閉じカッコの数に悩まなくてすみます。

B2fx=IFS(A2>=80,"A",A2>=60,"B",TRUE,"C")
AB
1点数ランク
272B

IFSでも結果は同じ「B」。最後の TRUE,"C" が「どれにも当てはまらないとき」の受け皿です。

Mac版・バージョンによる違い

IF関数・AND・OR・NOT・IFERRORは、Windows版・Mac版・古いバージョンを問わず、ほぼ同じように使えます。違いが出やすいのはIFS関数で、これは新しめのExcel(Microsoft 365 など)でないと使えないことがあります。手元のExcelで使えるかどうかは、実際に入力して試すのが確実です。

確認ミニ練習(○×クイズ)
IF関数の構文は「=IF(条件, 真の場合, 偽の場合)」の3つの引数でできている。○か×か?
結果に「合格」という文字を表示するとき、ダブルクォーテーション("")で囲む必要はない。○か×か?
「>=80」は80をふくみ、「>80」は80をふくまない。○か×か?
ANDは「すべての条件を満たすとき」、ORは「どれか1つでも満たすとき」に成り立つ。○か×か?
比較演算子は全角で入力してもよい。○か×か?
IFを入れ子にしたら、閉じカッコもその数だけ必要になる。○か×か?
よくある質問
条件に当てはまらないとき、何も表示したくありません。どうすれば?
A. 偽の場合に ""(何もない空文字)を指定します。例:=IF(A1>=80, "合格", "") と書くと、80未満のときはセルが空白に見えます。
「#NAME?」というエラーが出ました。なぜ?
A. 文字を "" で囲み忘れているか、関数名のつづりまちがいが多い原因です。"合格" のように半角の "" で囲めているか確認してみてください。
IFの入れ子は何個までできますか?
A. 仕様上は最大64個までネストできますが、3〜4段を超えると読みづらく、まちがいの元になります。段階が多いときはIFS関数やVLOOKUPの表引きに切り替えると、すっきりします。
ANDとORは、どう使い分けるの?
A. 「両方とも満たしてほしい(かつ)」ならAND、「どちらか一方でよい(または)」ならORです。たとえば「国語も数学も80点以上」はAND、「どちらかが80点以上」はORになります。
「以上」は >= ですが、= はあとですか先ですか?
A. 等号(=)は不等号のあとに書きます。「以上」は >=、「以下」は <= です。=> のように逆に書くとエラーになります。
IFとIFSは、どちらを使えばいいですか?
A. 判定が2段階ならIF、3段階以上ならIFSが読みやすくて便利です。ただしIFSは新しいExcel専用なので、古い環境でも使うファイルならIFの入れ子で書くのが安心です。
条件にセル範囲を指定したら、うまくいきません。
A. IFの条件は「A1」のように1つのセルや値を判定するのが基本です。範囲(A1:A10など)を数えたり合計したりして判定したいときは、COUNTIFやSUMIFといった専用の関数を使います。
結果に別のセルの値をそのまま表示できますか?
A. できます。=IF(A1>=80, B1, C1) のように、結果の場所にセル番地を書けば、その中身が表示されます。文字列ではないので "" で囲む必要はありません。
「合格」と入力したのに、なぜか「0合格」のように余計な文字が出ます。
A. 真の場合と偽の場合を区切るカンマ「,」を入れ忘れていたり、引数の順番がずれていることが多いです。=IF(条件, 真の場合, 偽の場合) の形で、それぞれをカンマで区切れているか確認しましょう。区切りのカンマも半角です。
3段階の判定で、なぜか全員が同じランクになってしまいます。
A. 条件を書く順番が原因のことが多いです。IFは上から順に判定するので、厳しい条件(80以上)を先、ゆるい条件(60以上)をあとに書きます。先に「60以上」を書くと、80点の人も「60以上」で止まってしまい、全員が同じ判定になります。
Mac版でもIFやIFSは同じように使えますか?
A. IF・AND・OR・NOT・IFERRORはWindows版・Mac版どちらも同じ書き方です。IFS関数だけは新しめのExcel(Microsoft 365 など)が必要で、古いバージョンでは使えないことがあります。その場合はIFの入れ子で書けば、どの環境でも動きます。

📌 このページのまとめ

  1. IF関数は「条件・真の場合・偽の場合」の3つで、答えを振り分ける。
  2. 条件は =・>・<・>=・<=・<> の比較演算子で書く(半角)。
  3. 「以上(>=)」と「より大きい(>)」は1つの違いに注意。
  4. 文字を結果や条件にするときは、必ず半角の "" で囲む。
  5. 3段階以上の判定はIFの入れ子か、新しいIFS関数を使う。
  6. 「両方満たす」はAND、「どちらか満たす」はOR、反対はNOT。
  7. エラーをやさしく表示したいときはIFERRORを使う。
  8. 全角の記号・"" 忘れ・カッコの数が、よくあるエラーの原因。