複数セルの条件をIFで計算したい時はどうすればいいの?
こんな感じの小学校の通知表を点数で表示したいとの要望だった。
そんなもんIFS使えばいんじゃね?
と軽くアドバイスして終わるかと思ったが・・・
なんとOffice2016じゃIFS関数はサポートしてないんだそうで。。
IFS関数は、サブスクリプション版のOffice365じゃないと使えないんだそうです。
全然知らなかった。
ということでIFSを使わないで実現する方法を。
IF関数をネストする
IFS関数の役目
IFS関数は、IF文をネストする時に便利です。
ネストって何個も重ねることだと思ってください。
IFはそのまま「もし」ですよね。
もしリンゴが甘かったら手を挙げて、酸っぱかったら手を下げて下さいというのをIFで表現するにはこんな感じです。
IF(リンゴ=甘い,手を挙げる,手を下げる)
イコールは同じという意味。
この場合はIFは1つで足ります。
ですが、リンゴとミカンが登場人物に出てくる場合は、複数の条件が必要になりますので、ネストする必要があります。
もしリンゴが甘かった右手を挙げて、ミカンが甘かったら左手を挙げる。
リンゴが酸っぱかったら右手を下げて、ミカンが酸っぱかったら左手を下げる。
このように複数の条件が重なる場合は、IFを何個も使う必要がありました。
ですが、IFSを使うとこんな簡単に書けるのです。
IFS(リンゴ=甘い,右手挙げる,ミカン=甘い,左手挙げる,リンゴ=酸っぱい,右手下げる,ミカン=酸っぱい,左手下げる)
こんな感じ。
これをIFでやるといろいろとややこしいことになるので便利なのです。
IF関数で実現する場合
IFSがないバージョンのExcelで複数条件の分岐を実現するにはIFを重ねるしかありません。
その際にIFとAND関数、OR関数を組み合わせるのが一般的です。
AND関数(かつ)
ANDは日本語では「~なら」で表現できます。
リンゴが甘くてミカンも甘いなら右手を挙げるというような形で使用します。
OR関数(または)
OR関数は日本語では「もしくは」で表現します。
リンゴは甘い「または」ミカンが甘い場合右手を挙げるというような形。
これを踏まえてこの表の点数を実現してみましょう。
- 「よくできる」に「〇」が入っている場合3点
- 「できる」に「〇」が入っている場合2点
- 「もう少し」に「〇」が入っている場合1点
このケースでは、B3のセルに「〇」が入っていて、C3とD3に何も入ってない。
さらにC3に「〇」が入っていてB3とD3に何も入ってない。
さらにさらにD3に「〇」が入っていてB3とC3に何も入ってない。
この条件をE3のセルに入れればいいのです。
式としてはこんな感じの式を入れれば表現できます。
IF(AND(B3=”〇”,C3=””,D3=””),”3″,IF(AND(B3=””,C3=”〇”,D3=””),”2″,IF(AND(B3=””,C3=””,D3=”〇”),”1″,””)))
B3に「〇」が入っていてそれ以外が空なら3点。
C3に「〇」が入っていてそれ以外が空なら2点。
D3に「〇」が入っていてそれ以外が空なら1点。
単純に「〇」が入るだけを考えればいいのでそれほど難しくないと思います。
E3に式を入れたら後は下方向に式をコピーしてください。
ちなみに上記の条件にマッチしない場合は空になるようにしています。
ですので下の2行のように「〇」が複数入ってしまったり、何も入らない場合は空になるようになってます。
IFSを使うと簡単なのにIFで頑張ってみた結果でした。