問題編を見ていない方は、まずは問題編をご覧下さい。
If関数って難しく考えられ過ぎだと思う (問題編)
では解答です。
エクセルはこちらからダウンロードして下さい。
メインはIf関数で、一部And関数を使っています。
「難しい高校」の数学が基準点を超えているかどうか、
国語が基準点を超えているかどうか、
をそれぞれ異なるセルで計算しています。
なぜ同じセルでAnd関数やOr関数を使って計算しないのか、
と思われるかもしれませんが、1つのセルで計算する必要がない
というのが理由の1つ。
もう1つは可読性が高い状態で置いておくほうが、
あとで拡充したり確認するのが容易なためです。
それでは、実際に詳細を見てみたいと思います。
まず、「難しい高校」の「数学」が基準点を超えているかどうか
=IF(C2>=80,”+”,”-“) C2が80点以上であれば「+」 それ以外の場合は「-」 |
=IF(D2>=70,”+”,”-“) D2が70点以上であれば「+」 それ以外の場合は「-」 |
このセルで「難しい高校」の判定を行います。
=IF(AND(I2=”+”,J2=”+”)=TRUE,”+”,”-“) I2とJ2(数学と国語の基準点判定) が両方とも「+」のときは「+」。 それ以外の時は「-」 |
これで、「難しい高校」の判定は完了です。
あとはこれを「普通の高校」、「簡単な高校」の順に
作っていくだけです。
「普通の高校」と「簡単な高校」も同じようにテーブルが
できたら、最後の生徒の行までオートフィルを行いましょう!
そうすると、各生徒がそれぞれの高校に合格するかどうかが
各高校の判定(3ヶ所)を見れば分かるようになりました。
なので、あとはその中で一番難しい高校がどこか、を探すだけですね。
言い換えると、今回の場合は、
「難しい高校」→「普通の高校」→「簡単な高校」
の順番に、判定が「+」になっているかどうか、を
確認すれば良さそうなので、下記の様に書けば良さそうです。
if(「難しい高校」が「+」,「難しい高校」,そうじゃない場合は「-」)
if(「普通の高校」が「+」,「普通の高校」,そうじゃない場合は「-」)
if(「簡単な高校」が「+」,「簡単な高校」,そうじゃない場合は「-」)
これを1行にするとこうなります。
if(「難しい高校」が「+」,「難しい高校」,if(「普通の高校」が「+」,「普通の高校」,if(「簡単な高校」が「+」,「簡単な高校」,そうじゃない場合は「-」)))
一見複雑そうに見えますが、
ifは優先順位が高い順に、前から順番に判定式と
「正」の時を書いていくだけで書けます。
少しは慣れも必要かもしれません。。
実際に書いた場合は下記の様になります。
=IF(H6=”+”,”難しい高校”,IF(L6=”+”,”普通の高校”,IF(P6=”+”,”簡単な高校”,”-“)))
これで各生徒がどの高校に進学できるのか、の一覧が出来ました。
今回は2教科、3種の進学先でしたが、
この考え方は5教科でも9教科でも、
内申書のデータが加わっていても、
同じ考え方で一覧を作成できると思います。
また、今回使ったのはIf関数とAnd関数だけでした。
少しでもエクセルをかじったことのある方は、
知っていた関数だと思います。
けど、問題はすんなり解けましたでしょうか?
問題がすんなりと解けなかった人は、
自分にはセンスがないんだ、と思ったかもしれません。
それは違います。
エクセルを料理に例えると、
関数は調理器具、
入力データは食材、
アルゴリズムは調理法です。
調理法を知らなかったからといって、
料理のセンスが無いと落ち込む必要はありませんよね?
それと同じで、色々な使い方を知れば良いだけです。
確かに、エクセルの世界にクックパッドはありません。
ただ料理と違うのは、アルゴリズムのパターンは
たかが知れてるということです。
クックパッドには300万の近くのレシピが登録されている
らしいです。(調べました。)
アルゴリズムのパターンなんて比べ物になりません。
めちゃくちゃ少ないです。
料理ができたらエクセルができないわけがない、
それぐらい簡単です。
ただ、アルゴリズムという概念を知らなかっただけです。
知っている人が周りにいなかっただけです。
本HPでは、アルゴリズムを何個か身に付けてもらうことで、
エクセルを本質的に使えるようにして貰うことを目的の1つに指しています。
ぜひ、簡単なアルゴリズムを身に付けて、
仕事を大幅に簡略化して下さい^^
そして、早く帰って自分の時間を満喫して下さい。