共通テスト(情報) 過去問
令和5年度(2023年度)追・再試験
問63 (<旧課程>情報関係基礎(第4問) 問12)
問題文
なお、以下の問題を解答するにあたっては、使用する 表計算ソフトウェアの説明(リンク) を参照するとよい。
ある高等学校の体育祭は、a~fの6クラスで競い合う。この体育祭の競技は9つあり、競技ごとに試合数が決まっており、20が最大である。各試合の1位から3位までに得点が与えられ、得点の合計により優勝が決まる。競技ごとに得点は異なり、同順位は存在しない。競技には、必ず全クラスが全試合に出場する。また、点差などから作戦を立て、競技への出場者の変更が可能である。
Yさんは、体育祭で使用するシートの作成を大会本部から依頼され、昨年の結果を動作確認のためのテストデータとして使い、シートを作成することにした。
Yさんは、各クラスが各競技で獲得した得点、全競技での合計得点と総合順位を求めるためのシート3総合結果の作成を行うことにした。セル範囲D2~D7の第1競技における各クラスが獲得した得点は、シート1とシート2の値を用いて、
「1位で獲得した得点+2位で獲得した得点+3位で獲得した得点」で求めることができる。これよりシート3のセルD2に入力する計算式のうち「1位で獲得した得点」の部分は、
[ カ ]([ キ ])*得点一覧!( ク )
となり、これに2位、3位で獲得した得点の計算式を加えて、セルD2の計算式を完成させ、セル範囲D3~D7に複写した。
同様にシート3のセル範囲E2~L7には、第2競技から第9競技で各クラスが獲得した得点を求める適切な計算式を入力した。また、他のセルに関しても適切な計算式を入力した。シート3のセル範囲D8~L8の競技ごとの得点の合計は、シート1のセル範囲F2~F10の値と同じであったので、各クラスが獲得した得点の計算が正しいことが確認できた。
次にYさんは、クラス間の合計得点の差を求めるシート4合計得点差一覧の作成を行うことにした。シート4のセル範囲B3~B8には、シート3から総合順位を求める適切な計算式を入力した。次に、シート4に合計得点の差「自分のクラス−相手のクラス」を求めるため、セルD3に次の計算式を入力し、セル範囲D4~D8とセル範囲E3~I8に複写した。
VLOOKUP([ ケ ],総合結果![ コ ],[ サ ])
−VLOOKUP([ シ ],総合結果![ コ ],[ サ ])
( シ )にあてはまるものを1つ選べ。
このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。
問題
共通テスト(情報)試験 令和5年度(2023年度)追・再試験 問63(<旧課程>情報関係基礎(第4問) 問12) (訂正依頼・報告はこちら)
なお、以下の問題を解答するにあたっては、使用する 表計算ソフトウェアの説明(リンク) を参照するとよい。
ある高等学校の体育祭は、a~fの6クラスで競い合う。この体育祭の競技は9つあり、競技ごとに試合数が決まっており、20が最大である。各試合の1位から3位までに得点が与えられ、得点の合計により優勝が決まる。競技ごとに得点は異なり、同順位は存在しない。競技には、必ず全クラスが全試合に出場する。また、点差などから作戦を立て、競技への出場者の変更が可能である。
Yさんは、体育祭で使用するシートの作成を大会本部から依頼され、昨年の結果を動作確認のためのテストデータとして使い、シートを作成することにした。
Yさんは、各クラスが各競技で獲得した得点、全競技での合計得点と総合順位を求めるためのシート3総合結果の作成を行うことにした。セル範囲D2~D7の第1競技における各クラスが獲得した得点は、シート1とシート2の値を用いて、
「1位で獲得した得点+2位で獲得した得点+3位で獲得した得点」で求めることができる。これよりシート3のセルD2に入力する計算式のうち「1位で獲得した得点」の部分は、
[ カ ]([ キ ])*得点一覧!( ク )
となり、これに2位、3位で獲得した得点の計算式を加えて、セルD2の計算式を完成させ、セル範囲D3~D7に複写した。
同様にシート3のセル範囲E2~L7には、第2競技から第9競技で各クラスが獲得した得点を求める適切な計算式を入力した。また、他のセルに関しても適切な計算式を入力した。シート3のセル範囲D8~L8の競技ごとの得点の合計は、シート1のセル範囲F2~F10の値と同じであったので、各クラスが獲得した得点の計算が正しいことが確認できた。
次にYさんは、クラス間の合計得点の差を求めるシート4合計得点差一覧の作成を行うことにした。シート4のセル範囲B3~B8には、シート3から総合順位を求める適切な計算式を入力した。次に、シート4に合計得点の差「自分のクラス−相手のクラス」を求めるため、セルD3に次の計算式を入力し、セル範囲D4~D8とセル範囲E3~I8に複写した。
VLOOKUP([ ケ ],総合結果![ コ ],[ サ ])
−VLOOKUP([ シ ],総合結果![ コ ],[ サ ])
( シ )にあてはまるものを1つ選べ。
- B2
- B$2
- $B2
- C3
- C$3
- $C3
- D2
- D$2
- $D2
正解!素晴らしいです
残念...
この過去問の解説 (2件)
01
この問題は、相手のクラスの合計得点を求めるVLOOKUPの第1引数「検索値」[シ]を考えます。相手のクラス名はシートの行2(D2、E2、F2…)に入力されています。セルD3の式を右方向(E3、F3…)に複写すると列がD→E→F…と変わり、それぞれ異なる相手クラスを参照できます。一方、下方向(D4、D5…)に複写しても相手クラス名の行(行2)は変わらないよう固定する必要があります。したがって、列は相対参照・行は絶対参照($2)のD$2が正解です。
B2を参照すると、B2には「総合順位」という文字列が入力されており、相手のクラス名ではありません。VLOOKUPの検索値としてクラス名以外の値を使っても正しい合計得点を取得できません。正しくありません。
B$2は行を絶対参照で固定しますが、B2には「総合順位」が入力されており相手クラス名ではありません。また右方向に複写するとB→C→D…と列がずれますが、そもそもB列はクラス名ではないため正しくありません。
$B2は列を絶対参照($B)で固定しますが、B列には「総合順位」が入力されており相手クラス名ではありません。また下方向に複写すると行がずれてしまいます。正しくありません。
C3はC列・行3を参照しますが、C列は「自分のクラス名」の列です。相手のクラス名はD列以降の行2にあるため、C3を相手のクラスの検索値にすることは誤りです。また行・列ともに相対参照のため複写時にずれてしまいます。
C$3は行を絶対参照($3)で固定しますが、参照先C列は自分のクラス名の列です。相手クラスの参照には使えません。また右方向に複写すると列がD→E…とずれてしまいます。正しくありません。
$C3は列を絶対参照($C)で固定しますが、C列は自分のクラス名の列であり相手クラスを参照するのに使えません。また下方向に複写すると行もずれてしまいます。正しくありません。
D2はD列・行2で相手クラス名のセルを指しています。セルD3でのみ正しく動作しますが、下方向(D4、D5…)に複写すると行が「D3」「D4」…とずれてしまい、行2の相手クラス名を参照しなくなります。行を絶対参照にしていないため正しくありません。
D$2は列が相対参照・行が絶対参照($2)です。右方向に複写するとD→E→F…と列が変わり、それぞれ異なる相手クラス名を正しく参照できます。下方向に複写しても行2は固定され、常に相手クラス名の行を参照します。正解の選択肢です。
$D2は列を絶対参照($D)で固定しています。右方向に複写しても列Dが固定されたままになるため、E2(別の相手クラス)やF2(さらに別の相手クラス)を参照することができません。また下方向に複写すると行もずれてしまいます。正しくありません。
相手クラス名は行2(D2、E2、F2…)に並んでいます。式を右に複写するときは列が自動的にずれてほしい(相対参照)、下に複写するときは行2を固定したい(絶対参照$2)ので、D$2が正解です。参照の方向と複写の方向を対応させて考えるとわかりやすいです。
参考になった数0
この解説の修正を提案する
02
最初に、VLOOKUP()関数を使って、自分のクラスの合計得点を求めることを考えます。
VLOOKUP()関数の書式はVLOOKUP(検索値、セル範囲、列位置)となっています。
まず、2番目の引数の「セル範囲」ですが、「総合結果」シート上のセル範囲で、その中には得点データを得たいクラス名と、そのクラス毎の合計得点のデータが必要なので、「A2~C7」の範囲を含んでいなければなりません。と同時に、セルD3にこの関数を入力したあと、下方向と右方向のセルに複写するので、複写してもセル範囲の行番号と列番号は動かないようにするために、行番号と列番号は共に絶対参照としなければなりません。以上の条件を満たすセル範囲の指定は、「総合結果!$A$2~$C$7」になります。
次に、VLOOKUP()関数の1番目の引数である「検索値」ですが、ここは自分のクラス名なので、この式を入力する「合計得点一覧」のシートのセル「C3」となりますが、この式を右方向のセルに複写した時に列番号がずれないように、列番号を絶対参照とします。よって、検索値は「$C3」となります。
さらに、VLOOKUP()関数の3番目の引数である「列位置」ですがセル範囲の左端にある「クラス名」の列を1番目として、右に3番目の列に「合計得点」があるので、「3」となります。
以上より、自分のクラスの合計点を求める式は、「VLOOKUP($C3、総合結果!$A$2~$C$7、3)」となります。
次に、相手のクラスの合計得点を求める式をVLOOKUP()関数を使って表します。
2番目の引数の「セル範囲」は、自分のクラスのときと同じで、「総合結果!$A$2~$C$7」、また3番目の引数の「列位置」も、自分のクラスを求めるときと同じで「3」です。また、1番目の引数の「検索値」ですが、相手のクラス名が入力してあるセル「D2」となります。ただ、この式を下方向のセルに複写したとき、行番号がずれていかないように、行番号を絶対参照とします。よって、1番目の引数は「D$2」となります。以上より、相手のクラスの合計点を求める式は、「VLOOKUP(D$2、総合結果!$A$2~$C$7、3)」となります。
以上より、合計得点の差「自分のクラス-相手のクラス」を求めるためにセル「D3」入力する式は、「VLOOKUP($C3、総合結果!$A$2~$C$7、3)-VLOOKUP(D$2、総合結果!$A$2~$C$7、3) です。
これより、解答欄(シ)には「D$2」の選択肢の番号が入ります。
(シ)に入るのが「B2」だとすると、相手のクラスの合計得点を求める式は、「VLOOKUP(B2、総合結果!$A$2~$C$7、3)」などとセル「D3」に入力することになります。しかし、セル「B2」にはクラスの「総合順位」が入力されていて、VLOOKUP()関数の第1引数が「クラス名」でなくなってしまい、「総合結果!$A$2~$C$7」の範囲の左端列からクラス名を検索することはできません。よって、正しい式ではありません。
(シ)に入るのが「B$2」だとすると、相手のクラスの合計得点を求める式を「VLOOKUP(B$2、総合結果!$A$2~$C$7、3)」などとセル「D3」に入力することになります。しかし、セル「B2」にはクラスの「総合順位」が入力されていて、VLOOKUP()関数の第1引数が「クラス名」でなくなってしまい、「総合結果!$A$2~$C$7」の範囲の左端列からクラス名を検索することはできません。よって、正しい式ではありません。
(シ)に入るのが「$B2」だとすると、相手のクラスの合計得点を求める式を「VLOOKUP($B2、総合結果!$A$2~$C$7、3)」などとセル「D3」に入力することになります。しかし、セル「B2」にはクラスの「総合順位」が入力されていて、VLOOKUP()関数の第1引数が「クラス名」でなくなってしまい、「総合結果!$A$2~$C$7」の範囲の左端列からクラス名を検索することはできません。よって、正しい式ではありません。
(シ)に入るのが「C3」だとすると、相手のクラスの合計得点を求める式を「VLOOKUP(C3、総合結果!$A$2~$C$7、3)」などとセル「D3」に入力することになります。しかし、セル「C3」には自分のクラス名が入力されていて、VLOOKUP()関数から相手のクラスの合計得点を得ることはできません。よって、正しい式ではありません。
(シ)に入るのが「C$3」だとすると、相手のクラスの合計得点を求める式を「VLOOKUP(C$3、総合結果!$A$2~$C$7、3)」などとセル「D3」に入力することになります。しかし、セル「C3」には自分のクラス名が入力されていて、VLOOKUP()関数から相手のクラスの合計得点を得ることはできません。よって、正しい式ではありません。
(シ)に入るのが「$C3」だとすると、相手のクラスの合計得点を求める式を「VLOOKUP($C3、総合結果!$A$2~$C$7、3)」などとセル「D3」に入力することになります。しかし、セル「C3」には自分のクラス名が入力されていて、VLOOKUP()関数から相手のクラスの合計得点を得ることはできません。よって、正しい式ではありません。
(シ)に入るのが「D2」だとすると、相手のクラスの合計得点を求める式を、「VLOOKUP(D2、総合結果!$A$2~$C$7、3)」などとセル「D3」に入力することになります。しかし、この関数を下方向のセルに複写すると、VLOOKUP()関数の第1引数が「D3」、「D4」・・と次第にずれていき、VLOOKUP()関数の「検索値」が「クラス名」ではなくなってしまいます。よって、正しい式ではありません。
解説の冒頭で述べた理由により、正しい式です。
(シ)に入るのが「$D2」だとすると、相手のクラスの合計得点を求める式を「VLOOKUP($D2、総合結果!$A$2~$C$7、3)」などとセル「D3」に入力することになります。しかし、この関数を下方向のセルに複写すると、VLOOKUP()関数の第1引数が「$D3」、「$D4」・・と次第にずれていき、VLOOKUP()関数の「検索値」が「クラス名」ではなくなってしまいます。よって、正しい式ではありません。
この問題の場合も、やはり「相対参照」なのか「絶対参照」なのかということが関わってきます。あまり難しく考えず、右方向や下方向に複写した時に列番号や行番号を固定したい時には「絶対参照」($マークをつける)と覚えておいてください。
参考になった数0
この解説の修正を提案する
前の問題(問62)へ
令和5年度(2023年度)追・再試験 問題一覧
次の問題(問64)へ