表計算(Numbersによるデータ集計)

表計算ソフトウェア(あるいはスプレッドシ-トspread sheet)とは、帳票形式で数値や数式を配置することにより各種のデータ処理や集計作業を行うソフトウェアである。

Numbersの起動と終了

Numbersを起動するにはアイコンを選択する。「新規書類」を選択すると、次のようなテンプレート選択ダイアログが表示される。

通常は「空白」を選択すれば良い。すると、次のような新しい表(ワークシート、あるいは単にシートと呼ぶ)が開かれる。

終了するには必要に応じてファイルを保存した後、メニューの「Numbers/Numbersを終了」を選択する。

ワークシートの作成

セル

ワークシートのマス目をセル(cell、細胞の意味)と呼ぶ。基本的にはそれぞれのセルに値を記入していき、合計や平均を計算するようにして使う。

各セルは列と行で座標が一意に決まる。列の座標値はアルファベット(A〜Z、Zの次はAA、AB、AC……)、行の座標値は数字で表される。

練習:次の表を作成せよ。(少々は値が異なっていても問題無い)

各セルに文字を入力するには、入力したいセルを選択して文字をタイプする。Numbersではいわゆる全角数字であっても数値と認識される値の場合は自動的にいわゆる半角に変換してくれる。

セルに値を入力した後、Tabキーをタイプするとカーソルは右隣のセルへ移動する。Enterキ-をタイプすると通常は直下のセルへカ-ソル位置が移動するが、Tabキーで連続して横方向に入力した後では先頭のセルの直下に移動する。これらのキーを駆使すると効率的に値の入力作業ができる。

一旦入力したデ-タを修正するには、修正したいセルをダブルクリックする。また、セルを選択しておいてから「編集/削除」を選ぶ(又はDeleteキーを押す)とセルの内容が削除される。

行・列単位の編集

練習:各科目の並びを「国語、英語、数学」の順番に変更してみよう。

列の上にあるアルファベットの欄をクリックすると1列が選択できる(選択している列の欄は青くなる)。ある列を選択している状態でマウスでドラッグすると列全体を別の位置に移動させることができる(Macならではの操作)。

なお、選択していない列をドラッグすると複数列の選択操作になる。

新たな列を間に挿入するためには、まず列上部のアルファベットの欄にマウスカーソルを重ねると小さな下向きの▼印が表示される。この▼をクリックするとメニューが表示される。この中の「列を前に追加」「列を後ろに追加」を使うと、▼を選んだ列の前あるいは後ろに空白の列を追加できる。

他、列全体を削除する、コピー&ペーストするなどの操作も可能である。行に関しても同様である。

セルの計算

練習:個人合計と個人平均を計算させてみよう。

計算式の入力

セルの値を計算で求めさせるには、まずセルに=を入力する。すると、自動的に数式モードになり次の図のように表示される。

=に続けて、計算式を書くとその計算結果がセルの値となる。例えば=78+83+53と入力しenterキーを押して(あるいは緑の✓をクリックして)計算式を確定させると結果の214がセルに表示される。計算式を入力したセルをダブルクリックして編集モードにすると、元の計算式が表示される。

しかし、計算式に直接値を入力するのではそれぞれの科目の得点を入力した意味が無い。そこで、他のセルの値を参照する方法を使う。=を入力して数式モードになった後に、参照したい他のセルをクリックすると、そのセルの座標が自動的に記入される。

次に隣のセルD2をクリックし、さらに隣のセルE2をクリックする。他のセルをクリックすると自動的に+が入力される(キーボードで+を入力してもよい)。

この状態でenterキーを押して計算式を確定させると、C2+D2+E2の合計である214がセルF2の値となる。試しにC2、D2、E2の値を修正すると合計が変更されることが確認できる。

参照したいセルをクリックして計算式に入力する方法以外にも、直接キーボードでC2やD2などを記入しても良い。

計算式には通常の四則演算(足し算+、引き算-、かけ算×、割り算÷)、括弧()などが使える。かけ算を指定するには*(アスタリスク)、割り算を指定するには/(スラッシュ)を代用するが、Numbersでは自動的に×や÷として表示するので注意。

練習:ドラえもんの個人平均を計算させてみよう

平均を計算させると71.333333...と割り切れないので、表示が見にくくなる。例えば小数点以下1桁までの表示にしたければ、右側のフォーマットメニューの「セル」を選択し、「小数点以下の桁数」に値を指定すればよい。

計算式のコピー&ペースト

あるセルを選択して「編集/コピー」(あるいは⌘C)でコピーし、別のセルを選択して「編集/ペースト」(あるいは⌘V)でペーストすると、セルの値を別のセルに写すことができる。

セルに計算式が入力されている場合も同様にコピー&ペーストすることができるが、その場合参照先が自動的に変更されることに注意。例えば先ほど入力したドラえもんの個人合計(セルF2)をコピーして、のび太の個人合計(セルF3)にペーストしてみよう。すると、合計値はちゃんとのび太の値になることが分かる。またセルF3が参照しているセルが色つきで表示される。

これは、計算式が別のセルを参照している場合、その計算式からの相対的なセルの位置(相対セル番地と呼ぶ)で表されているからである。先ほどの計算式のC2やD2などの表現は相対セル番地である。

参照元の番地に関係無く特定の番地のセルを参照したい場合は絶対セル番地を使う。絶対セル番地は$C$2のように、$記号を付けて表現する。

ペースト先を複数選択して貼り付けることもできる。例えばF4からF12までをドラッグしてペーストするとそれぞれの受験者の個人合計が計算できる。

練習:同様にして全員分の個人平均も計算させよう

関数による計算

3科目の合計くらいなら上記のような手入力でも大した手間ではないが、クラス合計ともなると面倒であるし間違いも起こりやすい。そこで、合計を計算する関数SUMを使う。

英語のクラス合計のセル(C14)を選択し、=を入力して計算式入力モードにした状態で、合計したい範囲C2〜C12をドラッグして選択すると、Numbersは自動的に合計を計算するものと判断して=SUM(C2:C13)と入力してくれる。

他に何か入力した状態ではSUMは自動的に入力されないので、そのような場合は手でSUM(と入力し、範囲を選択した後に)で閉じる。

C2:C13という表示が見えるが、これはC2からC13の範囲を表している。1列や1行だけでなく、矩形(四角形)の範囲を「左上:右下」の形式で指定できる。マウスで選択する代わりに、この書式でキーボードから入力して指定することもできる。

練習:国語と数学の合計も計算させてみよう

平均を計算させるには合計点を人数で割ってもよいが、平均を計算する関数AVERAGEを使うと簡単である。セルC15を選択し=を入力して計算式モードになった状態では、ウィンドウ右側に関数一覧が表示されている。この中からAVERAGEを探して選択して「関数を挿入」ボタンをクリックすると計算式に入力され、計算対象となる値の入力待ち状態となる。

この状態で平均を計算したい範囲をマウスドラッグで選択し、計算式を確定させると平均値が計算される。

関数は沢山用意されているがすべてを覚える必要は無い。日常的に使うものはほんの数種類程度である。必要になったときに調べてみて覚えていけばよい。また、Numbersでは計算式をキーボードであまり入力しなくても済むようになっているが、古い表計算ソフトでは手入力する必要があったりするし、複雑な計算式では手入力した方が早い場合もある。計算式表現も覚えていった方がよいだろう。

とは言え、Numbersは生の計算式で表示してくれないのだが……

練習:国語と数学のクラス平均も計算させよう

データの並べ替え

練習:各受験生を平均点の高い順に並べ替えてみよう

データを並べ替えるには、ウィンドウ右上の「並べ替え/フィルタ」ボタンをクリックすると、ウィンドウ右側のメニューが並べ替え/フィルタの内容に切り替わる。

今回はシート全体ではなく、2行目〜13行目を並べ替えの対象とするので、「表全体を並べ替える」となっているメニューをクリックして「選択した行を並べ替える」に変更し、2行目〜13行目を選択しておく。次に、「並べ替えの基準にする列」の「列を追加…」ボタンをクリックし「個人平均」を選択すると平均点の低い順に並び変わる。これだと高い順ではないので、表示順序の「昇順」となっているメニューを「降順」に切り替えればよい。

グラフの作成

練習:各受験生の成績を縦棒積算グラフで表示してみよう

グラフ表示の準備として、名前の欄も見出しに設定しておく。ウィンドウ右側のフォーマットメニューの「表」の中の「ヘッダとフッタ」の左端のメニューで、左から2行分が見出しになるように変更する。見出しに設定されている行や列は濃い灰色で表示される。

見出しに設定しておくとグラフを作成したときに自動的にラベル化してくれる。手作業でも設定可能であるが、見出しになると分かっている行や列は最初から設定しておく方がよいだろう。

次に、グラフ化したい範囲を選択する。今回はC2〜E13の範囲を選択する。選択するには、ドラッグでもよいし、左上のセルを選択した後にShiftキーを押しながら右下のセルを選択してもよい。

そして、ウィンドウ上部のグラフアイコンをクリックし、表示されるメニューの中の右側の一番上のグラフ(緑と靑の2色の棒グラフ)を選択する。すると選択した範囲のグラフが作成される。

なお、横軸の名前が全部表示されず、1つおきでしか表示されないかもしれない。これは、図が小さいため、名前を全部表示できないので間引いて表示するためである。図の枠の小さな四角(ハンドルと呼ぶ)をドラッグして図を横方向に伸ばしてやれば名前が表示される。

グラフの形式は何種類か用意されているが、どれでもよいということではない。データの意味や表現・分析したい内容に応じて適切なグラフ形式が存在する。例えばこの例のグラフは積み上げ棒グラフと呼ばれるが、合計点を受験者間で比較しつつ、ある受験者の得点の比率が分かるような表現となっている。グラフの形式の特徴については「グラフ 種類」などで検索して調べてみよう。

3Dグラフなる、グラフを立体的に描く形式も用意されているが、原則として使ってはならない。グラフは値の比率や分布などを視覚的に表現するものであるが、立体的に表現すると見た目の比率や分布が実際と異なってしまうことが多い。3Dグラフは見た目がカッコイイし、時には意図的に騙す目的で使われることもあるが、科学者・技術者を目指す理工系の学生としては3Dグラフを使うのは無知であり恥と心得よ。

表計算ソフトのグラフ機能は簡単にそれなりのグラフができてしまうので頼りがちであるが、両軸の目盛りやラベルをちゃんと設定してやらないとグラフとしては出来の悪いものになってしまう。例えば上のグラフの例でも、縦軸の数値が何か書かれていない。実験レポートなどでデータを集計してグラフ化することもあるだろうが、グラフは表計算ソフトに頼らず自分で描く習慣を身につける方がよいだろう(あるいは、完全に出来のよいグラフになるよう表計算ソフトで頑張って設定する)。

シートの保存、印刷、Numbersの終了

基本的な操作はPages(や他の標準的なアプリケーションの操作)と同様である。

表計算の応用

表計算は単に合計や平均を計算するだけでなく、実験データの統計処理を行ったり、プログラムのように自動的に計算させるようなこともできる。いくつか簡単な応用例をやってみよう。

条件判定

IF関数を使うと、与えられた条件が成立する場合と成立しない場合とで値を切り替えることができる。IF関数は次のような書式になっている。

IF(条件式, 真の場合の値, 偽の場合の値)

条件式には、真か偽となるものであれば何でも書けるが、通常は2つの値を等号あるいは不等号で比較する式を書く。例えば、「セルF5の値が200以上である」という条件を式で書くと、

F5 >= 200

となる。

値には、数値以外にも文字列や関数などを書くことができる。文字列の場合は例えば"合格"のように、ダブルクォーテーションマークで囲む。次の式は、セルF5が200以上ならば合格、そうでなければ不合格、とするIF関数である。

IF (F5 >= 200, "合格", "不合格")

練習:H行を「合否」とし、合計点が200点以上は「合格」、200点未満は「不合格」と表示されるようにしなさい。

【確認課題】ここまで作成したシートをPDFで出力し、moodleで提出せよ。
提出期限:授業終了時まで

複利計算

一昔前の大手消費者金融(いわゆるサラ金)の標準的年利は29.2%であったが、ヤミ金と呼ばれる悪質業者の場合は年利50から100%(極めて悪質な場合は800から1000%)にも達する場合がある。サラ金の多重債務者の多くに見られる状況として、返済期日になっても返済資金(元金と利息の合計)を工面できないために仕方なく、返済に必要な金額(元金+利息)を他の業者(多くの場合、悪質業者)から全額借金して返済に充てる、いわゆる「自転車操業」という状態がある。この「自転車操業」がいかなる状況を生むのか、その借金総額の変化をシミュレーションせよ。金利計算における約束は以下のとおりとする.

一度借りた借金の返済期日は1ヶ月とする。つまり、1ヶ月後には利息を含めて全額返済しなければならないとする。

利息rは元本(借金額)gに年利nを掛けた金額を日割りしたもの、すなわち1ヶ月分の利息は、g × n ÷ 12 となる。

シミュレーションする期間は12ヶ月とし、シミュレーション条件は以下の通り.

ケース1: 100万円を年利18.0%で借り入れ
ケース2: 300万円を年利18.0%で借り入れ
ケース3: 100万円を年利29.2%で借り入れ
ケース4: 300万円を年利29.2%で借り入れ
ケース5: 100万円を年利100%で借り入れ
ケース6: 300万円を年利100%で借り入れ

シートは次のように作成せよ:
A列は借金をし始めてからの経過月数(最初を含めると計算がしやすいので0から12まで)
B列以降は上記ケース1からその6までの負債金額(借金の総額)
最上行はタイトルとする.例えば「経過月数」,「ケース1」,「ケース2」など.


また、シミュレーションの結果を縦棒グラフで分かりやすく表示せよ。

ヒント1:次の月に返済しなければならない金額は、前の月の返済金額に1ヶ月分の利息を足した金額となる。等比級数でも計算することができる。

ヒント2:ケース1の12ヶ月後の返済額は約1,195,618円(119.5618万円)になる。

本日の提出課題 その2

上記の結果およびグラフをPDFで出力してmoodleで提出せよ。
締切:次回授業開始時まで