中小企業診断士の過去問
平成27年度(2015年)
経営情報システム 問5

このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。

問題

中小企業診断士試験 第1次試験 経営情報システム 平成27年度(2015年) 問5 (訂正依頼・報告はこちら)

業務において条件に応じた処理を行う必要がある場合、条件を一覧表にして判定条件を検討することがある。
例えば、下記の表のように、項目A〜Cには商品の色が赤の場合は r が、緑の場合は g が入り、A〜C に入っている商品の色を判定して、Z欄に示す結果となるような判定を行う場合を考える。
判定には、以下の構文のIF文を用いて判定式を表記する。
     IF(条件式、判定が真の場合の処理、判定が偽の場合の処理)
ただし、IF文の判定が真または偽の場合の処理部分にはIF文のネストが許可される。また、条件式で文字列を表す場合は ”” の記号で囲み、等しくないことは<>で表す。
下記の解答群に示す判定式の中で、正しくない判定結果となるものはどれか。
問題文の画像
  • IF(A=”g”,IF(B<>”g”,1,IF(C<>”g”,1,0)),1)
  • IF(A=”r”,1,IF(B=”r”,1,IF(C=”r”,1,0)))
  • IF(A<>”g”,1,IF(B=”r”,1,IF(C<>”g”,1,0)))
  • IF(A<>”r”,IF(B=”g”,1,IF(C<>”g”,1,0)),1)

次の問題へ

正解!素晴らしいです

残念...

この過去問の解説 (2件)

01

問題の通り
IF(条件式、真の場合、偽の場合)で判定します。
赤、緑、赤でない、緑でないにそれぞれYES、NOを当てはめます。
A、B、Cを判定すると、表の値として4が不適切となります。

参考になった数14

02

正解は、

「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を返す構文となっており、誤っています。

参考になった数9