edubun
日本語

IFで判断する

=IF(B2>=60, "Pass", "Fail")は文のように読めます。点数が60以上ならPass、そうでなければFailと書く、という意味です。

まず試そう:ちょうど60は合格?

決まりを学ぶ前に、下の実験室を開きましょう。Anaは72点、Benは45点、Chloeはちょうど60点、Devは59.5点です。C2に=IF(B2>=60,"Pass","Fail")と入力し、下方向へコピーします。次にC4の>=を>に変えて、Chloeがどうなるか見てみましょう。この数式はほとんど文のように読めます。点数が60以上ならPass、そうでなければFailと書く、という意味です。

読み込み中

ドラッグで回転、スクロールまたはピンチで拡大・縮小。

Chloeはちょうど60、Devは59.5なので、>と>=のどちらを選ぶかで結果が決まります。C2を書いてから下方向へコピーしましょう。

いま入力したもの:一つの判定と二つの答え

IFは三つの引数をとります。論理式、判定がTRUEのときに返す値、FALSEのときに返す値です。MicrosoftはIF(logical_test, value_if_true, [value_if_false])と書き、Excelで最もよく使われる関数の一つと呼んでいます。スプレッドシートも同じ形です。判定はふつうB2>=60のような比較で、それ自体がTRUEかFALSEを返す小さな数式です。IFはその結果から二つの答えのどちらかを選びます。Chloeの60では、B4>=60はTRUE、B4>60はFALSEです。いま見たのはまさにこの一つのちがいです。

比較意味B2 = 72のとき
B2=72等しいTRUE
B2<>72等しくないFALSE
B2>60より大きいTRUE
B2<60より小さいFALSE
B2>=72以上TRUE
B2<=71以下FALSE

答えには文字列、数値、計算を使えます。文字列はダブルクォーテーションで囲みます。ただしMicrosoftが指摘する例外があり、TRUEとFALSEはそのままでExcelが理解します。ですから=IF(C2="Yes",1,2)は数値を返し、=IF(C2>B2,C2-B2,0)はある数字が予算をどれだけ超えたか、超えていなければ0を返します。間に何もない二つのクォーテーション""は、空に見える文字列を返します。報告することがないときにセルを空白にしておく、よくある方法です。

文字列の比較では大文字と小文字を区別しないので、"yes"="YES"はTRUEです。空のセルを""と比べてもTRUEになるので、=IF(A2="", "missing", A2*2)は空白への便利な備えになります。GoogleのヘルプはIFで最も多いまちがいとして、二つの答えの順序を逆にすることを挙げています。数式を「もしこうなら、これ。そうでなければ、あれ」と声に出して読めば、入れ替わりはたいてい見つかります。

IFは列全体で使うと便利です。最初の行に、その行の点数への相対参照を使って一度だけ書き、下方向へコピーすれば、生徒一人ひとりに結果が出ます。行ごとに数式のコピーがあるので、リストを並べ替えたり、下に生徒を加えてもう一度コピーしたりできます。合格点のように、セルに置いた決まった基準と比べる場合は、その参照にドル記号が必要です。このコースの最初の単元の税率とまったく同じです。

3番目の引数を省く

どちらのソフトもvalue_if_falseを省略可能としています。省いたまま判定がFALSEになると、Excelは論理値FALSEを返します。言葉が並ぶ列ではおかしく見えます。MicrosoftのIFのよくある問題の一覧には、答えの引数がないときにセルに0が出ることも書かれています。一方が""だけでも、毎回二つの答えを書きましょう。目立たない利点もあります。計算されるのは選ばれた方だけなので、=IF(B2=0, "none", A2/B2)は#DIV/0!を表示しません。わり算はB2が0でないときだけ実行されます。

IFの結果は言葉でなくてもかまいません。=B2*IF(C2="member",0.9,1)は、会員には価格の90%、それ以外の人には全額を請求します。ここでIFは数値を返し、かけ算はそれをほかの値と同じように使います。行ごとに一つの数式で、二つの別々の列の代わりになります。

基準はセルに書き、=IF(B2>=$F$1, "Pass", "Fail")のように絶対参照で指しましょう。合格点が変わっても、すべての数式ではなくセルを一つ変えるだけですみます。
よくある間違い
  • 決まりが「60以上」なのに>を使う。 =IF(B4>60,...)では、ちょうど60点が不合格になります。「以上」は>=です。
  • =IF(A1>5,Yes,No)とクォーテーションなしで書く。 YesとNoは文字列なのでクォーテーションが必要です。ないと数式は#NAME?を表示します。TRUEとFALSEは例外です。
  • 二つの答えを入れ替える。 =IF(B2>=60,"Fail","Pass")はエラーもなく動き、すべての結果を逆にラベルづけします。Googleのヘルプは、この順序をIFで最も多いまちがいとしています。
  • value_if_falseを省く。 判定がFALSEのとき、ExcelはセルにFALSEと表示します。空に見せたいなら""と書きましょう。
先生からひとこと問題になるのは構文よりも境目です。IF(判定, TRUEのとき, FALSEのとき)を暗唱できる学習者でも、「60以上」に>と書いてしまいます。だから毎回ちょうど60点で試しましょう。授業の順序としては、まず比較だけ(=B2>=60と入力してTRUEかFALSEを読む)を扱い、それからIFで包むのがよいでしょう。むき出しのTRUEを見ると、IFが何と何の間で選んでいるのかがはっきりします。下方向へコピーする前に、数式を一つずつ文として声に出して読ませましょう。
  1. B2には72が入っています。=IF(B2>=60, "Pass", "Fail")は何を返しますか?
  2. B5には59.5が入っています。=IF(B5>=60, "Pass", "Fail")は何を返しますか?
  3. B4には60が入っています。=IF(B4>60, "Pass", "Fail")は何を返しますか?
  4. B2には72が入っています。=IF(B2>70,B2-70,0)は何を返しますか?
  5. B2には0が入っています。=IF(B2=0, "none", A2/B2)は何を返しますか?
    • none
    • #DIV/0!
    • 0
    • FALSE
  6. Excelでは、=IF(5>9,"big")は何を返しますか?
    • FALSE
    • big
    • #N/A
    • #VALUE!
  7. 動くようにするにはクォーテーションを加える必要があるのはどの数式ですか?
    • =IF(A1>5,Yes,No)
    • =IF(A1>5,1,0)
    • =IF(A1>5,TRUE,FALSE)
    • =IF(A1>5,A1,0)
  8. ="yes"="YES"は何を返しますか?
    • TRUE
    • FALSE
    • #VALUE!
    • yesYES
  9. A2は空です。=IF(A2="", "missing", A2*2)は何を返しますか?
  10. Googleのヘルプによると、IFで最も多いまちがいは何ですか?
    • TRUEとFALSEのときの答えを逆の順序に書くこと
    • 答えに数値を使うこと
    • >の代わりに>=を使うこと
    • IFを小文字で書くこと
ポイント
  • IF(判定, TRUEのときの値, FALSEのときの値)。
  • 比較:= <> > < >= <=。文字列の比較では大文字と小文字を区別しない。
  • 文字列の答えはクォーテーションで囲む。TRUEとFALSEには不要。
  • 答えは必ず両方書く。計算されるのは選ばれた方だけ。
このコースの出典 (19)
  • Microsoft Support, "Switch between relative, absolute, and mixed references" (support.microsoft.com/en-us/office/dfec08cd-ae65-4f56-839e-5f0d8d0baca9: $ before column and row, F4 to switch, copying two down and two right: $A$1 stays, A$1 to C$1, $A1 to $A3, A1 to C3)
  • Microsoft Support, "AVERAGE function" (support.microsoft.com/en-us/office/047bac88-d466-426c-a32b-8f33eb960cf6: text, logical values and empty cells in a reference ignored, zeros included; 10, 7, 9, 27, 2 gives 11, with 5 gives 10; mean 5, median 4, mode 3 for 2 3 3 5 7 10)
  • Microsoft Support, "COUNT function" (support.microsoft.com/en-us/office/a59cd7fc-b623-4d93-87a4-d23bf411294c: only numbers counted, dates count, errors and text do not)
  • Microsoft Support, "ROUND function" (support.microsoft.com/en-us/office/c018c5d8-40fb-4053-90b1-b3e7f61a213c: num_digits required; 2.15 to 2.2, -1.475 to -1.48, 626.3 to 1000, 1.98 to 0, -50.55 to -100)
  • Microsoft Support, "IF function" (support.microsoft.com/en-us/office/69aed7c9-4e8a-4755-a9bc-aa8bbff73be2: value_if_false optional, text in quotes except TRUE and FALSE, 0 and #NAME? problems)
  • Microsoft Support, "VLOOKUP function" (support.microsoft.com/en-us/office/0bbc8083-26fe-4963-8ab8-93a18ad188a1: range_lookup TRUE by default, sorted first column, #N/A, #REF!, #VALUE!, absolute table range, wildcards with FALSE)
  • Microsoft Support, "XLOOKUP function" (support.microsoft.com/en-us/office/b7fd680e-6d10-43e6-84f9-88eae8bf5929: not in Excel 2016 and Excel 2019, exact match by default)
  • Microsoft Support, "How to correct a #VALUE! error" (support.microsoft.com/en-us/office/15e1b616-fbf2-4147-9c0b-0a11a20e409e: + and * may not calculate cells with text, use SUM instead, IFERROR hides all errors)
  • Microsoft Support, "Excel specifications and limits" (15 digits, 64 nested levels, 255 arguments)
  • Google Docs Editors Help, "VLOOKUP" (support.google.com/docs/answer/3093318: is_sorted TRUE by default, FALSE recommended, search down to a larger value, " Apple" and "Apple " differ, wildcards, IFNA, absolute range)
  • Google Docs Editors Help, "XLOOKUP" (support.google.com/docs/answer/12405947)
  • Google Docs Editors Help, "ROUND" (support.google.com/docs/answer/3093440: places optional, 0 by default, rounding by magnitude)
  • Google Docs Editors Help, "IF" (support.google.com/docs/answer/3093364: order of the answers is the most common problem, IFS)
  • Google Docs Editors Help, "AVERAGE" (support.google.com/docs/answer/3093615: text ignored, any number of arguments)
  • Google Docs Editors Help, "COUNTA" (support.google.com/docs/answer/3093991: zero-length strings and spaces count)
  • Google Docs Editors Help, "Keyboard shortcuts for Google Sheets" (support.google.com/docs/answer/181110: F4 and Fn+F4 while entering a formula, F4 as Redo)
  • Pryor Learning and Exceljet (F4 cycle A1, $A$1, A$1, $A1; = comparison not case-sensitive)
  • Ablebits (IF without value_if_false returns FALSE)
  • Spreadsheet Class (Sheets circular dependency shows #REF!)

確認日: 2026-10-19