正解は、
「IF(A<>”r”,IF(B=”g”,1,IF(C<>”g”,1,0)),1)」
です。
【基礎知識】
当問題ではIF文の使い方と表から条件を設定する力が問われています。
IF文は条件によって、正の場合の処理、誤の場合の処理を行うためのものです。
構文は以下のようになります。
IF(条件,正の場合の処理,誤の場合の処理)
例えば、Aが1の場合に0、そうでなければ1を返すようなIF文は以下のようになります。
IF( A=1 , 0 , 1)
ここで1が数値の場合は上記の表現でいいですが、文字列の場合は“”で挟んで“1”と表現します。
また、Aが1の場合に0、そうでない場合にAが2の場合に2、そうでない場合に1を返すようなIF文を考えます。
IF(A=1,0,IF(A=2,2,1))
上記のようにIF文の中に、さらに条件分岐を作ってIF文を入れることをネストと言います。
次に表から、どういった条件を設定すべきかを考えます。
A、B、Cのどれか1つ以上がrであれば、1、すべてgの場合は0が返っていることがわかります。
選択肢1. IF(A=”g”,IF(B<>”g”,1,IF(C<>”g”,1,0)),1)
正しい。ネスト条件です。
まずAがgかどうかをチェックし、gであれば、次にBがgでないことをチェックしています。gでなければ(つまりrであれば)1、gであれば次にCがgでないかをチェックしています。gでなければ(つまりrであれば)1、gであれば0を返していますので、正しいです。
選択肢2. IF(A=”r”,1,IF(B=”r”,1,IF(C=”r”,1,0)))
正しい。1の式と同様ですが、1はgでないかをチェックしていましたが、こちらはrかどうかをチェックしています。
選択肢3. IF(A<>”g”,1,IF(B=”r”,1,IF(C<>”g”,1,0)))
正しい。Aがgでないかをチェックし、gでなければ(A=r)1、そうでなければBがrかどうかをチェックし、rであれば、1、そうでなければCがgでないことをチェックしています。
選択肢4. IF(A<>”r”,IF(B=”g”,1,IF(C<>”g”,1,0)),1)
誤り。Aがrでないかをチェックし、rでなければ1を返す構文となっており、誤っています。