2006年 大学センター入試 数学A 情報関係基礎 第4問(選択問題)解説
2006年1月22日、情報関係基礎に出題された、表計算問題の解説です。
表計算の関数問題ですが、使用するソフトウェアのルールなどは、別途説明がありました。
エクセルの関数とは若干異なっている部分がありますが、基本的な考え方は同じなので、エクセルで解説します。
制限時間は 60分です。 頭の体操になりますよ!
センター入試で実際に使用された問題をそのまま載せていますので、解答群の記号はマークシート対応の 0 から始まっています。
ただし、問題文は 読みやすさ を重視して改行していますが、実際は改行せずに出題されていました。

   次の文章を読み、下の問い(問1〜3)に答えよ。(配点 35点)

   表1に示すワークシート料金体系は、ある通信会社のサービスのうち、通話サービスの料金体系を示している。
  通話料金は、基本料金と通話時間に応じた通話料からなり、松コースと桜コースには、毎月それぞれ 3000 円分と 1000 円分の無料通話サービスがある。
  ただし、無料通話サービス分に使い残したあったとしても翌月に繰り越すことはできない。なお、通話時間の単位は分である。
   ここで表2のワークシート利用状況にある梅コース利用者を想定して、各コースのシミュレーションを行う。

              表1  ワークシート 料金体系                        表2  ワークシート 利用状況
   

 
問1 次の文章の空欄( ア )〜( カ )に入れるのにもっとも適切なものを、下のそれぞれの解答群のうちから一つずつ選べ。

   まず、表2から、1ヶ月あたりの昼間と夜間の平均通話時間を求めることにする。ただし、小数点以下を切り捨てることとする。
  そのため、 B15 番地に計算式 INT( ( ア )(( イ )))を入力し、 C15 番地に複写した。
  次に、それぞれの月の料金を求めるために、計算式 ( ウ )を D3 番地に入力し、セル範囲 D4 〜 D14 に複写した。
   D15 番地に平均月間通話料金を求めるには、セル範囲 ( エ ) の平均と考えて ( オ )番地の計算式を複写するやり方と、
  昼間と夜間の平均月間通話時間に 表1の料金体系を適用すると考えて ( カ )番地の計算式を D15 番地に複写するやり方がある。
  ここでは後者を選んだ。


  ( ア )の解答群

 0, MAX  1, MIN  2, SUM  3, AVG


  ( イ )、( エ )〜( カ )の解答群

 0, A3〜A14  1, B3〜B14  2, C3〜C14  3, D3〜D14  4, A3  5, B3  6, C3  7, D3  8, B15


  ( ウ )の解答群

 0, 料金体系!$B$3+料金体系!$B$5*C3+料金体系!$B$6*B3

 1, 料金体系!$C$3+料金体系!$C$5*C3+料金体系!$C$6*B3

 2, 料金体系!$D$3+料金体系!$D$5*C3+料金体系!$D$6*B3

 3, 料金体系!$B$3+料金体系!$B$5*B3+料金体系!$B$6*C3

 4, 料金体系!$C$3+料金体系!$C$5*B3+料金体系!$C$6*C3

 5, 料金体系!$D$3+料金体系!$D$5*B3+料金体系!$D$6*C3


問1 解答と解説
 

 
解答 ( ア ) 3, AVG  ( イ ) 1, B3〜B14

 
解説 問題文の中に、「平均通話時間」という言葉が出ています。表の項目も「平均」となっています。
     ただし、計算式の関数は「INT」で始まっていますから、この「INT」の引数を指定する事になります。
     「INT」というのは、問題に指定してある通り、小数点以下を切り捨てた値を返す関数で、指定方法は
     =INT(数値または計算式) となりますから、ここに求めた平均値の値を代入します。
     平均を出す関数は、「AVG」で、指定方法は =AVG(平均を求める範囲) です。
     ここでは、B15 番地に入力し、 C15 番地にコピーできるように設定するのですから、
     解答は、昼間通話時間のデータが入っている範囲 B3〜B14 となります。

 
解答 ( ウ ) 5, 料金体系!$D$3+料金体系!$D$5*B3+料金体系!$D$6*C3
     ( エ ) 3, D3〜D14
     ( オ ) 8, B15
     ( カ ) 7, D3

 
解説 問題の中で難しいと感じる部分は、一見 ( ウ )ですが、落ち着いて考えると消去法で答えられる問題です。
     解答群にある式の形は、「基本料金+昼間通話料+夜間通話料」ですから、この基本料金の番地を確認します。
     表1 にある、梅コースの基本料金の番地は D3 ですから、最初の指定が 「料金体系!$D$3」 以外の回答は消去です。
     すると、 2,または5, という2つの回答に絞られますから、この2つの違いを考えてみます。
     違いは、 B3 と C3 の位置ですが、表2 の B3 は昼間通話時間、 C3 は夜間通話時間です。
     この2つが、表1 の料金と正しく組み合わさっているかを確認します。
     料金表の昼間通話料の番地は D5 夜間通話料の番地は D6 ですから、 B3 と D5 、 C3 と D6 という組み合わせが正しい計算です。
     
     ( エ )、( オ )、( カ )については、落ち着いて文章を良く読む必要があります。
     特に、( オ )と( カ )は、逆に回答した方も多いのではないでしょうか?
     文中に 「セル範囲 ( エ )の平均と考えて」 とありますから、これを「月ごとの利用料金の平均」と読み替えると、通話料金を計算した
     D3〜D14 という範囲である事がわかります。
     解答群の中にあるセル番地の内、本当に計算式を入力したセルは、D列 と 15行目だけですから、 4, A3  5, B3  6, C3
     この3つの選択はありえない事になります。 残りは
7, D3  8, B15 の2つです。
     この内 D3 には、料金表の数字を代入して通話料金を計算させる式が入力してあり、 B15 には通話時間の平均値を求める計算式が
     入力してあります。
     ( オ )は、セル範囲( エ )の平均として考えるのですから、平均値を求める計算式の B15 をコピー、
     ( カ )は、料金体系を適用するのですから、 D3 の式をコピーすれば良いとなります。

     問題はここでは終わっていません。最後に一言、「ここでは後者を選んだ。」という文がついています。
     これは、平均通話料金の最終的な計算方法は、料金表を適用させて計算させているという事を暗示しています。
     言うまでも無く、次の問題へのアプローチですね。
     下のエクセルの表は、実際にその計算式を入力したものです。最後の問題は、水色のセルです。


    

 
問2 次の文章の空欄 ( キ )〜( ス )に入れるのに最も適当なものを、次ページのそれぞれの解答群のうちから一つずつ選べ。

   松コースと桜コースについても1か月あたりの平均通話料を求め、三つのコースの中で最適なコースを選択することを考える。
  そこで、表3のようにワークシート利用状況に列 D, E を挿入し、行16 を追加した。そして、松コースと桜コースの料金を求めるため、
  以下の計算式を D3 番地に入力し、セル範囲 D4〜D15 とセル範囲 E3〜E15 に複写した。
     ( キ )+( ク )(0, ( ケ )−( コ ))
   次に、最適コース名の表示のため、以下の計算式を B16 番地に入力した。
     PICKUP (( サ ),( シ )( D15〜F15 ),( ス ))

             表3  ワークシート 利用状況                           表1(再)  ワークシート 料金体系
   


  ( キ )、( コ )の解答群

 0, 5000  1, 3000  2, 2000  3, 1000  4, 料金体系!B$3  5, 料金体系!$B3  6, 料金体系!B$4  7, 料金体系!$B4

 8, 料金体系!B$5  9, 料金体系!$B5


  ( ク )、( シ )の解答群

 0, MAX  1, MIN  2, SUM  3, AVG


  ( ケ )の解答群

 0, $B3*料金体系!B5   1, $B3*料金体系!B$5+$C3*料金体系!B$6

 2, $B3*料金体系!B$5  3, B$3*料金体系!B$5+C$3*料金体系!B$6

 4, $B3*料金体系!$B5  5, B3*料金体系!B5+C3*料金体系!B6


  ( サ )、( ス )の解答群

 0, D3〜D14  1, E3〜E14  2、 F3〜F14  3, D2〜F2  4, D3〜F3  5, D15〜F15  6,B15〜C15  7, B3〜C14  8, D3〜F14


問2 解答と解説
 

 
解答 ( キ ) 4, 料金体系!B$3

 
解説 この問題は、絶対参照のつけ方にポイントがあります。問題文中にもあるように、 D3 に入力した計算式を複数のセルにコピーするのが
     前提となっていますので、絶対参照のつけ方を間違えると、全体の値が間違った値になってしまいます。
     解答群の中の 0, 5000  1, 3000  2, 2000  3, 1000 に関しては、このまま式に代入してコピーすると、コースが変わっても同じ数値で
     計算してしまい、コピーするという前提が成り立たなくなってしまうので、除外します。
     残りの解答群には、絶対参照の位置が違うセル番地、B3, B4, B5 があります。
     問題は、「何かと何かを足した値が通話料金になる」という計算式ですが、最初の「何か」は計算で求めていません。
     つまり、変化しない「何か」ですから、「基本料金」が当てはまりますね。
     「基本料金」は料金体系の表の中の 3行目 ですから、入力するセル番地 D3 の松コースに適用される B3 が対応します。
     コピー先の範囲は、松コース D列 と 桜コース E列 ですから、右方向にもコピーします。
     つまり、桜コースは C3 を対応させる必要があるわけです。
     3行目という指定は動かせませんが、 B列 という指定はコピーした際 C列 に動かしたいのです。
     なので、列を指定する B には絶対参照を付けず、行を指定する 3 に絶対参照を付けます。

 
解答 ( ク ) 0, MAX
     ( ケ ) 1, $B3*料金体系!B$5+$C3*料金体系!B$6
     ( コ ) 6, 料金体系!B$4

 
解説 ( ク )については、後ろの (0, ( ケ )-( コ ))という指定方法を使う関数を考えます。
     2, SUM  3, AVG は関数の引数に範囲を指定する形ですので、このように引数をカンマで区切って指定する方法ではありません。
     残りは 0, MAX  1, MIN となりますが、 最大値を求めるのが適切なのか、最小値を求めるのが適切なのかを考えます。
     問1の時に、小数点以下を切り捨てる方法を使っているので、ここでも「0に近い最小値」と考えてしまいがちですが、
     頭をやわらかくして良く考えると、梅コースとは計算する上で条件が違う事に気が付きます。
     松・桜のコースには「無料通話分」という設定があり、この料金は通話時間に関わらず一定額です。
     ところが、通話時間から計算した通話料金が、この無料通話分以下だった場合、通話料金はマイナスになってしまいます。
     ここで、数直線を思い出してください。問題になっている関数の引数に 「0」 があるという事は、マイナスになってしまった場合には
     「0」と認識させる事で、料金の計算が基本料金以下になる場合を回避させる意味があります。
     数直線上で、マイナスは 「0」 よりも左側、つまり、マイナスの数値よりも 「0」 の方が大きいという事ですね。
     通話料金が無料通話分よりも 1円 でも多ければその料金を、無料通話分と同じもしくは以下の場合は 「0円」 と計算させるためには
     計算結果の最大値を求めれば良いという事です。
     当然、( コ )には、無料通話分 4行目が指定されます。
     では、( ケ )に指定する通話料金を計算させる計算式ですが、問1でもあった様に、
     (昼間通話時間×昼間通話料金)+(夜間通話時間×夜間通話料金)という式を当てはめます。
     これも、( キ )の解答と同様、通話時間は行を動かしたいが、通話料金は列を動かしたいという理由から
     $B3*料金体系!B$5+$C3*料金体系!B$6 という絶対参照のつけ方になります。

 
解答 ( サ ) 5, D15〜F15
     ( シ ) 1, MIN
     ( ス ) 3, D2〜F2

 
解説 問題に出ている 「PICKUP」 ですが、この関数は残念ながらエクセルでは使用できません。
     この関数の補足説明として、問題の説明に下記の記述があります。
     PICKUP(セル範囲1、式、セル範囲2) : セル範囲1の中で式と等しい値を持つ最初のセルに対応するセル範囲2中のセルの値を求める。
     説明としては、分かりにくいですが、任意のセル範囲1の中にある、任意の数値または文字列を探し、
     任意のセル範囲2の中から、その数値または文字列と同じ列または行にある数値または文字列を求める。ということになります。
     問題は「最適コース名の表示」ですから、セル範囲2は、各コース名が入力してある D2〜F2 となります。
     探し出す対象は、「最適コース」ですから、「一番安いコース」を求めれば良いので、
     各コースの平均通話料金 D15〜F15 の中から最小値を求める式 MIN を入力します。
     この関数に対応するエクセル関数は 「LOOKUP関数」 です。 条件の指定方法は、LOOKUP(検索値,検索範囲,表示範囲) となり、
     1番目と2番目の引数の順番が逆になります。
     問1の最後の一文にあった、平均通話料金の最終的な計算方法は、料金表を適用させて計算させているという前置きがあるので、
     松・桜コースと梅コースは同じ計算方法を使用してあることが分かります。
     これで、同じ条件で算出された平均通話料金なので、正しく比較できるということですね。
     


 問3 料金体系と、全通話時間に対する夜間通話時間の割合(夜間割合)の変化によって、月間通話料金がどのようになるかシミュレーションを行った。
     図1は、夜間割合を8割と設定した場合の月間通話料金を示したものである。シミュレーションの結果を正しく記述しているものを、
     下の解答群のうちから二つ選べ。ただし、解答の順序は問わない。  ( セ ) ・ ( ソ )

              図1  料金グラフ                                     表1(再)  ワークシート 料金体系
 


  ( セ )、( ソ )の解答群

0, 夜間割合を8割から5割にすると、桜コースの方が松コースより料金が安い範囲は、広くなる。

1, 夜間割合を8割から5割にすると、桜コースの方が梅コースより料金が安い範囲は、狭くなる。

2, 夜間割合が8割より大きいと、桜コースの方が梅コースより料金が安い範囲は、図1より狭くなる。

3, 夜間割合や月間通話時間にかかわらず、梅コースが松コースより料金が安い。

4, 梅コースの昼間通話料金が 20円/分の場合、夜間割合が5割として梅コースのグラフを描いても、図1の梅コースのグラフより上になることはない。

5, 夜間だけしか使わないとすると、月間通話時間にかかわらず梅コースの料金が一番安い。


問3 解答と解説
 

 
解答 ( セ ) ・ ( ソ ) 順不同
     2, 夜間割合が8割より大きいと、桜コースの方が梅コースより料金が安い範囲は、図1より狭くなる。
     4, 梅コースの昼間通話料金が 20円/分の場合、夜間割合が5割として梅コースのグラフを描いても、図1の梅コースのグラフより上になることはない。

 
解説 解答群の 0 について
     ここで注意するのは、比較する対象が「松コース」と「桜コース」だという事です。
     この2つのコースは、昼間通話料金と夜間通話料金は同じなので、夜間割合がどんなに変わろうと通話料金は同じです。
     つまり、夜間割合が変化しても、桜コースの方が松コースより料金が安い範囲は変わらないという事で、正しくありません。

     解答群の 1 について
     この内容は、コースが夜間割合に影響されない「桜コース」と昼間と夜間では料金が異なる「梅コース」の比較です。
     桜コースは夜間割合に影響されないので、グラフに変化は起こりませんが、梅コースはどうでしょうか?
     梅コースは夜間通話料金が昼間通話料金よりも安く設定されていますから、通話料金だけを考えると、夜間割合が減ると通話料金が
     高くなります。桜コースが梅コースより高くなるポイントは、図1のグラフからもわかる様に、100分ですね。
     では、この 100分の通話時間の夜間割合が5割になった場合、梅コースの通話料金はどうなるかを考えます。
     50分×40円+50分×10円=2500円 これに基本料金2000円を加えて、総額 4500円となります。
     同じ 100分を桜コースで計算すると、 100分×35円-1000円=2500円 これに基本料金を加えて、総額 3500円となります。
     桜コースが梅コースより高くなっていた 100分の場合でも、桜コースの方が安くなったのですから、
     料金が安い範囲は広くなったという事で、正しくありません。

     解答群の 2 について
     これも、桜コースと梅コースの比較ですが、今度は夜間割合が多くなった場合です。
     解答群の 1 と同じ様に式に当てはめてみます。100分の夜間割合を9割に仮定します。
     梅コース 10分×40円+90分×10円=1300円 これに基本料金2000円を加えて、総額 3300円
     桜コース 100分×35円-1000円=2500円 これに基本料金を加えて、総額 3500円
     今度は梅コースの方が安くなったので、桜コースの方が料金が安い範囲は狭くなるという事で、正しい文章です。

     解答群の 3 について
     今度は、松コースと梅コースの比較です。
     基本料金は高いが、無料通話分の多い松コースと、基本料金は安いが、無料通話分が無く、夜間料金が安い梅コース。
     松コースの基本料金 5000円から無料通話分の 3000円をひくと、梅コースの基本料金 2000円と等しくなります。
     松コースの通話料金が 3000円を超えた時点から、松コースと梅コースは通話時間と夜間割合で差がついてきます。
     松コースの通話料金が 20円ですから、3000円÷20円=150分となり、実際の通話時間から150分を引いて 20円をかけた金額と基本料金を足した金額が
     通話料金総額になります。
     梅コースは、無料通話がありませんから、この 150分がすべて昼間料金だった場合、
      150分×40円=6000円に基本料金2000円を加えて総額 8000円になります。
     こうなると、梅コースは松コースよりはるかに高い料金になるという事で、正しくありません。

     解答群の 4 について
     梅コースの通話料金は、昼間と夜間では異なります。高く設定してある昼間通話料金が安くなるのですから、単純に考えて総額も安くなります。
     ここでは、夜間割合を8割から5割に減らして、料金を 40円から 20円に下げた場合との比較ですが、無料通話分がないコースなので、
     通話時間が 0分の場合は考えなくても良い事になります。
     例えば、計算しやすい時間数 10分と、グラフ上の最高の時間数 200分の場合の2通りを比べてみると、
     10分の場合 2分×40円+8分×10円=160円 と 5分×20円+5分×10円=150円
     200分の場合 40分×40円+160分×10円=3200円 と 100分×20円+100分×10円=3000円 となります。
     でも、短いテスト時間内に、こんな計算をしているヒマはありません。
     無料通話の設定が無い、同じコース内での比較なので、簡単に「分単価」を比較する方法が有効です。
     通話料金が 10分の場合のそれぞれの「分単価」を計算します。
     昼間が2割で 40円なので、40円×2割=8円 夜間が8割で 10円なので、10円×8割で8円 両方の合計が 16円となります。
     昼間と夜間がそれぞれ5割で、20円と10円の設定ですから、20円×5割+10円×5割で、15円です。
     数学的に書き換えると y=ax+b の比例グラフです。 通話料金=分単価×通話時間+基本料金です。
     この2つのコースの違いは、「a」 の分単価だけなので、「a」 の値が大きい方がグラフの線は上に来ます。
     この関係は、通話時間が何分であっても同じですから、グラフにすると後者の方が必ず下にくる事となり、正しい文章です。

     解答群の 5 について
     この内容は、各コースの料金を1種類に揃えて比較する問題です。
     通話料金が安い方が総額が安く思えますが、通話料金が無料通話分を超えない限り、通話料金の総額は基本料金の安いコースが一番安くなります。
     この場合、松コースは通話料金が 0円の時、基本料金の 5000円、桜コースは基本料金の 1000円、
     梅コースは基本料金の 2000円が通話料金となります。
     桜コースの通話料が無料通話分 1000円を超えるまでは、桜コースが一番安いという事になり、正しくありません。
     

 ◇◇あとがき◇◇
   いかがでしたか?難しかったですか?
   問1と問2は、関数の問題ですが、無料メルマガ 「エクセル関数のプロ技」 を購読されている方なら、すぐに解答出来たのではないでしょうか?
   絶対参照のつけ方がポイントとなっていますが、メルマガで解説した通り、絶対参照の意味を良く理解することで、
   計算式を作る作業時間が大きく軽減されます。「とりあえず付けておく」なんて事にすると、後で痛い目にあいます。
   問3は、表を作る(システムを作る)時の考え方についての問題です。
   関数の知識や表計算ソフトの裏技などよりも、表を作る時に考えるポイントについての能力を試す問題ですね。
   使う人の立場に立って表(システム)を作る事が、一番大切な事だと思いますが、この考え方は間違っていますか?
   初級システムアドミニストレーターの午後問題も、こんな感じで出題されます。
   出題される関数の種類は少ないのですが、実用的なシステムを作るためにはどんな使い方をするのが効果的なのかが問題になります。
   そうです。エクセルの関数は、沢山の情報を処理する手段のひとつです。
   「情報」は、数字や計算結果だけではなく、それらを取り巻く条件や環境も「情報」なのです。
   「情報処理」は、だた単に数字を計算させ結果を求めるだけではなく、条件や環境を良く理解して計算の過程に取り込む技術の事なのです。
   関数についての「知識」を溜め込むか、関数の利用方法の「技術」を身につけて実践するか、さて、あなたはどちらを選びますか?
   「技術」を身につけて実践する事を選んだ方 「エクセル関数のプロ技」 HTMLプレミアム版 をぜひお読みください。
   (注意) 関数の種類を (使うかどうかは別として) 沢山覚えて、「関数辞書」になりたい方にはむきません。