其ノ7 IF関数入門一歩前
タイトルは、廣松渉の『哲学入門一歩前』のもじりです。
ただ、廣松の本の方は「一歩前」と銘打ってあるものの良質の哲学入門書だったりするのですが、
こちらはホントに一歩前までかも…。
というのは、ここではIF関数がテーマなんだけど、メインで語るのは
「IF関数を使わないでやってみる」ってことだったりするからです。
ハイ、では問題。「試験の点数が、60点以上なら合格、それ未満なら不合格」
のとき、どう処理しますか?
ここで、IF関数ができる人だったら、 下↓の定式にあてはめて、
=if(条件となる式 , 式を満たすとき , 満たさないとき)
こういうふうにするでしょう※1。
が、ひとまずコレ使わないでやってみましょうか。
Excelに限らないことだけど、ひとつのゴールに向かうには、いろんなやり方があるんです。
なので、一回やってみましょう。
あ、そうそう。今回ダウンロードデータを作ってないので、※1のような表を作ってください、お手数ですが。
ハイ、ではいきましょう。
2列使用することにします。
まず、「点数が60点以上かどうか」を調べる式を入れましょう。
=(B2>=60)で、判別できますね※2。
式を全セルに入れると、結果が「TRUE」「FALSE」で表示されます。
さて、「60点以上が合格」なんでしたね。
なので、フィルタで「TRUE」のところだけ抽出します。
そうして抽出されたところに、「合格」の文字を入力する※3。
逆もやります。「FALSE」のところに「不合格」を入力。
すると、要求された結果が出ます※4。
これと同じことを、1列でやるのが、IF関数なんです※5。
要するに、両者は同じことなんです。
ただ、IF関数だと1列で済む、というだけのこと。
「なら、IF関数の方が効率的だ」と言うかもしれません。
うん、たしかに場所は少なくて済むでしょう。
でも、別に2列使ったっていいじゃない。
IF関数がむずかしいのは、この2列使う部分をあらかじめ頭の中で構築できなきゃいけない、という点です。
ただ、むずかしいなと感じたら、順を追って動かしてみて(この場合だと実際に2列作ってみて)カバーすれば良いだけのこと。
効率が良いか悪いかはともかく、いろんなやり方があるんです。
実は、この章に限らずこのホームページ全体に言えることですが、
私は、最短距離でゴールに到達する方法を紹介する、という方針を採っていません。
私が語るのは、少ない手持ち武器で、なんとかゴールする方法、です。
スマートにゴールする仕方、ではありません。スマートなやり方を紹介しているサイトは他所にたくさんあります。
対して私のは、泥臭くても良いから、とにかくゴールに到達できるやり方です。
手持ち武器は少なくてもしょうがないです。特に最初は。
だけど、覚えたことは2コ3コでも、それを活かしていろんなことができる。
こういう方向を、私は目指してるんです。
もう1問いきましょう。
今度は、「80点以上ならA判定、60点以上80点未満ならB判定、60点未満はC判定」を処理してください。
・
・
シンプルに考えましょう。
まず、「点数」を「降順」で並べ替えます※6。
「降順」、つまり点数高い方から上から順ね。
そして、「80点以上のゾーン」「60~79のゾーン」「~60のゾーン」で色分けします。
で、色分けに合わせて「A」「B」「C」を入力する※7。
これでおしまい。
仮に生徒が100人いても、この方法ならそんなに手間もなくできるでしょう。
ただ、このやり方に1コだけケチつけると、「80点以上」とか「60~79」とかを目視で判断してるんですよね。
なので、数式でもやってみましょうか。※2~※4のやり方の応用です。
まず、「80点以上かどうか」を調べましょう※8。
で、「TRUE」のところだけ「A」を入れる※9。
次。「60点以上80点未満」を調べます。 ただ、コレ、要件が2つありますね。「60点以上」と「80点未満」の2つです。 なので、「60点以上」と「80点未満」の両方を満たす、という意味の式を入れてあげます※10。 AND関数を使って、2つの要件を満たしてあげましょう。
先ほどと同様に、フィルタで「TRUE」のところだけ、今度は「B」を入れてください※11。
で、あとは空白のところに「C」を入れれば完成。すばらしいね。
では、もしこの作業、(この章のテーマである)IF関数を使うとしたら。
こう↓なります※12。
式、長いなー。解説が必要ですね。
コレ、ご覧いただければわかるように、IF関数を2回使っています。
IF関数の使い方は、繰り返しになりますが、
=if(条件となる式 , 式を満たすとき , 満たさないとき)
でしたね。で、はじめの条件のところに「80点以上ですか?」の判別式を入れます。
式が「TRUE」なら、「A」が入るよう指定します。
複雑なのはここからです。
最初の式が「FALSE」の場合ですね。
もう1回IF関数を使い、今度は条件式を「60点以上80点未満ですか?」にします。
「60点以上80点未満ですか?」の式は、ANDを使うんでしたね。
で、この2コ目の式が「TRUE」なら「B」、「FALSE」なら「C」が入るよう指定します。
2コ目の式も「FALSE」、ということは、「80点以上ですか?」の問いにも「60点以上80点未満ですか?」の問いにも
取り残された余り、ということですから、「C」でOKですよね。
…いかがでしょうか。最後のヤツはけっこうむずかしいですよね。
けど、IF関数を使わないで済むやり方もある、ということも、同時にご理解いただけたかと思います。
繰り返しになりますが、ひとつのゴールにたどり着く方法はいろいろです。
もちろん、たくさんルートを知ってる方が便利かもしれません、が、
最初はね、ひとつずつ、覚えていきましょうよ。