「コピぺ de 関数」FILE_13
今回は関数の代名詞ともなりそうなIF関数を使ったテクニックを紹介したいと思います。
IFの使い方は、VBAやプログラミングをする上でも欠かせない考え方なので、不慣れな人はこの記事で覚えていってもらえたらと思います。
今回紹介する方法はこんな時に役立ちます。
- まずAという判定をして、当てはまればBの判定をしたい
- 該当するデータが入力されていなければ、結果は空白とする
- 分岐点をたくさん作りたい
- 数式の中に数式を作る方法を知りたい(関数のネスト)
では早速ですが、作業用のデータを用意しましたので、下記のデータをコピーして自身のExcelのA1セルに貼り付けてください。
氏名 | 国語 | 算数 | 社会 |
---|---|---|---|
赤井 | 80 | 50 | 99 |
安室 | 50 | 70 | 40 |
乱馬 | 40 | 60 | 70 |
複数の判定をする数式
手元のExcelにデータが用意できたと思いますが、こちらは先日行われた3教科のテストの点数です。
赤井さん、安室さん、乱馬さんの3名が受けたテストの点数が書いてあります。
このうち、社会の点数で80点以上ならA、60点〜79点ならB、59点以下はCと判定する式を作ってみましょう。
まずは数式の動きを知っていただきたいので、下記の数式をコピペしてE2セルにペースとしてください。
=IF(D2>=80,”A”,IF(D2>=60,”B”,”C”))
結果はAとなりますね。
ではE2セルをずずずいーっと下のセルに向かってE4セルまでコピーしてみましょう。
するとE3セルはC、E4セルはBとなりました。
数式はどのような動きをしているかというと、数式はこのように青い部分と赤い部分に切り分けて考える必要があります。
まず青いIF関数で、「D2セルが80以上なら”A”とする」と判定をします。
そもそも的な話ですが、IF関数はカンマを使って判定結果ごとの挙動を指定できます。
当てはまればカンマの前半部分を表示し、そうじゃなければ後半部分を表示するという動きをします。(正確には言い方が違うかもしれませんが)
今回使った数式では、下記のような動きになるということです。
そして80点以上じゃなかった場合、赤い部分の数式が動き始め、「60点以上ならBを表示し、そうじゃなければCとする」数式となります。
そうすることで、入力された結果に対して3つの区分に分けた判定ができるようになります。
ちなみに下記の数式でも同じような判定をすることができます。
同じように判定することができます。
数式は「D2セルが80点以上ならAとし、そうじゃないならD2セルが59点以下ならCをし、そうじゃないならBとする」という動きになります。
どちらの数式でも結果は同じですので、一つしか方法がない訳ではないので、そのことを覚えておいてください。
該当するデータがなければ空白とする
これはIF関数を使ったかなり実用的な方法です。
Excelのデータのうち、D4セルのデータを消してみてください。すると、下記の画像のようになります。
何もデータがないのにE4セルの数式は動き、「D4セルが80点以上ならAとし、そうじゃないなら次は60点以上ならBを表示し、そうじゃなければCとする」と判定するので、結果、どれにも当てはまらないのでCと表示しています。
つまり、データが入力されていない場合、結果はいつもCとなってしまいます。
それではナンセンスですので、IF関数を使って「値が空白なら空白表示し、そうじゃないなら〇〇とする」という数式を作ってみます。
下記の数式をF2セルに貼り付けてください。
=IF(D2=””,””,IF(D2>=80,”A”,IF(D2>=60,”B”,”C”)))
その数式をF4セルまでずずずいーっとコピーすると、
するとF4セルは空白となります。
最初の数式と比較するとこの箇所が変わっています。
赤いアンダーライン箇所を追加することで、先ほどの数式の条件分岐を始める前に「D2セルが空白なら空白と表示して、そうじゃなければ数式を始める」という式になります。
このように、前半部分に「セルが空白なら空白とする」という条件を入れておくと、データが入力されない限りABCの判定は行わない式となりますので、実際の書類等でも使えるテクニックだと思います。
分岐点をたくさん作りたい(関数のネスト)
先ほどの説明でなんとなくイメージできたと思いますが、数式の中に数式を作って、さらにその中に数式を作って・・・というようにどんどん増やして行くことができます。
それは関数のネスト(直訳すると”巣”)と言います。入れ子構造のことを意味します。
数式を分解すると上の画像のように考えることができます。
まず赤い数式があって、それを肌色の数式が包んでいて、さらにそれを青色の数式が包んでいます。
マトリョーシカみたいになってるわけですね。
このような数式を作る場合、青い数式から作って行こうとするとうまく行きません。
まずは赤い数式(一番小さい内側の式)を作ってから、それを囲る肌色の式を作って、その後に青色の式を作る順番でないと作りにくいです。
空白なら空白、というIF分岐なんかは非常に使えるので、関数のネストの基本になると思いますので、実践してみると使えると思います。
次回は、条件に当てはまるデータの個数を算出する方法(COUNTIF関数)をご紹介したいと思います。