今週の午後問題〔解答〕表計算 メロンの仕分 2019 (令和元) 年度

error

この記事は基本情報技術者試験の旧制度( 2022 年以前)の記事です。
この記事の題材となっている「午後問題」は現在の試験制度では出題されません。 ご注意くださいませ。

今週の午後問題 では毎週月曜に午後の必須選択問題から 1 問ピックアップして出題し、 解答欄 を設け、読者の皆さまにも解答してもらっています!

今週の午後問題は「 2019 年度 秋期 表計算」でしたが、皆さん、手応えはいかがでしょうか?

金曜になりましたので、出題の 解答 と 矢沢久雄さんによる 解説 に加えて、皆さんの正解率を公開します。

今週の午後問題
2019 年度 秋期 表計算 メロンの仕分

解答と解説

設問 1a

正解

セル E2 にはメロンの等級が入ります。

等級については、問題文中に

形状と表皮色の低い方が、そのメロンの等級となる

という記述があります。

例えば形状が “並” で表皮色が “良” だったら、 “並” ということです。フローチャートだと次のようになります。


どちらかが ‘並’

論理和(C2 = '並', D2 = '並')

ですから、セル E2 には

>IF(論理和(C2 = '並', D2 = '並'), '並',
	IF(論理和(C2 = '良', D2 = '良'), '良', '優'))

選択肢エが入ります。

設問 1b

正解

セル F2 は算出価格が入ります。

空欄 b は等級が “並” 以外のときの単価が入りますので、図 1 の単価表から算出します。 E2 に入った “優” または “良” を単価表の B1 から D2 の範囲で水平に探します。見つかったら、その範囲の上から 2 つめを取得します。

したがって空欄 b には

水平照合(E2, 単価表!B1:D2, 2, 0)

が入ります。

あとは複写する際の相対参照・絶対参照を考えましょう。 F2 は F3 ~ F1001 に複写されます。検索範囲である

単価表!B1:D2

の行番号は変化させたくありません。そこで空欄 b には

水平照合(E2, 単価表!B$1:D$2, 2, 0)

選択肢エが入ります。

なお、「照合一致」は、値ではなく、何番目に見つかったかの「位置」を返しますから不適切です。「表引き」は表の左上から数えた位置を引数とするので、不適切です。

設問 1c

正解

セル G2 は販売価格が入ります。

空欄 c は A2 が null ではなく、 E2 が “並” ではない時の販売価格が入りますので、

算出価額を 50 円単位で切り上げた値

です。

一番上の行の F2 と G2 の例でいえば、

2,431.5

2,450

になればよいわけです。

2431.5 ÷ 50 = 48.63 となり、これを整数値に切上げると 49 です。 49 * 50 = 2450 となります。

したがって空欄 c には

切上げ(F2/50, 0, 0) * 50

選択肢ウが入ります。

設問 2

正解d ― キ、 e ― キ、 f ― イ

設問 2 はワークシート “集計表” の “並” の等級のメロンの ID をワークシート “重量計算表” に割り振るマクロ Packing の穴埋めです。変数の役割が分かると、マクロが読みやすくなります。

i “集計表” を 1 行ずつ見ていくための変数(縦に動く)
j “重量計算表” に上から格納していくための変数(縦に動く)
CurrentColumn “重量計算表” の適切な列に ID を格納するための変数(横に動く)
空欄 d

空欄 d の直前の処理で “集計表” の ID を “重量計算表” に転記しています。そこで空欄 d には該当する ID のメロンの重量を “重量計算表” の F 列に加算する処理が入らなければなりません

加算される合計重量は F1 から数えて、 j 行下のセルですから、

相対(F1, j, 0)

です。
加算するメロンの重量は、集計表の B1 から数えて、 i 行下のセルですから、

相対(集計表!B1, i, 0)

です。

したがって空欄 d には

相対(F1, j, 0) ← 相対(F1, j, 0) + 相対(集計表!B1, i, 0)

選択肢キが入ります。

空欄 e

空欄 e は j を 1 加算する、つまり “重量計算表” の次の行に処理を移し、CurrentColumnを 0 に戻すための条件式が入ります。これは問題文中の

“メロンの合計重量が5kg以上” 又は “メロンの個数が4個” のどちらかを満たす

の条件が該当します。

メロンの合計重量は

相対(F1, j, 0)

に入っています。

現在の行のメロンの個数は CurrentColumn です。したがって、空欄 e には

論理和(相対(F1, j, 0) ≧ 5, CurrentColumn = 4)

選択肢キが入ります。

空欄 f

空欄 f は繰り返し処理の後にあります。ここは何をしている処理でしょうか。

繰り返し処理が終わっているということは、 “集計表” にあるメロンの処理がすべて終わったということです。

その後の条件式

相対(F1, j, 0) ≠ null

は、 “重量計算表” の重量に値が入っていることを示します。これは問題文の

(4) 割り振った結果、出荷条件を満たさない大箱に関する情報は、表示しないようにする

を実行するための処理です。すでに該当行の A 列から F 列までの幾つかには値が入っていますので、それを null にするための処理といえます。

そこで、変数 k を使って 6 回繰り返しています。 k は列を動かす変数です。空欄 f には

相対(A1, j, k) ← null

選択肢イが入ります。

みんなの解答

では、皆さん、手応えはいかがだったでしょうか?

なお、以下はこの問題の IPA の講評です。今後の参考になれば幸いです。

問 13 では,メロンの仕分を題材に,販売価格の算出式や,出荷条件に基づく箱詰めの割振り処理のマクロについて出題した。
 設問 1 の正答率は平均的で,おおむね理解されていた。 a では,ウと誤って解答した受験者が見受けられた。
メロンの等級を決定する条件を読み解き,関数 IF の条件として論理積と論理和のどちらが正しいかが判断できれば,正答できた。
 設問 2 では,d とf の正答率が低く,あまり理解されていなかった。 d ではイ,ウ及びエと誤って解答した受験者が見受けられた。どのセルが処理対象となるのかを,問題文から落ち着いて読み取って考えてほしい。 e の正答率は平均的で,おおむね理解されていた。
 式やマクロを記述する際は,その式やマクロで取り扱う値の組合せをあらかじめ網羅し,想定どおりの結果が得られることを確認しておくことが大切である。仕様に基づいて式やマクロを適切に記述する能力は,表計算に限らず,プログラム言語一般で求められるので,しっかりと習得しておくことが必要である。

ぜひ、来週の午後問題にも挑戦してみてください!

label 関連タグ
科目A試験は、
免除できます。
独習ゼミで科目A試験を1年間免除して、科目B試験だけに集中しましょう。
免除試験を受けた 74.9% の方が、
科目A免除資格を得ています。
科目A免除試験 最大 2 回の
受験チャンス !
info_outline
科目A免除試験 最大 2 回の
受験チャンス !
詳しく見てみるplay_circle_filled
label これまでの『今週の午後問題』の連載一覧 label 著者