今回は様々な状況で活躍する「論理」の関数についてご紹介させて頂きます。
「論理」と聞くと何だか難しそうですが、実際は凄くシンプルな関数が多く、「特定の条件の時にどのように表示させるか」という関数だと考えて頂いて良いかと思います。
「論理」の関数の中でも、今回ご紹介させて頂くのは3つの関数、 「IF関数」、「IFS関数」、「IFERROR関数」 になります。
どれも非常に活躍機会の多い関数になりますので、ぜひ当記事でしっかりと理解して、業務の効率アップを目指してください。
IF関数
基本的な使い方
構文
IF(論理式, TRUE値, FALSE値)
Googleのヘルプには以下のように書かれています。
論理式が 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関数
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, …])
Googleのヘルプには以下のように書かれています。
複数の条件を検証し、最初の条件を満たす場合に対応する値を返します。
これを読むと、分かったような分からない表現になっていますが、「条件に合うものを複数検証することが出来、かつ簡潔な数式で記載出来る」ものであるとお考え頂くのが良いかと思います。
あるいは、「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の後に、「条件+値」を繰り返して記載すると覚えておけば良いでしょう。
IFERROR関数
基本的な使い方
構文
IFERROR(値, [エラー値])
Googleのヘルプには以下のように書かれています。
エラー値でない場合は 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,”未定”)」と文字列を入力した場合は、指定した文字列が入力されます。
応用編(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),”該当なし”)
該当なしを「”(ダブルクオーテーション)」で囲むことを忘れないでください。
まとめ
今回は、「論理」の関数でも最もよく使われる3つの関数、「IF関数」、「IFS関数」、「IFERROR関数」についてご紹介させて頂きました。
それぞれ単独で使う場合は、それほど難しくはありませんが、他の関数と組み合わせて使うと最初の内は、記入の仕方にやや戸惑うこともあるかと思います。
しかし関数の組み合わせも慣れてしまえば、それほど難しく感じることはなくなると思いますので、まずはそれぞれの基本的な使い方を覚えて、色々な表で積極的に利用してみてください。
今回も最後までお読み頂きありがとうございました。
「論理」の関数は、他にも用意されていますので、今後それぞれ解説していく予定です。
コメント