技術を楽しもう!

IT(ネットワーク)業界を中心に、仕事や趣味等、色々な技術を記録します。

基本情報対策を友人にレクチャー(第3回)③

https://www.pakutaso.com/shared/img/thumb/CSS85_keywosousasruop20131019_TP_V.jpg

今回は平成29年春 午後 問13:ソフトウェア開発(表計算)の問題です。 問8のデータ構造とアルゴリズムをスキップしていますが、 初回に苦しみながらもある程度説明できたということもあり、 彼は解説を読みながら復習を進めるとのことで、こちらに取り掛かることにしました。

Excelは関数やマクロを触ったことがあるようなので、 期待できそうです!

レクチャーを実施するに至った経緯は下記を参照ください。 www.it-enjoy.com

今回のポイント

  • 絶対参照と相対参照の問題は頻出と考えるべし
  • 関数は時間短縮のため、巻末の仕様書をいくつか覚えるべし
  • 解答候補から外せる選択肢をうまく見つけるべし

H29春 午後 問13

f:id:takashi-tobey:20200202000745p:plain
H29春 午後 問13-1

f:id:takashi-tobey:20200202000833p:plain
H29春 午後 問13-2

f:id:takashi-tobey:20200202000855p:plain
H29春午後問13-3

f:id:takashi-tobey:20200202000908p:plain
H29春午後問13-4

f:id:takashi-tobey:20200202000930p:plain
H29春午後問13-5

f:id:takashi-tobey:20200202000946p:plain
H29春午後問13-6

f:id:takashi-tobey:20200202001002p:plain
H29春午後問13-7

f:id:takashi-tobey:20200202001023p:plain
H29春午後問13-8

f:id:takashi-tobey:20200202001034p:plain
H29春午後問13-9

設問1

集荷した荷物を梱包することを題材とした表計算の問題です。 午後の最終問題はページの行き来が多いです。 これも含めて慣れるしかないですね。

空欄a

彼は下記に着目しました。

一致するものがあるときには1を、そうでなければ空値

空値のときに空値を表示する条件が既に書いてあります。 なので、上記の部分を計算式で表現すれば良いという判断は出来ていました。

ただ、「条件付個数って何でしょう?」という話になりました。 巻末の関数一覧で仕様が書いてあるので、参照すれば良いのだと教えました。 なお、Excel的にはCOUNTIFだと思います。

f:id:takashi-tobey:20200202221147p:plain

「C3:C10」は下記です。

f:id:takashi-tobey:20200202221521p:plain
H29春 午後 問13 図1

彼はIF文を理解していました。 条件を満たした場合に1が表示される必要があり、 下記、赤線箇所は1, nullの順である必要があります。 そのため、「ウ」「エ」「オ」は選択肢から除外、という判断ができていました。
※比較演算子に≧や≠があると変わってくるので注意は必要ですね。

f:id:takashi-tobey:20200202222329p:plain
H29春 午後 問13-aに関する解答群

ただ、惜しくも絶対参照の「カ」を選択し、間違えてしまいました。 もう一つ着目すべきは下記でした。

セルD16〜N16に複写する。

複写という表現があるときは、どこかが相対参照になると思って良いでしょう。 という助言をしました。「カ」ですと比較演算子も間違っていますね。 発送先都道府県が複数になることは無いはずなので、 C16~N16には、いずれか1か所のみ1が入力されます。 「>1」という記述では、2以上という条件指定になります。

設問2

空欄b

解答群に共通して出てくる関数は下記です。 ExcelだとMATCHに該当すると思います。 f:id:takashi-tobey:20200202225032p:plain

巻末の仕様とにらめっこしながら悩んでいる様子。 しばらく進まないので、ここで助け舟を出しました。

"検索の指定"として入力されているのが1か-1しかないので、 照合一致の仕様上、ワークシート"重量区分"のデータが昇順か、降順か判断すれば、 解答を絞り込めるのでは?

彼は巻末の仕様を読み返して気づきました。 「昇順なので、イとエは違いそうですね。」

照合一致で指定されている範囲は下記のいずれかなので、 f:id:takashi-tobey:20200202225838p:plain

照合一致の動作が「検索値以下の最大値を検索」なので、赤枠が正しく、 青枠から検索すると1つ軽い重量区分が選択されてしまう、 ということを理解できていたので良かったです。

空欄c

論理積(AND)と論理和(OR)です。 変に日本語にしてしまうことでややこしくなってますよね。 彼も概念は知っていましたが、どちらがどちらだか自信が無かったようです。 一応、巻末の関数一覧に書いてあることを教えておきました。

f:id:takashi-tobey:20200202231522p:plain

悩みながらも解答を導けていました。 "-"を表示する条件を回答する必要があるということを理解し、 "-"にならない場合は除外していきました。

  • 「ア」"-"にならないときの条件なような・・・
  • 「イ」論理積の条件を両方満たすことは無いような・・・
  • 「ウ」これのような気がするな・・・
  • 「エ」どちらも重量が検索できる条件のような・・・

空欄d

新しく出てくる関数は下記です。 ExcelだとVLOOKUPとINDEXですね。 f:id:takashi-tobey:20200202233815p:plain f:id:takashi-tobey:20200202233826p:plain

これも順番に選択肢を確認して正解していました。 Excel計算式を分析することは日頃から実施しているようです。

ワークシート"料金計算"のF4には重量区分の数値が1~5で入っています。 これをもとに、下記の範囲で考えれば良いです。 f:id:takashi-tobey:20200202234659p:plain

  • 「ア」1列左(場合によっては重量区分)が表示されるはず!
  • 「イ」重量区分の数値が列の番号として判定されるからだめ!
  • 「ウ」これのはずだ!
  • 「エ」表引きの行と列指定が逆!

自信が出てきたようで何よりです!

設問3

マクロの問題です。 プログラミング的な問題は慣れておく必要があります。

空欄e

彼の手が止まりました。やはり慣れが必要のようです。 まず、↔のような両方向の矢印は「条件分岐」を表しており、 最終的に何の処理が行われているかに着目すべきと助言しました。

変数「work_weight」が更新されていますね。 この変数の意味は下記のとおり説明があります。

梱包する商品総重量の最大値を保存する変数 work_weight

解答群で焦点になるのは下記のセルです。

f:id:takashi-tobey:20200203224016p:plain

f:id:takashi-tobey:20200203224142p:plain

これを踏まえると、彼は気づくことができました。 「work_weightを更新するための処理を実行する条件を考えれば良い」と。 作業数量より小さく、重量区分5の重量以下のときに、 work_weightを更新するのが正しいですね。 無事に正解しました。

空欄f

最後の問題です。 まず、「相対」に関しては下記が仕様です。 ExcelですとOFFSETに該当すると思います。 f:id:takashi-tobey:20200203224646p:plain

空欄fを含むで実施している処理の説明は下記です。 f:id:takashi-tobey:20200203225344p:plain

解答群で参照されているセルは下記です。 f:id:takashi-tobey:20200203225113p:plain

彼はX, Y, Zそれぞれの発送商品数量を埋めていく処理だと気づいており、 紫枠の位置を使用するのが正しいと考えて絞り込みましたが、 惜しくも、「イ」を選択して不正解でした。

「イ」では発送商品数量(青枠)から減らそうとするので、 無限ループになってしまいます。 残数量(赤枠)から減らすのが正しいですね。

解答

設問1 a: 「イ」
設問2 b: 「ア」 c: 「ウ」 d: 「ウ」
設問3 e: 「イ」f: 「エ」