roy > naoya > 実用情報 > (9)表計算ソフト[5] 絶対参照と論理関数[2]

(9) 06/15の授業内容:表計算ソフト[5] 絶対参照と論理関数[2]

[1]本日の内容

前回は絶対参照と論理関数のifを使用した。これらはいずれも使用頻度が高いわりに、慣れるまでは難しい機能である。前回の授業で概ね理解できたとは思うが、今回引き続きこれらに取り組むことで曖昧さを無くし、自由に使いこなせるようにしていこう。今回は、練習用ファイルを使った作業を中心とし、時間が残ればアンケートデータの分析を進める。

[2]絶対参照

式を複写した際に参照するセルを変化させない方法が絶対参照であった。列番号や行番号に$をつけることで、セルを固定することが出来たが、$の付け方は3種類あった。

手前に$をつけることで、つけた部分を固定することができる。

なお、式は複写して使うことが多い。複写した場合に常に参照セルを固定する場合もあるが、列のみ固定する場合や行のみ固定する場合もある。それぞれ使いこなせるようにしておこう。

  • $C1:列(C)のみ固定する。式を横に複写する場合に有効。
  • C$1:行(1)のみ固定する。式を縦に複写する場合に有効。
  • $C$1:行列いずれも固定する。式を全く別の場所に複写する場合に有効。

[3]論理関数if

論理関数ifは条件式を満たす場(真)合と満たさない場合(偽)で異なる処理をさせる場合に用いる関数である。2つの条件で2つに分けるだけであればそれほど難しくはないが、2つの条件で3つに分ける、3つの条件で4つに分けるといた場合には入れ子構造が必須になる。

A B
1 70
2 85
3 45
4 65
5 90

上記のデータにおいて以下のように分類することを考えてみよう。

  • 80点以上:A
  • 70点以上:B
  • 70点未満:C

この場合は、条件1(80点以上である)を満たせば「A」、満たさない場合は条件2(70点以上である)を満たせば「B」、満たさなければ「C」になる。2回の条件判断が必要になるので、次のような入れ子構造になる。

=if(A1>=80,"A",if(A1>=70,"B","C"))

今度は成績評価の基準を変えてみよう。

  • 80点以上:A
  • 70点以上:B
  • 60点未満:C
  • 60点未満:D

この場合は、条件1(80点以上である)を満たせば「A」、満たさない場合は条件2(70点以上である)を満たせば「B」、満たさない場合は条件3(60点以上である)を満たせば「C」、満たさなければ「D」になる。3回の条件判断が必要になるので、次のような入れ子構造になる。

=if(A1>=80,"A",if(A1>=70,"B",if(A1>=60, "C", "D")))

いずれの場合も「(」に対する「)」の数を間違えないように注意しよう。

[4]前回の作業の続き

ここからはアンケートデータに戻ろう。前回使用していたファイルを使用し、以下の項目のうち未実施のものを完成させる。

  1. 4番の(2)の後ろに30列挿入する。その上で見出しに「4-2-1」から「4-2-30」まで連番を振る。
  2. 下の表を参考に、300行目あたりの邪魔にならない箇所に解答を入力する。
  3. 各自の入力データと解答を比較し、一致する場合は「1」、一致しない場合は「0」に変換する
  4. さらに10列追加し、見出しに「ウィルス」「セキュリティホール」「スパム」「フィッシング」「スパイウェア」「ボット」「ファーミング」「ワンクリック」「DoS」「ソーシャル」と入力する。
  5. 各項目について3問の合計得点を求める。
問1問2問3問4問5問6問7問8問9問10
2112111211
問11問12問13問14問15問16問17問18問19問20
2211212111
問21問22問23問24問25問26問27問28問29問30
2121212121

[5]学年別の集計

これで、分析前のデータの整理が完成したので、ここからは実際にデータ処理を行い、各学年の特徴を調べる作業に移っていこう。ここからは、これまでに学んだ知識を応用すれば出来る作業が比較的多くなるため、逐一説明せず、やり方を各自で考えながら取り組んで欲しい。

実施することはいろいろあるが、比較的簡単なところからはじめることにしよう。本日、最低限以下の2項目については実施してみよう。

  • 3の各因子の学年別平均得点
  • 2の「基礎知識」〜「表計算」の6項目の学年別平均習熟得点と平均習熟率

3の各因子の学年別平均得点

3については、因子1、因子2、因子3それぞれについて、「1年生」「2年生」「3年生」「4年生」「実用情報履修者」「全体」の平均点を算出する。average関数を使えばよい。学年別に並び替えてしまうと実用情報履修者のデータが連続しないので、その点をどうするかが課題になる。また、結果はワークシートの下の方に表示させればよいが、事後にこのデータを使ってグラフを作成するので、グラフが作成しやすいように並べておくと良い。

以下は良い例である。

属性因子1因子2因子3
1年生○○○○○○
2年生○○○○○○
3年生○○○○○○
4年生○○○○○○
実用情報○○○○○○
全体○○○○○○

反対に、以下は悪い例である。

因子1因子2因子3
1年生1年生1年生
○○○○○○
2年生2年生2年生
○○○○○○

なお、実用情報履修者の取扱いであるが、例えば次のような方法が考えられる。因子1と因子2の間に1列挿入する。そして、if関数を用いて、「実用情報」に1と入力されている場合には、因子1の得点を表示させ、1と入力されていない場合は何も表示しない(""を指定する)。すると、実用情報履修者のみの得点が取り出されるので、あとはaverage関数を適用すればよい。

2の「基礎知識」〜「表計算」の6項目の学年別平均習熟得点と平均習熟率

学年別の平均得点は、単にaverage関数を使って学年ごとに平均を算出すればよい。これで、学年ごとの習熟状況については比較をすることが出来るようになる。ただし、「ワープロ」と「表計算」の習熟状況は比較することはできない。何故なら、項目数が異なるからである。これらの比較を行うためには単なる平均値の比較ではなく、項目数で割る必要がある。これが平均習熟率となる。

3の各因子の学年別平均得点と同じように、平均習熟得点、平均習熟率それぞれについてデータを表形式でまとめておくこと。

本日の作業3

以下について、結果を表形式でまとめる。

  • 3の各因子の学年別平均得点
  • 2の「基礎知識」〜「表計算」の6項目の学年別平均習熟得点と平均習熟率

[6]出席課題

9a.xlsを添付ファイルで提出する。

提出要領

  • To:課題提出用メールアドレス
  • Subject:実用情報(9)