平成26年春期試験午後問題 問13

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】

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

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

〔表計算の説明〕
 F社では,所有する顧客情報のデータを分析して営業活動に役立てている。このたび,情報漏えいなどの事故に備えるために,必要に応じて匿名性の高いデータに変換してから,分析を担当する部署に渡すことになった。そこで,顧客データに対して匿名化処理を行うプログラムを表計算ソフトで作成した。

〔ワークシート:顧客リスト〕
 分析対象の顧客は5,000人である。各顧客に対して固有のID,氏名,郵便番号,住所,電話番号,年齢,職業コードの情報を所有している。顧客情報を格納したワークシート"顧客リスト"の例を図1に示す。ここで,郵便番号は7桁の数値として取り扱う。
pm13_1.png
〔ワークシート:匿名化顧客リスト〕
 ワークシート"顧客リスト"を基に,匿名化処理を施したワークシート"匿名化顧客リスト"を作成した。ワークシート"匿名化顧客リスト"の例を図2に示す。
 なお,列H,列Iは,後述のマクロ GenerateList で使用する。
pm13_2.png

設問1

ワークシート"匿名化顧客リスト"に関する次の記述の に入れる正しい答えを,解答群の中から選べ。ここで,c1 と c2 に入れる答えは,cに関する解答群の中から組合せとして正しいものを選ぶものとする。
  • 氏名,住所,電話番号の情報は完全に秘匿するために,"*"にする。そこでセル B2,D2,E2 に"*"を入力し,それぞれセル B3~B5001,D3~D5001,E3~E5001 に複写する。
  • 郵便番号は,7桁の郵便番号のうち上位2桁だけの値に置き換えることで匿名化する。そこで,次の式をセル C2 に入力し,セル C3~C5001 に複写する。
      a
  • セル F2~F5001 には,図3に示す各年齢区分の最小値である表示年齢を表示することで匿名化する。各年齢区分の最小値である表示年齢を,セル K2~K9 に昇順に入力する。また,セル K10 には,終端を示す 1000 を入力する。
    pm13_3.png
     例えば,顧客の年齢が23歳の場合,"20"と表示する。そこで,次の式をセル F2 に入力し,セル F3~F5001 に複写する。
      b
  • 職業コードは図4に示す項目から成る3桁の数値である。各桁は,1~9 の整数値である。
    pm13_4.png
     セル G2~G5001 には,必要に応じて大分類化するか中分類化することで匿名化した職業コードを表示する。大分類化とは,中分類,小分類の値をいずれも 0 に置き換えた数値に変換することであり,中分類化とは,小分類の値を0に置き換えた数値に変換することである。大分類化,中分類化された3桁の数値をそれぞれ大分類コード,中分類コードと呼ぶ。
     セル L2~M41 には,職業コードの大分類化,中分類化に関する情報が入力されている。存在し得る大分類コード,中分類コードは合わせて40種類であり,セル L2~L41 に昇順で格納されている。次の規則によって,職業コードを変換する。
    1. 大分類コードが格納されているセルの右側の対応するセルに"*"が格納されている場合,その大分類に属する職業コードは全て大分類コードに変換する。例えば,セル L2 には大分類コード 100 が格納されていて,その右隣のセル M2 は"*"なので,100番台の全ての職業コードは 100 に変換する。
    2. ①に該当しない場合であって,中分類コードが格納されているセルの右側の対応するセルに"*"が格納されている場合,その中分類に属する職業コードは全て中分類コードに変換する。例えば,セル L6 には中分類コード 210 が格納されていて,右隣のセル M6 は"*"なので,210番台の全ての職業コードは 210 に変換する。
    3. ①,②のいずれも該当しない場合,職業コードは変換しない。
       そこで,次の式をセル G2 に入力し,セル G3~G5001 に複写する。
        IF(垂直照合(c1,L$2:M$41,2,0)='*',c1,
        IF(垂直照合(c2,L$2:M$41,2,0)='*',c2,
        顧客リスト!G2))
a に関する解答群
  • 剰余(10^5,顧客リスト!C2)
  • 剰余(顧客リスト!C2,10^5)
  • 整数部((顧客リスト!C2/10)^5)
  • 整数部(顧客リスト!C2/10^5)
  • 整数部(顧客リスト!C2/10)^5
b に関する解答群
  • 垂直照合(顧客リスト!F2,K$2:K$10,1,0)
  • 垂直照合(顧客リスト!F2,K$2:K$10,1,1)
  • 垂直照合(顧客リスト!F2+1,K$2:K$10,1,0)
  • 垂直照合(顧客リスト!F2+1,K$2:K$10,1,1)
  • 表引き(K$2:K$10,照合一致(顧客リスト!F2,K$2:K$10,-1),1)
  • 表引き(K$2:K$10,照合一致(顧客リスト!F2+1,K$2:K$10,1),1)
c に関する解答群
pm13_5.png
解答選択欄
  • a:
  • b:
  • c:
  • a=
  • b=
  • c=

解説

この設問の解説はまだありません。
〔ワークシート:提供リスト〕
 匿名化された後の郵便番号,年齢,職業コードが全て同一となる顧客の数(多重度と呼ぶ)のリストをデータ分析の担当部署に渡すために,図5に示すワークシート"提供リスト"を作成する。
pm13_6.png
  • ワークシート"匿名化顧客リスト"にマクロ GenerateList を実装する。
  • マクロ GenerateList は,ワークシート"提供リスト"の列A~Dに,ワークシート"匿名化顧客リスト"を郵便番号,年齢,職業コードの優先順で昇順に整列し,多重度とともに表示する。
  • ワークシート"匿名化顧客リスト"のセル H2~H5001 は,マクロ GenerateList の実行中に,どの顧客の情報が処理済みであるかを示すのに用いる。処理済みの顧客の場合は 1 を,そうでない場合は 0 を表示する。
  • (2)の処理を行う際,次に処理する顧客を決定するために,ワークシート"匿名化顧客リスト"中の郵便番号,年齢,職業コードから成る次のような8桁の数値(以下,評価値という)を定義する。
    pm13_7.png
     この評価値が最小の顧客を処理対象とし,多重度を順次求めていく。
     そこで,次の式をワークシート"匿名化顧客リスト"のセル I2 に入力し,セル I3~I5001 に複写する。

       H2*10000000+C2*100000+F2*1000+G2

  • ワークシート"匿名化顧客リスト"のセル N2 には,表示する多重度の下限値が入力されている。ここで,表示する多重度の下限値は2以上の整数とする。多重度がこの値以上の郵便番号,年齢,職業コードの組を,多重度とともにワークシート"提供リスト"に表示する。

設問2

マクロ GenerateList をワークシート"匿名化顧客リスト"に格納した。マクロ GenerateList 中の に入れる正しい答えを,解答群の中から選べ。
pm13_8.png
d に関する解答群
  • 条件付個数(I2~I5001,> 相対(I1,I,0))
  • 条件付個数(I2~I5001,< 相対(I1,I,0))
  • 照合一致(最小(I2~I5001),I2~I5001,0)
  • 照合一致(最小(I2~I5001),I2~I5001,1)
  • 照合一致(最大(I2~I5001),I2~I5001,0)
  • 照合―致(最大(I2~I5001),I2~I5001,1)
  • 相対(I1,I,0)
  • 相対(I1,J,0)
e,f に関する解答群
  • I ← I+1
  • I ← I+J
  • I ← I+K
  • J ← I
  • J ← J+1
  • J ← J+K
  • J ← K+1
  • K ← J
  • K ← K+J
解答選択欄
  • d:
  • e:
  • f:
  • d=
  • e=
  • f=

解説

この設問の解説はまだありません。

Pagetop