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と書く、という意味です。
ドラッグで回転、スクロールまたはピンチで拡大・縮小。
いま入力したもの:一つの判定と二つの答え
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は数値を返し、かけ算はそれをほかの値と同じように使います。行ごとに一つの数式で、二つの別々の列の代わりになります。
- 決まりが「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と表示します。空に見せたいなら""と書きましょう。
- B2には72が入っています。=IF(B2>=60, "Pass", "Fail")は何を返しますか?
- B5には59.5が入っています。=IF(B5>=60, "Pass", "Fail")は何を返しますか?
- B4には60が入っています。=IF(B4>60, "Pass", "Fail")は何を返しますか?
- B2には72が入っています。=IF(B2>70,B2-70,0)は何を返しますか?
- B2には0が入っています。=IF(B2=0, "none", A2/B2)は何を返しますか?
- none
- #DIV/0!
- 0
- FALSE
- Excelでは、=IF(5>9,"big")は何を返しますか?
- FALSE
- big
- #N/A
- #VALUE!
- 動くようにするにはクォーテーションを加える必要があるのはどの数式ですか?
- =IF(A1>5,Yes,No)
- =IF(A1>5,1,0)
- =IF(A1>5,TRUE,FALSE)
- =IF(A1>5,A1,0)
- ="yes"="YES"は何を返しますか?
- TRUE
- FALSE
- #VALUE!
- yesYES
- A2は空です。=IF(A2="", "missing", A2*2)は何を返しますか?
- 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