「もしこの数字が◯◯以上だったら、自動で『合格』と表示させたい」「エラーの記号が出て表が見映え悪い……」そんな悩みはありませんか?
Googleスプレッドシートの「論理関数」をマスターすれば、こうした面倒な作業はすべてシートが自動でやってくれるようになります。
一見難しそうな「論理」という言葉ですが、実は「もし~なら、こうする」という日常のルールを伝えるだけのとてもシンプルな機能です。この記事では、基本のIF関数から、最新のIFS関数、そして表をプロ級に美しく仕上げるIFERROR関数まで、具体的な事例でわかりやすく解説します。この記事を読み終える頃には、あなたのシートは驚くほど賢くなっているはずです!
IF関数
基本的な使い方
構文
IF(論理式, TRUE値, FALSE値)
論理式が TRUE の場合はある値を返し、FALSE の場合は別の値を返します。
これを読むと、ある論理式がTRUE(正しい)の場合ある値が出力され、FALSE(正しくない)の場合、違う値を出力する関数だということが分かります。もう少し単純に考えると、英語のIFの意味「もし~ならば~をする」ということになります。
論理式
| 記号 | 意味 |
|---|---|
| A = B | AはBと等しい |
| A < B | AはBより小さい |
| A > B | AはBより大きい |
| A <= B | AはBと同じかそれ以下 |
| A >= B | AはBと同じかそれ以上 |
| A <> B | AとBは等しくない |
実際にどのように使うかは以下で詳しくご説明させて頂きます。
実際の使い方

売上表から、各月の2021年の売り上げが2020年の売り上げを上回っている場合は、「GOOD」、下回っている場合は、「BAD」をE列に入力する数式を入力します。
「IF関数」の考え方としては、以下になります。
- もし~であるならば:2021年の売り上げが2020年を上回っているならば、
- ~をする:上回っていれば「GOOD」、下回っていれば「BAD」を出力する。

セルE2に、以下の数式を入力しました。
=IF(D2>=C2,”GOOD”,”BAD”)
このままENTERを押すと、GOODまたはBADが表示されます。
IF関数の構文は、「 IF(論理式, TRUE値, FALSE値) 」でした。ここでは以下になっています。
- 論理式:D2>=C2
- TRUE値:”GOOD”
- FALSE値:”BAD”
GOODとBADを「”(ダブルクオーテーション)」で囲むのは文字列であるためです。数字である場合は「”」で囲む必要はありません。

2021年1月の売り上げは、2020年1月の売り上げを上回っていましたので、「GOOD」と表示されました。すべての月で計算したいので、セルE2をコピーしてE13まで貼り付けます。コピーの方法は、E2の枠線の右下にある小さな四角をE13までドラッグしてください。

すべての月に、「GOOD」か「BAD」が無事に挿入されました。
応用編 IF(IF関数)

先程は、2021年の売り上げが2020年の売り上げより大きいか小さいかで判断する、「IF関数」を挿入しました。
「 =IF(D2>=C2,”GOOD”,”BAD”)」
ここでは、昨年と売り上げの変わらない、7月と9月を「GOOD」ではなく、「=」で表示させたいと思います。

E2に以下の数式を入力します。
=IF(D2=C2,”=”,IF(D2>C2,”GOOD”,”BAD”))
2021年1月の売り上げは、2020年の1月の売り上げより多いので、「GOOD」のままで変わりません。E2の数式をE13までコピーしてみましょう。

7月と9月のセルに、「=」が挿入されました。
ここでは3つの条件を設定しましたが、4つ以上であっても手順は同じとなります。但しあまり条件を増やしすぎると良く分からなくなってしまいますので、その場合は次にご紹介する、「IFS関数」を利用することをお勧めします。
現在の主流は圧倒的に IFS関数 です。IF関数の入れ子は「修正時にミスをしやすい」というリスクがあるため、「3つ以上の条件」ならIFS関数を使いましょう。
IFS関数
4つの条件をIF関数で入力する

先程の「IF関数」では、 2021年の各月の売り上げが、 2020年の売り上げと比べて、以下の条件で数式を入力しました
- 昨年より多い場合は「GOOD」
- 昨年より低い場合は「BAD」
- 同じ場合は「=」
ここではさらに1つ要件を増やして見ます。
- 2021年の売り上げが400000円を超える月は、「VERYGOOD」
E2には以下の数式を入力します。
=IF(D2=C2,”=”,IF(D2>400000,”VERYGOOD”,IF(D2>C2,”GOOD”,”BAD”)))
先程の3つの条件の時と比べるまでもなく、パット見ただけでかなり分かりにくい数式になってしまいましたが、とりあえずこのまま、E13までコピーします。

2021年度で、月の売り上げが400000円を超えたのは、1月と12月になりますので、この2つの月に「VERYGOOD」が挿入されました。
続いて同じ条件を、「IFS関数」を使って表示させてみましょう。
IFS関数の基本的な使い方
IFS(条件1, 値1, [条件2, 値2, …])
複数の条件を検証し、最初の条件を満たす場合に対応する値を返します。
これを読むと、分かったような分からない表現になっていますが、「条件に合うものを複数検証することが出来、かつ簡潔な数式で記載出来る」ものであるとお考え頂くのが良いかと思います。あるいは、「IF関数では記載が大変なものを簡単に記載出来る関数」でも良いかもしれません。
実際の使い方

先ほどと同じ4つの条件を、「IFS関数」で記載してみました。
=IFS(D2=C2,”=”,D2>400000,”VERYGOOD”,D2>C2,”GOOD”,D2<C2,”BAD”)
IF関数で書いた数式と比べてみましょう。
=IF(D2=C2,”=”,IF(D2>400000,”VERYGOOD”,IF(D2>C2,”GOOD”,”BAD”)))
数式の長さは同じようなものですが、「IF関数」は、「()」が多いのと、各IFがどれに対応しているのか何となく分かりにくく感じないでしょうか。ここでは条件が4つでしたが、条件が5つ、6つと増えていくと「()」の数が増えていき大変なことになりそうです。その点、「IFS関数」は、条件と対応する値を連続して記載するだけなので、条件が増えても間違いが起こりにくいと思います。

基本的な書き方として、IFSの後に、「条件+値」を繰り返して記載すると覚えておけば良いでしょう。
「条件の順番」に注意! (IFS関数の落とし穴): 「IFS関数は、先に書いた条件から順に判定されます。たとえば『80点以上ならA、60点以上ならB』としたい時、先に『60点以上ならB』と書いてしまうと、80点の人もBになってしまいます。厳しい条件(大きい数字など)から先に書くのが鉄則です!」
IFERROR関数
基本的な使い方
構文
IFERROR(値, [エラー値])
エラー値でない場合は 1 番目の引数を返します。エラー値である場合は 2 番目の引数を返します(指定した場合)。2 番目の引数を指定していない場合は空白が返されます。
少し分かりやすく書くと、最初の「値」にあたる部分がエラーでない場合は、その「値」が入力されます。エラーである場合は、[エラー値]で指定した値が入力されます。何も記載しなければ「空白」が入力されます。
実際の使い方

2020年の売り上げと2021年の売り上げを比較した「昨対比」をF列に表示させています。10月から12月まではどちらも売り上げが入力されていないので、「#DIV/0!」というエラーが表示されています。これだと見栄えがよくありませんので、「IFERROR関数」を使って見栄えを良くしてみましょう。

セルF2に以下の数式を入力しました。
=IFERROR(D2/C2,0)
「D2/C2」がエラーである場合は、「0」を入力するように指示しています。数式をコピーして、F13まで貼り付けてみましょう。
「0」は数字であり、文字列ではないため、「”(ダブルクオーテーション)」で囲む必要はありません。

先程までエラー表示されていたセルに、「0.00%」と入力されるようになりました。

数式を、「=IFERROR(D2/C2)」とエラーの時の返す値を何も記載しなければ、「空白」が入力されます。
ここで記載しているようにエラー時に返す値を何も記載しなければ「空白」になります。しかし実務で使用する場合は明示的にダブルクォーテーションで囲むようにしましょう。誰かと共有したり、後で振り返った場合に意図が明確になります。ここでは「=IFERROR(D2/C2,” “)」のように記載することをお勧めします。

数式を「=IFERROR(D2/C2,”未定”)」と文字列を入力した場合は、指定した文字列が入力されます。
応用編(VLOOKUP関数)

商品の価格表から、商品名を入力したら金額が表示される表を作成してみます。セルE3に、「VLOOKUP関数」を使って数式を入力します。
=VLOOKUP(E2,$A$2:$B$6,2,0)
VLOOKUP関数の使い方については、別記事でご紹介させて頂いております。
セルE2に「Tシャツ」と入力すると、3000円が表示されています。

セルE2に、「ポロシャツ」と表にない商品名を入れてみると、「#N/A」とエラーが表示されてしまいます。説明にも、「VLOOKUPの評価で「ポロシャツ」が見つかりませんでした。」と表示されています。
このように、表にない商品名を入力した時に、エラーを表示させないようにする関数が、先程ご紹介した「IFERROR関数」になります。
使い方はとても簡単で、「VLOOKUP関数」を「IFERROR関数」で囲むだけになります。

商品名が該当するものがない場合、「空白」にする場合は[エラー値]」に何も入力しなくても大丈夫です。
=IFERROR(VLOOKUP(E2,$A$2:$B$6,2,0))
または
=IFERROR(VLOOKUP(E2,$A$2:$B$6,2,0),””)

商品名が該当するものがない場合、「0」を入力したい場合は以下の数式になります。
=IFERROR(VLOOKUP(E2,$A$2:$B$6,2,0),0)

該当する商品名がない場合、「該当なし」という文字列を出力したい場合は以下の数式を入力します。
=IFERROR(VLOOKUP(E2,$A$2:$B$6,2,0),”該当なし”)
該当なしを「”(ダブルクオーテーション)」で囲むことを忘れないでください。
ここだけは注意
- 「文字列は必ず ” ” で囲む」: エラーの原因で最も多いのが、GOODなどの文字を
"で囲み忘れることです。数字以外の文字を扱う時は、必ずセットで使う癖をつけましょう。
- 「IFERRORを使いすぎない」: IFERRORは便利ですが、本来直すべき計算ミスまで隠してしまいます。計算が正しいことを確認した後に、最後の仕上げとして使うのがおすすめです。
まとめ
お疲れ様でした!IF、IFS、IFERRORという3つの「論理関数」をマスターしたことで、あなたのスプレッドシート活用術は一気にプロの領域へ近づきました。
- 1つや2つの条件なら、基本の IF関数
- 3つ以上の複雑な条件なら、スッキリ書ける IFS関数
- 見映えを整えるエラー対策なら、万能な IFERROR関数
この3つを使い分けるだけで、手作業での確認作業がゼロになり、ミスも劇的に減ります。最初は数式の「カンマ」や「カッコ」の位置に戸惑うかもしれませんが、何度か入力するうちに自然と指が覚えていくはずです。
もしエラーが出てしまったら、今回の記事をまた見返してみてください。論理関数を味方につけて、日々の業務をもっとスマートに変えていきましょう!




コメント