IF(イフ)Googleスプレッドシート関数
IF(イフ)は、指定した条件が 真のとき TRUE(真)の値を返し、偽のとき FALSE(偽)の値を返します。
値または数式が条件を満たしているかどうかをテストできます。
| ・関数 | IF(読み方:イフ) | |
| ・書式 | =IF(論理式,真の場合,偽の場合) | |
| ・内容 | IF 関数を使用して値または数式が条件を満たしているかどうかをテストできます。 | |
使い方
IF関数は良く使う便利な関数です
論理式に対して真の場合と偽の場合の答えを出します。
例1)=IF(
1=1,
"2",
"3") 結果は 2
例2)=IF(
B4=C4,
"正解",
"不正解")
未入力のセルを計算せず空白にするには
=IF(
B4="",
"",
"1+2") B4が入力されているときだけ数式を実行
複数条件指定「AND」と「OR」
「AND」は全てが複数条件を満たしているとき「真」
例3)=IF((AND(B4=C4,B5=C5,B6=C6)),"正解","不正解")
「OR」はどれか1つでも複数条件を満たしているとき「真」
例4)=IF((OR(B4=C4,B5=C5,B6=C6)),"正解","不正解")
スプレッドシートサンプル1
| |
A |
B |
C |
D |
E |
F |
G |
H |
| 1 |
|
|
|
|
|
|
|
| 2 |
|
|
国語 |
算数 |
理科 |
社会 |
計 |
合否 |
| 3 |
|
鈴木 |
86 |
73 |
70 |
90 |
319 |
合格 |
| 4 |
|
佐藤 |
76 |
69 |
65 |
72 |
282 |
追試 |
| 5 |
|
小林 |
60 |
88 |
90 |
62 |
300 |
合格 |
| 6 |
|
高橋 |
98 |
95 |
95 |
90 |
378 |
合格 |
| 7 |
|
|
|
|
|
|
|
|
スプレッドシートサンプル1の”セル H4”の数式
数式1 =IF(
G4>=300,
"合格",
"追試")
G4が300以上だと
合格
数式2 =IF(
G4<300,
"追試",
"合格")
G4が300未満だと
追試
・合格に複数条件を付ける場合
(1教科最低点65点、合計が300以上だと合格)
=IF(AND(C4>=65,D4>=65,E4>=65,F4>=65,G4>=300),"合格","追試")
数式1、数式2のような合計点ではどちらも一緒の結果になりますが
平均点の場合小数点以下が発生する場合があります
例えば平均点が「80」の場合スプレッドシートでは「79.5」も「80」と表示されます
スプレッドシートサンプル2
| |
A |
B |
C |
D |
E |
F |
G |
H |
| 1 |
|
|
|
|
|
|
|
| 2 |
|
|
国語 |
算数 |
理科 |
社会 |
平均点 |
合否 |
| 3 |
|
鈴木 |
86 |
73 |
70 |
90 |
80 |
追試 |
| 4 |
|
佐藤 |
76 |
69 |
65 |
72 |
71 |
追試 |
| 5 |
|
小林 |
60 |
88 |
90 |
62 |
75 |
追試 |
| 6 |
|
高橋 |
98 |
95 |
95 |
90 |
95 |
合格 |
| 7 |
|
|
|
|
|
|
|
|
上記の式はG列で「=AVERAGE(C3:G3)」と平均点を出しています
ところが鈴木さんは80点なのに追試となっています
これは「=AVERAGE(C3:G3)」の結果が「79.750」で
表示設定で表示を小数点以下無しを設定した場合に起こります
本当の数字は「79.750」なのに四捨五入された数値が表示されるからです
四捨五入の誤差をなくすために参照する数値は必ず「
ROUNDDOWN」しましょう
これはテスト結果なので80点に満たないものは追試なので切り捨て関数の「ROUNDDOWN」を使いますが
四捨五入でも良い場合は四捨五入関数の「ROUND」を使用します
「
ROUND」や「
ROUNDDOWN」を使うことで見えない小数点以下がなくなります。
「=AVERAGE(C3:G3)」の結果を「=ROUNDDOWN(AVERAGE(C3:G3),0)」「
ROUNDDOWN」で囲み0桁目を切り捨てます
スプレッドシートサンプル3
| |
A |
B |
C |
D |
E |
F |
G |
H |
| 1 |
|
|
|
|
|
|
|
| 2 |
|
|
国語 |
算数 |
理科 |
社会 |
平均点 |
合否 |
| 3 |
|
鈴木 |
86 |
73 |
70 |
90 |
79 |
追試 |
| 4 |
|
佐藤 |
76 |
69 |
65 |
72 |
70 |
追試 |
| 5 |
|
小林 |
60 |
88 |
90 |
62 |
75 |
追試 |
| 6 |
|
高橋 |
98 |
95 |
95 |
90 |
94 |
合格 |
| 7 |
|
|
|
|
|
|
|
|
G列の結果を「
ROUNDDOWN」することで見た目と正しい結果になります
IF関数を使ったほかのページ
「NE」と「EXACT」と「DELTA」の違い
文字列のセルを比較して「〇」か「×」を表示
チェックボックスの利用方法
IF関数と組み合わせてよく使うスプレッドシート関数
エクセル(EXCEL)のIF 関数との違い
引数を省略した場合のみ結果が違います
=IF(論理式,真の場合,偽の場合)
「真の場合」と「偽の場合」の値を省略すると
「真の場合」は「TRUE」を返し
「偽の場合」は「FALSE」を返します
「偽の場合」を省略した場合
=IF(A2,)
A2に何も入力されていなければ偽なので「FALSE」を返します
=IF(1+1=2,)
「1+1=2」は真ですが
Googleスプレッドシートでは「空白」になり
エクセルでは「0」になります
SUM関数や合計値なら問題ありませんが
COUNT関数やAVERAGE関数などでは結果が変わってきます
「空白」は無視されますが「0」はカウントされます
なんで?と言われたら
スプレッドシートの表示がおかしい。
スプレッドシートでは
=IF(1+1=2,)
上記のセルはは空白になります
そのセルをCOUNT関数で範囲に入れてもカウントされませんが、
=COUNT(IF(1+1=2,))
とすると結果は1になります
スプレッドシートでの省略時の空白がおかしいと思われます