IF関数・IFS関数☆

2024年8月10日

テストの点数って、合格点が70点なら、点数が70点以上なら合格で、そうじゃなかったら不合格ですよね。
あ、当たり前のことですって?ええ、そりゃそうなんですけど。

でもこれってExcelで集計するときは結構大事で、ただ点数で集計すると合計点とか平均点しか出ないですけど、合否があると、合格した人数とか、合格した人の中での平均点とか、そういうのも集計できるんですよね。

このように2つに1つに分けることをExcelでは分岐っていいます。分岐は2つに分けるだけじゃなくて、テストの点数なら、80点以上で優秀、70点以上で普通、60点以上で惜しい、それ以下は要復習とかってすれば4つに分けることになりますよね。

2つに分けるExcel関数はIF関数で、それ以上に分ける関数はIFS関数です。紹介していきますね。

論理値って

ろんりちって?
これIF関数では結構大事な考え方なんです。

Excelでは、その答えがあっているとTRUE、あってなかったらFALSEという2つに分ける、論理値っていうデータの型があります。Excelは、数値、日付、文字のほかに実はこの論理値っていうデータ型もあるんですね。
ちょっと難しそうな話かもしれないですけど、ハードルはすぐに超えられる考え方なので、はじめはわからなくてもIF関数を使う上ではとっても大事なのでぜひ覚えてほしいです。

セルA1に1が入ってる状態で「セルA1は1000です。」もちろんこれは間違いです。これをExcelで表すと次のようになります。

=A1=1000

この計算式をExcelに入れると間違っているのでFALSEと表示されます。セルA1に1000って入れたらあっているのでTRUEと表示されます。
ここでポイントになる覚えるのは3つあるんですね。

まず、はじめの「=」と式に中に「=」の2つがあります。これが難しいと思うときがあります。
はじめの「=」はExcelの計算式ならぜったいにつく「=」です。
A1と1000の間の「=」は「同じ」という意味の「=」です。
この計算式全体の意味は『これは「=」がついているから計算式ですよ、セルA1と1000は同じです。どうですか』です。
初めにある「=」と計算式の途中にある「=」では意味が違うので注意しましょう。
ここまで一回整理してください。

次の覚えることは、論理値って、それが正しいか正しくないかを表しているってことです。
正しければTRUE、間違っていればFALSEです。
ほかの言い方もあって、正しければ真、間違っていれば偽です。これも覚えておいてください。
セルA1に1000が入っている状態でのA1=1000と、TRUEと、真は、Excelでは同じ意味になります。
セルA1に1が入っている状態でのA1=1000と、FALSEと、偽は、Excelでは同じ意味になります。
そのうち、Excelの計算式に入るものは、A1=1000とTRUEとFALSEを入れることができますが、実際にはA1=1000で、あるセルがどうかという論理式だけになると思います。
これもここで一回整理しましょう。

もう一つの覚えることは、比較の方法についてです。
比較の方法はA1=1000であれば、=なので、同じかどうかです。
=の左側のA1を左辺、右側の1000を右辺と呼ぶのは中学校でやったと思うんです。
左辺には比較されるもの、右辺はそれがどうなったらというのが入ります。
セルA1がが比較されるもので1000がどうなったらで、=なのでそれが同じだったらって意味ですね。
ここまで大丈夫でしょうか。
じゃあ、その左辺と右辺をつなぐものが=だと同じ、という意味ですが、ほかの比較の方法ってないでしょうか。
同じ以外の比較は、まず同じじゃないというのがあります。同じじゃないは結局違うという意味ですね。
同じかどうか、同じじゃないかどうかっていうのは数字と文字、日付で比較ができます。
それ以外にも使う用途は主に数字になるんですけど、より大きい、より小さい、以上、以下っていう比較もあります。

それぞれを表にしてみました。

説明日本語比較演算子論理式の例例の意味
左辺と右辺が同じ等しい=A1=1000セルA1が1000
左辺と右辺が同じではない等しくない<>A1<>1000セリA1が1000ではない
左辺が右辺より大きい大なり>A1>1000セルA1が1000より大きい
左辺が右辺より小さい小なり
(未満)
<A1<1000セルA1が1000より小さい
左辺が右辺と同じかより大きい以上>=A1>=1000セルA1が1000より大きいか等しい
左辺が右辺と同じかより小さい以下<=A1<=1000セルA1が1000より小さいか等しい

表のタイトルに新しい言葉「比較演算子」が出てきています。この比較演算子を左辺と右辺の間に入れてExcelに論理式にして入力していきます。
同じが=で、左辺が右辺より大きいが>で、左辺が右辺より小さいが<の3つだけまず頭に入れます。
そしたら、大きくも小さくもない<>で同じではない、>に=がつけば大きいか等しい、<に=がつけば小さいか同じ、と理解するといいでしょう。これで意味は覚えられます。
問題は、Excelの試験の問題文などで、「大きいか等しい」という言い方で出題されないので、出題の文章とこの意味をマッチングさせないといけないです。日本語と書いてあるのが一般的な日本語での言い方です。以上と以下はその数字と同じ、より大きいとより小さいはその数字と同じではないです。より小さいは別の言い方では未満とも言います。試験を受ける予定に人はこれもしっかり覚えてください。

左辺、比較演算子、右辺の組み合わせで、論理式を作って、それをIF関数の中に入れる条件とします。

なんだかここまで難しい話に聞こえたかもしれないですけど、この考えを持っていないとIF関数が使えないので、しっかり覚えて下さい。

IF関数

大変お待たせしました。IF関数の説明です。本当に上の説明があるとないとでIF関数の理解やすさとか、これからIF関数を実践で使ってくうえで、ぜんぜん違ってくるんです。
いったん休憩して整理してから読んでくださいね。

IF関数は、論理値どおりか、そうではないかで答えを変える、2つに1つの関数です。使い方は次の通りです。

=IF(論理式,[値が真の場合],[値が偽の場合])

この説明は、ExcelにIF関数を入力するときに出てくるものそのものなんですけど、ちょっとこれもわかりにくいんですよね。
値が真の場合っていうのは「論理式が真のときに出したいもの」、値が偽の場合っていうのは「論理式が偽のときに出したいもの」って読み替えてください。

セルB2が70以上なら合格、そうではないなら不合格とするには次の計算式です。

=IF(B2>=70,"合格","不合格")

合格と不合格は文字なので""で囲みます。

値が真の場合も、値が偽の場合も入れなくてもいいのですが、どっちも入れないことはできません。

値が偽の場合を省略するのは真の場合だけ指定します。

=IF(B2>=70,"合格")

値が真の場合を省略するときは次のようになります。

=IF(B2>=70,,"不合格")

値が偽の場合を省略するときは次のようにすることもできます。

=IF(B2>=70,”合格”,)

1つ目で偽の場合はFALSEと表示されます。しかし2番目で真の場合、3つ目の偽の場合は0と表示されます。
1つ目の値が偽の場合は「省略」です。IF関数はこの値が偽の場合の省略ではFALSEを出すように動きます。
2つ目の値が真の場合は「未設定」です。未設定は未入力セルと同じ扱いです。
3つ目の値が偽の場合は「未設定」です。未設定は未入力セルと同じ扱いです。
このように未設定は未入力セルと同じ扱いです。未入力セルなら空白表示になるんじゃないかって思うんですけど、なぜか0と表示されるんですよね。
たとえば「=A1」という計算式があるとして、セルA1が未入力だった場合、答えが0になります。それと同じく、「=未入力セル」ということになるので、0が出てきます。

この入れなくていいので入れないという考え方って、ちょっと難しい考え方で分かりにくいかもしれないんですけど、なんか省略しちゃうと予期しないことが起きやすくなりそうな気がしませんか?だから、論理値は絶対に省略できませんが、値が真の場合も値が偽の場合もちゃんと何を出したいか考えて、設定するようにしましょうね。それが一番言いたい。

IF関数の表現方法

IF関数は、違う計算式でも、全く同じ動作をする場合があります。

次の表はそれぞれの県が平均以上なのかを判定するシートです。セルC2には次の計算式が入っています。
=IF(B2>=$B$8,"平均以上","平均に満たない")

この計算式は次のものでも全く同じ動きになっちゃいます。

=IF(B2<$B$8,"平均に満たない","平均以上")

=IF($B$8<=B2,"平均以上","平均に満たない")

=IF($B$8>B2,"平均に満たない","平均以上")

以上ではなく未満を表す不等号にして、値が真の場合と値が偽の場合を入れ替えると、全く同じ動きになります。論理式の左辺と右辺を入れ替えたら、不等号の向きを入れ替えただけで、同じ動きになります。

このうちのどの書き方が一番いいという基準はありません。
しかし、どれでもいいとなると悩んでしまうので、ルールを作っておくとよいかもしれません。

論理式の左辺には、どうか調べたいものを指定すればいいと思います。上の例ではセルB2の値が平均以上かを調べたいので、セルB2を指定します。
論理先の右辺には、基準になるものを指定します。上の例では平均を基準として調べているのでセルB8を指定しています。数値を直接指定することもあります。
値が真の場合には、理想通りになった場合に表示したいものを指定するとよいです。今回は平均以上だとよいので「平均以上」という文字です。ただ、いつも理想があるわけではないし、左辺と右辺の関係もあるので、臨機応変に入れてください。
この配置になるように比較演算子を指定します。
この入れ方なら、後から見て計算式が何を表しているかわかりやすいんです。

IF関数のよくある使い方・エラーにしない

IF関数は、調べたいものを基準と比べてどうかで、そうだった場合とそうではなかった場合の2つどちらかを出すために使う使い方を紹介しましたが、それよりも多くケースで使われる使われ方があります。

以下の表を見てみましょう。

セルB3に入っている県名を右の表から探して、その点数をセルB6に求めるように作ったシートです。
そのためにセルB6にその動きをするVLOOKUP関数を入れています。
でもその結果が#N/Aというみつからないという意味のエラーが表示されているんです。

どうしてでしょう。

県名は空白になっているんですね。そうすると空白が右の表にあるかどうかを調べるんですね。それで空白はないから見つからないですよね。だから見つからないっていうエラーの#N/Aが表示されているんです。

でもこれ、わかってたらいいんですけど、一見すると#N/Aって何が起きたかわからないじゃないですか。だから不安になっちゃうんですよね。それ以外にも合計したい範囲の中にこういうエラーがあると、合計の計算した結果もエラーになっちゃうっていうこともあるんですよ。

で、そんなことにならないようにするためにIF関数を使うんですね。

もしもセルB3が空白だったら空白を表示します、そうじゃなかったらVLOOKUP関数で探した結果を表示します。ってすれば、未入力のときのエラーは出なくなるじゃないですか。

=IF(B3="","",VLOOKUP関数)

にすればいいんですよ。
“"ってダブルクオーテーションふが2つ並ぶのは中身がない文字を指します。中身のない文字は。。。空白ですよね。つまり、セルB3が空白だったら、空白を表示し、そうじゃなかったらVLOOKUP関数ってするってことなんですよ。

最終的な計算式は次のようになります。

=IF(B3="","",VLOOKUP(B3,D3:E8,2,FALSE))

こんな風に余計なエラーを表示しないように、エラーの原因になる条件を論理式にして、その場合は空白を表示するってことは、結構Excelの基本っぽくみんなやってます。
だからこの使い方もマスターしてくださいね。
特に""で空白の意味ってことも重要です。

IFS関数

IF関数はどっちかっていう関数だったんですけど、IFS関数は「どれか」っていう答えが2つ以上の時に使う関数です。IF関数と同じように2つからもっともっといっぱいになるまで設定できます。

=IFS(論理式1,値が真の場合1,…)

このように論理式と値が真の場合を交互に入れていって条件に当てはまったものを出します。全部で127個繰り返せますが、多いと計算式が読めなくなりますので、5、6個までにしておきましょう。

次の計算式を見て、セルA2のときの答えはいくつになるでしょう。

=IFS(A2>80,"とてもすごい",A2>60,"すごい",A2>40,"ふつう",…)

はじめは80と比較して80は超えることができなかったので、次の60と比較して超えることができています。その60に対する値が真の場合なので「すごい」という答えになります。このとき40を超えているのかどうか以降はチェックしません。Excelはしてるみたいなんですけど、結果はこの時点で確定したものが出ます。

では次のように上の計算式とは逆の並びにした計算式でセルA2が65のときはなにになるでしょうか。

=IFS(A2>40,"ふつう",A2>60,"すごい",A2>100,"とてもすごい",…)

はじめに40を超えているかを見て、超えているのでこの値の真の場合の「ふつう」を出して、以降の比較の結果は反映させません。
本当は65だったら「すごい」にしたいんですけど、レベルの低い基準ではじめに比較してしまうとそれで引っかかってしまうのではじめの「ふつう」になっちゃうんですね。
この比較する順番ってめっちゃ大事なので、よく考えて計算式を作る必要があります。
IFS関数は、だんだんふるいにかかっていくようなイメージを持っててください。

IFS関数は値が偽の場合がありません。すべて値が真の場合なんです。でも最後の最後にどれも引っ掛からなかったらっていうのも入れておかなきゃいけないんですよね。それをするには、最後の論理式をTRUEにして、最後の値が真の場合にどれにも引っかからなかった場合に表示したいものを入力しておきます。
そうすると最後は無条件で論理式が真になるので、値が真の場合が出るようになります。
つまり、IFS関数の最後は「,TRUE,最後に表示したいもの」と入れるということなので、覚えておいてください。

下の表で、生徒番号A001で、合計が200点以上なら「Aランク」、170点以上なら「Bランク」、150点以上なら「Cランク」、それ未満なら「ランクなし」にしたいときのセルG3に入る計算式は、次のものになります。

=IFS(F3>=200,"Aランク",F3>=170,"Bランク",F3>=150,"Cランク",TRUE,"ランクなし")

この基準だと、Cランクの人がいないので、Cランクの人向けの補講はしなくていいかなって判断できるんですよね。

今までは同じセルで比較したIFS関数なのですが、次のようなパターンもあります。

セルH3に、3行目の生徒の国語が60点未満なら「国語補講優先」、算数が60点未満なら「算数補講優先」、英語が60点未満なら「英語補講優先」とし、それ以外は「補講なし」としたい、優先は、国語、算数、英語の順と考えるとなった場合、セルH3の計算式は次の通りです。

=IFS(C3<60,"国語補講優先",D3<60,"算数補講優先",E3<60,"英語補講優先",TRUE,"補講なし")

比較するセルが1つじゃなくてバラバラのセルです。このようにIFS関数はいろいろなセルを比較したり基準にできたりするというのも特徴です。

条件付き書式と論理値

ここは参考までにって話なんですが、何か自動化するときに役立つ論理値のお話です。

実は条件付き書式の条件として論理値が使えます。もしかしたら面白いものが作れるかもしれません。
次のシートはセルD2に「d」と入っていて、B2からB8のセル範囲に「a」から「g」までのアルファベットが入っています。そのうち「d」以降のアルファベットのセルだけ色がついています。この色がついているセルは、セルD2のセルに入力されているアルファベットと連動していて、セルD2を「a」に変更すると「a」以降が入力されているセル、つまり全部のセルの色が付きます。

この時の条件付き書式のルールの設定には次のような計算式が入っています。セルD2とそれぞれのセルを比較して、D2の値以上のアルファベットだったら、色が付くようになっています。

おかしくないですか?
対象がアルファベットなのに論理式は判定できてるんです。
実は、文字でも大小の比較はできるんです。それを使うとこういう検索する何かを作ることができます。
ひらがなやカタカナ、漢字でもできますが。「ぁ(小文字のあ)」より「あ(大文字のあ)」のほうが後になってたり、「き」より「が」が前になってたり、イメージと違う場合もあるので注意が必要です。

論理値で遊んでいくと、次のようなこともできるんです。
セルD2に入っている文字からセルF2に入っている文字までの間の色を塗れるんです。
こういうことができると、楽しくなってきますよね。

このときの条件付き書式のルールは次のようになります。
それぞれのセルがセルD2の値以上という論理式と、それぞれのセルがセルD2の値以上という論理式それぞれが()で囲まれ、その間を「*」で結んでいます。

これは論理式のかけ算の方法なんですが、2つの条件がどっちも真だったら真になります。ほかの日本語では「なおかつ」、英語だとAND条件と言ったりするんですが、ほかにも論理積って言ったりします。「積」ってかけ算の意味なんですね。
もう一つの考え方が、2つの条件のどっちかが真なら真になるっていう「または」、OR条件、論理和と呼ばれる方法があります。「和」ということは足し算のことなので、「*」ではなく「⁺」でつなぐ条件になります。

文字でも大小の倫理式を作ることができること、論理式は複数重ねることができ論理式を()で囲んだものを*や⁺で結ぶとできることをなんとなく覚えておくと、何かのときに応用が利くと思います!

まとめ

どっちか、どれかに分ける、IF関数とIFS関数の紹介でした。
IF関数とIFS関数は、論理関数という種類の関数で、ほかの関数と考え方が全く違う関数だと思います。だから混乱するときは、ほかの関数とおなじ関数として考えないで、関数のようななんか新しいものくらいのつもりで覚えてもいいかなって思います。
でも慣れてしまえば、論理式は左辺と右辺を=や不等号でつないで比較の条件を作るだけだし、あとは、そうだったときも出す値と、そうじゃなかったときの出す値を指定するだけなので、慣れたら簡単です。本当に簡単になります。空気みたいな感じです。

空白だったら空白っていうIF関数の使い方も紹介しましたが、さとうせんせいは、なにも見ないで作れるようにしておいた方がいいと言ってます。それだけExcelの計算式では多くすることなんだろうなって思います。

IFS関数は、最後、TRUE,最後に残った場合の表示するもの、っていうのも忘れないでくださいね。

関連関数

SWITCH関数:1つのセルの値によって複数に分けます

CHOOSE関数:何番目を指定してどれを出すか決めます

関連記事

テーブルと一緒に使うといい感じの関数☆

テーブルって使わなきゃExcelの魅力半減だよ☆