総視聴再生時間43万分以上(2017年5月13日現在)の動画で基本情報技術者試験の過去問&キーワード解説!スキマ時間に動画!〜これじょIT〜

PR広告

平成27年度春 基本情報技術者試験 午後 問13 ソフトウェア開発(表計算)

問13 ソフトウェア開発(表計算)

次の表計算、ワークシート及びマクロの説明を読んで、設問1~3に答えよ。

〔表計算の説明〕

 ある会社では、社員ごとの社内向け学習教材の学習進捗状況を表計算ソフトで管理している。

〔ワークシート:学習進捗管理(単元記述部分)〕 (1) 社員ごとにワークシート"学習進捗管理"が用意され、学習進捗状況が記載される。ワークシート"学習進捗管理"の単元記述部分である列A~Gの例を、図1に示す。

平成27年度春 基本情報技術者試験 午後 問13 ソフトウェア開発(表計算) 図1

(2) 学習教材は12の単元から構成されており、単元にはそれぞれ固有のIDが割り振られている。

(3) セル A2~A13 には、単元のIDが昇順に格納されている。単元のIDは100から 昇順に100刻みで付与されている。

(4) セル B2~B13 には、単元名が格納されている。

(5) 各単元は複数の項目から構成されている。セル C2~C13 には、単元に含まれる 項目の学習順序(以下、項目学習順序という)が格納されている。セルの値が"任意"の場合はどの項目から学習してもよいことを示し、セルの値が"順次"の場合は各項目を項目のIDが小さいものから順番に学習しなければならないことを示している。

(6) セル D2~D13 には、その単元の学習を開始してから完了するまでの学習に要する標準的な日数(以下、標準日数という)が格納されている。

(7) セル E2~E13 とセル F2~F13 には、それぞれ対応する単元の学習を開始した日(以下、学習開始日という)、学習を完了した日(以下、学習完了日という)がそれぞれマクロ StartLearning と FinishLearning を用いて設定される。日付は yyyy-mm-dd の形式で表示されるが、表計算ソフトの内部では1970年1月1日からの経過日数を整数値で保持している。計算にはこの内部の整数値を利用する。

(8) セル G2~G13 には、それぞれの単元の学習に関する判定結果が表示される。学習完了日が設定されたとき、学習に要した日数が標準日数以下の場合には"○"が表示され、そうでなければ"△"が表示される。学習開始日も学習完了日も学習に要した日数に含まれる。ここで、休日は考慮せず、休日も1日と数える。例えば、学習開始日が2014年5月10日で学習完了日が2014年5月12日の場合、学習に要した日数は3である。また、学習完了日が設定されていない場合には空値が表示される。

設問1

ワークシート"学習進捗管理"に関する次の記述中の【 】に入れる正しい答えを、解答群の中から選べ。

 それぞれの単元の学習が標準日数内に完了したかどうかを表示するために、次の式をセル G2 に入力し、セル G3~G13 に複写する。

  IF(F2=null, 【 a 】)

【 a 】に関する解答群

  • ア IF(F2-E2+1≦D2, '○', '△'), null
  • イ IF(F2-E2≦D2, '○', '△'), null
  • ウ IF(F2-E2-1≦D2, '○', '△'), null
  • エ null, IF(F2-E2+1≦D2, '〇', '△')
  • オ null, IF(F2-E2≦D2, '○', '△')
  • カ null, IF(F2-E2-1≦D2, '○', '△')

(1) この学習教材の項目の総数は52である。ワークシート"学習進捗管理"の項目記述部分である列I~Mの例を、図2に示す。

平成27年度春 基本情報技術者試験 午後 問13 ソフトウェア開発(表計算) 図2

(2) セル I2~I53 には、項目のIDが昇順に格納されている。項目のIDは、その項目が属する単元のIDの下2桁を01から始まる連番にしたものである。

(3) セル J2~J53 には、項目名が格納されている。

(4) セル K2~K53 には、それぞれの項目が学習開始可能であれば"可"が表示され、そうでなければ"不可"が表示される。学習開始可能であるとは、次の条件①、②をともに満たしていることをいう。

① 項目が属する単元が学習開始可能である。単元が学習開始可能であるとは、単元のIDが100であるか、又は、より小さいIDの単元の学習が全て完了していることをいう。

② 次の条件(a)又は(b)のどちらかを満たしている。

(a) 項目が属する単元の項目学習順序が"任意"である。

(b) 項目が属する単元の項目学習順序が"順次"であり、その項目のIDの下2桁が01であるか、又は、その単元の中でより小さいIDの項目の学習が全て完了している。

(5) セル L2~L53 とセル M2~M53 には、それぞれ対応する項目の学習開始日、学習完了日がそれぞれマクロ StartLearning とマクロ FinishLearning を用いて設定される。

解説

【 a 】に入るのは「エ null, IF(F2-E2+1≦D2, '〇', '△')」です!

関数IFは、巻末の説明にある通り、書式はIF(論理式, 式1, 式2)となり、論理式がtrueのとき、式1の値を返し、論理式がfalseのとき、式2の値を返します!

式「IF(F2=null, null, IF(F2-E2+1≦D2, '〇', '△'))」の目的は「それぞれの単元の学習が標準日数内に完了したかどうかを表現する」ことです。

問題文に「単元の学習が標準日数内に完了したかどうか」について書かれています。下記は問題文からの抜粋です。

(8) セル G2~G13 には、それぞれの単元の学習に関する判定結果が表示される。学習完了日が設定されたとき、学習に要した日数が標準日数以下の場合には"○"が表示され、そうでなければ"△"が表示される。学習開始日も学習完了日も学習に要した日数に含まれる。ここで、休日は考慮せず、休日も1日と数える。例えば、学習開始日が2014年5月10日で学習完了日が2014年5月12日の場合、学習に要した日数は3である。また、学習完了日が設定されていない場合には空値が表示される。

学習に要した日数は、学習完了日から学習開始日を引いたもので、学習開始日も学習完了日も学習に要した日数に含まれます。たとえの「学習開始日が2014年5月10日で学習完了日が2014年5月12日の場合、学習に要した日数は3である。」場合、2014年5月12日から2014年5月10日を引くと2日となります。学習開始日も学習完了日も学習に要した日数に含まれるので、+1する必要があり、学習に要した日数は3となります。

上記のことをふまえて、式を構築します。

IF(F2=null, null, IF(F2-E2+1≦D2, '〇', '△'))で「F2=null」と論理式が入ります。F2がnullの場合は、第二引数の「null」となり、F2がnullではない場合「IF(F2-E2+1≦D2, '〇', '△')」の結果が返ります。ここで、選択肢「ア、イ、ウ」は外れます。

次に、IF(F2-E2+1≦D2, '〇', '△')ですが、「学習に要した日数」が「標準日数以下」を表現しています。「学習に要した日数」は学習完了日から学習開始日を引いたもので、学習開始日も学習完了日も学習に要した日数に含まれるので、「F2-E2+1≦D2」となります。この式が成り立つ場合は「学習に要した日数が標準日数以下の場合」なので「○」となり、「学習に要した日数が標準日数以下ではない場合」は「△」となります。

【 a 】に入るのは「エ null, IF(F2-E2+1≦D2, '〇', '△')」です!

設問2

ワークシート"学習進捗管理"に関する次の記述中の【 】に入れる正しい答えを、解答群の中から選べ。

IF(論理積(
    論理和(
	    切捨て(I3, -2) = 100,
		表引き($F$2〜$F$13, 【  b  】, 1) ≠ null)
	論理和(
	    垂直照合(切捨て(I3, -2), $A$2〜$C$13, 3, 0) = 【  c  】,
		剰余(I3, 100) = 1,
		【  d  】)),
	'可', '不可')

(1) それぞれの項目が学習開始可能か否かを表示するために、セル K2 に"可"を入力する。

(2) 次の式をセル K3 に入力し、セル K4~K53 に複写する。

b に関する解答群

  • ア 照合一致(切捨て(I2,-2),$A$2~$A$13,0)
  • イ 照合一致(切捨て(I2,-2),$A$2~$A$13,0)-1
  • ウ 照合一致(切捨て(I2,-2),$A$2~$A$13,0)+1
  • エ 照合一致(切捨て(I3,-2),$A$2~$A$13,0)
  • オ 照合一致(切捨て(I3,-2),$A$2~$A$13,0)-1
  • カ 照合一致(切捨て(I3,-2),$A$2~$A$13,0)+1

c に関する解答群

  • ア '順次'
  • イ '任意'

d に関する解答群

  • ア L3=null
  • イ L3≠null
  • ウ M2=null
  • エ M2≠null
  • オ M3=null
  • カ M3≠null

解説

【 b 】には「オ 照合一致(切捨て(I3,-2),$A$2~$A$13,0)-1」が入ります!

【 c 】には「イ '任意'」が入ります!

【 d 】には「エ M2≠null」が入ります!

問題文に関わる関数の説明をします。問題文の巻末からの抜粋です。

表引きの書式は、表引き(セル範囲, 行の位置, 列の位置)となり、セル範囲の行の位置と列の位置で指定されたセルの値を返します。

照合一致の書式は、照合一致(式, セル範囲, 検索の指定)となります。この問題の場合、検索の指定は"0"のみです。"0"の場合、式の値と一致する値を検索します。セル範囲を左上から走査し「式」の値と始めに一致するセルの位置を返します。

垂直照合の書式は、垂直照合(式, セル範囲, 列の位置, 検索の指定)となります。の問題の場合、検索の指定は"0"のみです。"0"の場合、式の値と一致する値を検索します。セル範囲の左端列を上から下に走査し、検索の指定によって指定される条件を満たすセルが現れる最初の行を探し、セルの値を返します。

表引き($F$2〜$F$13, 【 b 】, 1) ≠ null)での【 b 】は行の値を求めます。どのような値になるかは問題文を確認します。

(4) セル K2~K53 には、それぞれの項目が学習開始可能であれば"可"が表示され、そうでなければ"不可"が表示される。学習開始可能であるとは、次の条件①、②をともに満たしていることをいう。

① 項目が属する単元が学習開始可能である。単元が学習開始可能であるとは、単元のIDが100であるか、又は、より小さいIDの単元の学習が全て完了していることをいう。

② 次の条件(a)又は(b)のどちらかを満たしている。

(a) 項目が属する単元の項目学習順序が"任意"である。

(b) 項目が属する単元の項目学習順序が"順次"であり、その項目のIDの下2桁が01であるか、又は、その単元の中でより小さいIDの項目の学習が全て完了している。

表引き($F$2〜$F$13, 【 b 】, 1) ≠ null)は「より小さいIDの単元の学習が全て完了していることをいう。」の部分を表現します。

照合一致(切捨て(I3,-2),$A$2~$A$13,0)-1

F列には単元の学習終了日が入力されています。「より小さいIDの単元の学習が全て完了」は例えばID300番台であれば、ID200番台の単元の学習がすべて終了していればよいのでF3の値が入力されているかどうかを判定します。

例:102 1.2 応用数学 K3の場合を考えると、まず項目IDから、単元IDを調べます。項目ID102は単元ID100(基礎理論)です。この場合は、切捨て(I3, -2) = 100が成り立ち、「可」となります。単元IDが100の場合は、すべてこの式が当てはまります。これでは「表引き($F$2〜$F$13, 【 b 】, 1) ≠ null)」が分からないので、単元200番台をみます。

例:項目ID 201 2.1データ構造 K6の場合を考えると、項目IDが201の場合、切り捨てすると単元ID200が導けます。次に、列Aから単元ID200の位置を探します。これが「照合一致(切捨て(I3,-2),$A$2~$A$13,0)」となります。この例では単元ID200は、A2から数えて2番目のA3にあるので、2となります。この2をそのまま($F$2〜$F$13, 2, 1)とすると、単元ID200の学習終了日をのセルの値をとってきてしまいます。そこで、-1補正し「照合一致(切捨て(I3,-2),$A$2~$A$13,0)-1」とすると、目的のセルの値が取れます。

答えは「表引き($F$2〜$F$13, (切捨て(I3,-2),$A$2~$A$13,0) - 1, 1) ≠ null)」となります!

続いて【 c 】

垂直照合(切捨て(I3, -2), $A$2〜$C$13, 3, 0)では「任意」か「順次」かをチェックしています。「任意」の場合は、可となります。従って【 c 】には「イ '任意'」が入ります。

垂直照合(切捨て(I3, -2), $A$2〜$C$13, 3, 0) = '任意'

となります。簡単に式を説明すると、項目ID 201 2.1データ構造 K6の場合を考えると、項目IDが201の場合、切り捨てすると単元ID200が取得できます。それを列Aで走査するとA3にでヒットします。その行のAから数えて3番目の列Cの値を返します。

最後に【 d 】

前の項目が終わったかどうかをチェックします。K3の場合、前の行の学習終了日M2がnullではないことが「可」の条件となります。

【 d 】には「エ M2≠null」が入ります!

設問3

学習開始日を設定するマクロ StartLearning と学習完了日を設定するマクロ FinishLearning をワークシート"学習進捗管理"に格納した。マクロ StartLearning 中の【 】に入れる正しい答えを,解答群の中から選べ。

(1) セル O2 に学習を開始する項目のIDを入力し,マクロ StartLearning を実行すると,次の①,②をともに満たす場合,対応する項目の学習開始日にマクロが実行された日付を設定する。

① その項目が学習開始可能である。

② その項目の学習開始日が空値である。

 また,その項目が属する単元の学習開始日が空値ならば,単元の学習開始日にもマクロが実行された日付を設定する。

(2) マクロ StartLearning の実行時のセル O2 には,セル I2~I53 にあるいずれかの項目のIDが正しく入力されているものとする。

(3) マクロ StartLearning では,マクロの実行日を取得するために表1に示す関数を用いる。

平成27年度春 基本情報技術者試験 午後 問13 ソフトウェア開発(表計算) 表1

【マクロ:StartLearing】

○マクロ: StartLearing
○数値型: ItemRow, UnitRow
・ItemRow ← 照合一致(O2, I2〜I53, 0)
・UnitRow ← 照合一致(切捨て(O2, 02), A2〜A13, 0)
▲論理積(【  e  】)
|・相対(L1, ItemRow, 0) ← 本日()
|▲相対(E1, UnitRow, 0) = null
||・相対(E1, UnitRow, 0) ← 【  f  】
|▼
▼

e に関する解答群

  • ア 表引き(K2~K53,ItemRow,1)='可',表引き(E2~E13,UnitRow,1)=null
  • イ 表引き(K2~K53,ItemRow,1)='可',表引き(E2~E13,UnitRow,1)≠ null
  • ウ 表引き(K2~K53,ItemRow,1)='可',表引き(L2~L13,ItemRow,1)=null
  • エ 表引き(K2~K53,ItemRow,1)='可',表引き(L2~L13,ItemRow,1)≠ null
  • オ 表引き(K2~K53,ItemRow,1)='不可',表引き(E2~E13,UnitRow,1)=null
  • カ 表引き(K2~K53,ItemRow,1)='不可',表引き(E2~E13,UnitRow,1)≠ null
  • キ 表引き(K2~K53,ItemRow,1)='不可',表引き(L2~L13,ItemRow,1)=null
  • ク 表引き(K2~K53,ItemRow,1)='不可',表引き(L2~L13,ItemRow,1)≠ null

f に関する解答群

  • ア 表引き(E2~E13,ItemRow,1)
  • イ 表引き(F2~F13,ItemRow,1)
  • ウ 表引き(F2~F13,UnitRow,1)
  • エ 表引き(L2~L53,ItemRow,1)
  • オ 表引き(L2~L53,UnitRow,1)
  • カ 表引き(M2~M53,ItemRow,1)
  • キ 表引き(M2~M53,UnitRow,1)

解説

【マクロ:StartLearing】のロジックについての問題です。問題文にある通りStartLearingは「学習開始日を設定するマクロ」です!

・ItemRow ← 照合一致(O2, I2〜I53, 0) のItemRowは照合一致(O2, I2〜I53, 0)の式から項目IDを示しており、

・UnitRow ← 照合一致(切捨て(O2, 02), A2〜A13, 0) のUnitRowは照合一致(切捨て(O2, 02), A2〜A13, 0)の式から単元IDを示します。

O2には、単元IDが入ります。仮に301が入った場合

ItemRowは照合一致(301, I2〜I53, 0)となり、8が返ります。

UnitRowは照合一致(切捨て(301, 02), A2〜A13, 0)となり、3が返ります。

【 e 】には論理式「ウ 表引き(K2~K53,ItemRow,1)='可',表引き(L2~L13,ItemRow,1)=null」が入ります。StartLearingは該当する項目IDの学習開始日が入おらず、該当項目IDの学習開始可能が「可」となっている場合に日付を入力します。

該当する項目IDの学習開始日が入おらずが「表引き(L2~L13,ItemRow,1)=null」の部分となり、該当項目IDの学習開始可能が「可」となっている場合が、表引き(K2~K53,ItemRow,1)='可'の部分となります。

例の場合(O2が301)はItemRowが8となるので、表引き(K2~K53,8,1)となります。表引き(K2~K53,8,1)は'可'となります。L9に値がなければ日付けをいれます。表引き(L2~L53,8,1)とすると、L9の値が取得することができます。

論理式がtrueになった場合、該当項目IDに本日の日付を入れます。・相対(L1, ItemRow, 0) ← 本日()。例の場合(O2が301)はItemRowが8となるので、相対(L1, 8, 0)となり、L9に本日の日付が入ります。

次に、該当する単元IDに学習開始日がない場合は、項目IDの学習開始日を入力します。例の場合「表引き(L2~L53,8,1)」の結果のL9の日付が、相対(E1, 3, 0)=セルE4に入ります。

タグ: ,,,,

PR広告

フェイスブックコメント

平成28年度秋 基本情報技術者試験 午後 テキスト・動画解説

平成28年度秋 基本情報技術者試験 午前 テキスト・動画解説

平成28年度春 基本情報技術者試験 午後 テキスト・動画解説

平成28年度春 基本情報技術者試験 午前 テキスト・動画解説

平成27年度秋 基本情報技術者試験 午後 テキスト・動画解説

平成27年度春 基本情報技術者試験 午後 テキスト・動画解説

平成27年度春 基本情報技術者試験 午前 テキスト・動画解説

平成26年度秋 基本情報技術者試験 午前 テキスト・動画解説

平成26年度春 基本情報技術者試験 午前 テキスト・動画解説