問98
頻出度★★☆
表計算ソフトを用いて,二つの科目X,Yの成績を評価して合否を判定する。それぞれの点数はワークシートのセルA2,B2に入力する。合計点が120点以上であり,かつ,2科目とも50点以上であればセルC2に“合格”,それ以外は“不合格”と表示する。セルC2に入れる適切な計算式はどれか。
| A | B | C | |
|---|---|---|---|
| 1 | 科目X | 科目Y | 合否 |
| 2 | 50 | 80 | 合格 |
この問題の解説と、これまでの解答の記録です。
表計算ソフトを用いて,二つの科目X,Yの成績を評価して合否を判定する。それぞれの点数はワークシートのセルA2,B2に入力する。合計点が120点以上であり,かつ,2科目とも50点以上であればセルC2に“合格”,それ以外は“不合格”と表示する。セルC2に入れる適切な計算式はどれか。
| A | B | C | |
|---|---|---|---|
| 1 | 科目X | 科目Y | 合否 |
| 2 | 50 | 80 | 合格 |
正解 合格になる条件は「合計点(A2+B2)が120点以上」「科目Xが50点以上」「科目Yが50点以上」の3つが『かつ(すべて)』成立することなので、条件は論理積(AND)で結ぶ。IF関数は IF(条件, 真のときの値, 偽のときの値) の順に書くため、条件が真=「合格」、偽=「不合格」を置く。したがって IF(論理積((A2+B2)≧120, A2≧50, B2≧50), '合格', '不合格') が正しい。実際、例のA2=50・B2=80では合計130≧120かつ両科目とも50点以上で論理積は真となり、C2に「合格」と表示され図と一致する。
条件の結び方は論理積(AND)で正しいが、IFの第2引数と第3引数が逆で、条件が真のとき「不合格」・偽のとき「合格」を表示してしまう。3条件をすべて満たす合格者に「不合格」を出すため、判定結果が反対になる。
論理和(OR)を使っているため、3条件のうち1つでも成り立てば「合格」と判定される。例えば片方の科目が50点未満でも合計が120点以上なら合格になってしまい、「2科目とも50点以上」という『かつ』の条件を表現できない。
論理和(OR)で条件を結んでいるうえに、真のとき「不合格」・偽のとき「合格」と表示位置も逆になっており、条件の種類と表示順の二重の誤りがある。