条件ありの足し算を自由自在に操れるようになると、ほかにもいろんな「もしアレだけをピックアップしてこうしたら…」なんてことを思いつくことでしょう。
その「アレ」をコントロールするための数式がいくつかあるので、見ていきましょう。
IF関数|もし◯◯だったら
今回使うのはこちらのダミーデータ。高校受験結果的サムシングです。
「計」の列にはSUM関数で国数英の合計得点を入力してあります。

受験者の平均得点が知りたいな。
ってときは、AVERAGE関数ってものがあって、SUM関数と同じように対象範囲を引数に指定してやれば出してくれます。
が、ワタシこのAVERAGE関数ってほとんど使わないんですよね…。
AVERAGE関数が世の中に存在しないと困るかもねえ、くらいのことは思いますが、自分の仕事上では「学校でならともかく、実社会では平均値ってあんまり使う場面はないよね…」なんて考えています。
でもExcelは「平均って大事!」と思っているみたいで、複数の範囲を選択すると、ウィンドウの隅っこに勝手に平均も出してくれます。

これ、ワタシは個数と合計はめっちゃありがたく参照しまくるけど、ここを見る度に「平均、…平均?!」と違和感を覚えます。
それはともかくとして。
例えばこのデータで「200点以上の人を合格、200点未満の人を不合格」としましょう。
あ、「以上」とか「未満」とかはOK? この辺は実社会でもバリバリに使いますね。
この場合はこう、違う場合はこう、と分岐する条件を指定するときは、IF関数を使います。
IF関数
=IF(条件の論理式, 真の場合, 偽の場合)
なんだこの引数はってなりますが、Excelはこの「真の場合(TRUEまたは0以外)」「偽の場合(FALSEまたは0)」という言い回しというか使い方が大好きなので、慣れてください。
条件に当てはまれば正しい(真・TRUE)で、そうでなければ偽・FALSEという使い方です。
偽の「0」ってなんやねんとなりますが、コンピュータってヤツは2進法の世界なので1か0でいろいろ判断しているわけです。んで、0を偽としているわけです。
データの例でいくと、「200点以上あれば合格」という条件があるわけです。
で、この「以上」をExcelでどう書けばいいかも習得する必要があります。
Excelの比較演算子
何かと何かを比べるときの記号を比較演算子といいます。
これはね〜、覚えていただくしかないんだな。
算数で使った記号とビミョーに違うから混乱しますが、頑張ってください。
上のデータでG2セル(佐藤くんの合計点数)が200点と比べてどうなのか、という例で見てみましょう。
| 記号 | 例 | 意味 |
|---|---|---|
| = | G2=200 | 200と等しい |
| <> | G<>200 | 200と等しくない |
| > | G2>200 | 200より大きい |
| >= | G2>=200 | 200以上 |
| < | G2<200 | 200未満 |
| <= | G2<=200 | 200以下 |
等記号の「=」はまあいいとして、≠ってどうすりゃいいんだったかな、以上と以下のときは「=」はどっちについたっけな、とワタシもよく混乱するので、その度に検索しています…。
今回は「200点以上が合格」という条件なので「G2>=200」という式になるわけですね。
比較演算子を活用してIF関数を完成
IF関数は
=IF(条件の論理式, 真の場合, 偽の場合)
でしたね。
今回の例では
=IF(200点以上という条件, 条件に当てはまれば「合格」, 当てはまらなければ「不合格」)
という式を書けばいいわけです。
「200点以上」という条件の書き方は上で見ました。
「合格」「不合格」などの文字列は、” “で囲めばOKでしたね。
そんなわけで、今回はこんな数式で書くことができます。
=IF(G2>=200,”合格”,”不合格”)

佐藤くん、合格です。やったね。
んで、あとはこのセルをずるーっと下に引きずってコピペしてやればOKです。
ずるーっとやる前に絶対参照とか相対参照とか気をつけた方がいいのでは…?
と思いついたあなたは偉い。
ワタシは式を作ったら、コピペするしないに限らず、絶対参照した方がいい箇所は$マークを必ずつけておくといいました。
この場合ワタシはどうするかというと、相対参照のままにしておきます。
なぜかというと、合否の欄の隣のセルだけ引っ張るという単純な式だから。
もし何か入用になって列を途中に挿入しても、Excelはその辺は賢いので勝手に数式を直してくれます。
例えば「英語」と「計」との間に1列追加すると、数式は自動的にこうなります。

これ、仮に「絶対G列から持ってくるし!」と「$G2>=200」という風に条件に入れておいても、同じように挿入したら「$H2>=200」にしてくれます。
と、絶対参照にしてもあんまり意味がないのと、後から見返したときに「この式なんだったっけなー」となるほどの数式でもないので、$マークはつけないパターンを選択します。
それよりも、数式の中に「合格」「不合格」という文字列が入っている方が気になるよ…!
条件分岐の結果をリスト化
というわけで、リスト化ってほどのボリュームでもないけれど、データ範囲外のどっかに「合格」「不合格」と入力します。

そんで、IF関数の「真」を”合格”としていたのをJ2セルに、「偽」を”不合格”としていたのをJ3セルに置き換えます。

こうすると何がいいかというと、出力結果は数式を直すんじゃなくて、リストを弄るだけで済むことです。

ま、数式も一気に修正する方法はいくらでもあるのですが、ワタシはミスを防ぐために数式の修正はなるべくしない派です。
あと、メンテナンスを楽にするために極力同じ数式を使う派。
例くらいのボリュームならいいのですが、シート内にいろ〜んなデータをもりもり織り込んでいるファイルを扱っているうちに、この気持ちがおわかりいただけるかと。
ではさっきの出力結果をリスト化した数式をずるーっとコピペすればいいかというと、待った待った。
この場合は、引用元を絶対参照しておきましょう。
なぜなら、J2とかJ3とかの相対参照のままだと、H2セルとしてはその位置が正しいけど、3行目以降は相対参照させると全然違うセルを引っ張ってきちゃうからです。
というわけで、引用元を絶対参照したうえでコピペしたのがこちらです。

そういえば、条件付き書式って覚えてる?
ふむふむ、合否はこれでわかるけれど、パッと見これだと不便かも。
そんなときは条件付き書式を活用しましょう。
条件を付けたい範囲を選択して「ホーム」タブの「条件付き書式」をぽちっとします。

条件の付け方はいろいろありますが、今回は「合格」となったセルを黄色で強調してみましょう。

条件の指定は、今回は「合格」かどうかなので、J列に作成したリストの「合格」セルを指定します。
こうして条件だの出力結果だのをリスト化すると、あっちこっちを修正しなくていいので楽なのです。
どんな風に強調表示したいかはデフォルトである程度種類がありますが、自分で好きなようにカスタマイズすることもできます。楽しいです。
というわけで、こんなカンジに見やすくなりました。

IFS関数|もしアレが◯◯でコレが××だったら
待って待って。
200点以上を合格としたけど、弊校としては数学で70点取れない生徒が入学してきたら困っちゃうのよ!
と、条件が複数になる場合もあるかと思います。
そんなときに便利な複数形。IFS関数の登場です。
IFS関数
=IFS(条件の論理式1, 真の場合1, 条件の論理式2, 真の場合2, …)
SUMIFS関数のときにも似たような構図を見ましたね。
あのときは条件範囲と条件の指定をひたすら繰り返したけれど、今度は「この条件に合っていればこれ、もし合わなければ次の条件の真偽、それも合わなければ次の真偽…」とひたすら繰り返します。
数学足切りを最優先として、それが70点未満なら不合格、数学足切りに遭わなければ合計200点以上で合格と、厳しい条件から並べていくわけです。

でもこの関数、ワタシはちょっと苦手で使っていない…。
なぜかというと、この例の式では不充分なのです。なぜなら更に「数学は足切りに遭わないけれど、合計200点に満たないから不合格」という条件も書かなきゃいけなくて、結構面倒だから。
SUMIFSと同様、このIFS関数も比較的新しい関数だと思うんですよね、多分。
IF関数って「この場合はこう、そうでなければこう、またまた合致しなければこう…」って入れ子状態になりがちで、だからIFS誕生のときは「楽になるかも?!」とワクワクしたんだけど、結局「条件の優先順位はなんだ?」とか「設定した条件を全部外したら?」とか考えることがいろいろ多くて、ガッカリして全然使うようにならなかったのでした。
AND関数やOR関数の方が便利かも?
ではIFS関数を無視してワタシがどうやって複数条件を分岐させているかというと、AND関数やOR関数を使っています。
AND関数
=AND(条件の論理式1, 条件の論理式2, …)
すべて条件を満たしていれば真(TRUE)
例の場合だと「数学が70点以上」「合計点が200点以上」という条件が2つあるので、それを示す式を引数に入れてやればいいです。
入れてみたけど…なのこの計算結果。

これはAND関数が「引数の条件を全部満たしていれば『TRUE』を、ひとつでも満たしていなければ『FALSE』を返してくる」という仕様になっているせいであって、数式に間違いがあるわけではないです。
これだと見づらいがな!
となると思うので、先ほど学んだIF関数を駆使して「AND関数の結果がFALSEなら不合格、そうじゃなくてTRUEなら合格」という式を作りました。

おっ、だんだん複雑になってきましたね。いいですね、Excelってカンジになってきましたね。
こんな風にIF関数とAND関数を組み合わせた方が条件設定が楽(にワタシは感じる)ので、IFS関数の出番は(ワタシ的には)あまりないのでした。
ちなみに、AND関数は条件がすべて満たされていれば真ですが、OR関数は「どれかが満たされていれば真」です。英単語そのままです。
OR関数
=OR(条件の論理式1, 条件の論理式2, …)
どれかひとつでも条件を満たしていれば真(TRUE)
おわりに
- IF関数をマスターしよう
- IF関数と、AND関数・OR関数の組合せに慣れよう
- IFS関数はお好みで…
IFとANF, ORは頻出関数なので、入れ子めんどくさーと思わず使いこなしてください。
しかし、あんまり入れ子状態にし過ぎると作るときも見返すときもしんどいので、条件が複数あるときは真偽を出しておく列を別に設ける、みたいな考え方も有用です。


