roy > naoya > 情報リテラシーII > (11)表計算[3]

(9) 12/11の授業内容:表計算[3]-関数

導入‐足し算を行う幾つかの方法

AB
1100
2200
3300
4

上記のようなケースを想定し、A4にA1からA3の合計を求めてみたいとする。この場合、これまでに学んできた方法は以下の2種類であった。

  • 数値を直接入力:=100+200+300
  • セル参照:=A1+A2+A3

3つの数の足し算を行うのであれば、数値を直接入力しても、セル参照で式を書いてもかまわない。しかし、A1からA1000までの1000個の合計を求めようとする場合、これらいずれの方法でもきわめて手順が多くなり面倒である。

エクセルを初めとする表計算ソフトには関数という機能が用意されており、これを用いることでもっと簡単に計算を行うことができる。

関数(1) sum

AB
1100
2200
3300
4

合計を求める関数はsumである。A4のセルに次のように入力する(入力する代わりにマウスでクリックして選択することもできる)。sumの後ろの(A1:A3)は合計を求める範囲である。ここで、左側のA1が始点、右側のA3が終点をあらわす。以下の式により、A1からA3までの3つのセルの合計を求めよという指示になる。

=sum(A1:A3)

Enterを押すと、計算が行われ結果の600が表示される。

関数(2) average

AB
1100
2200
3300
4

averageは平均値を求める関数である。A4のセルに次のように入力する(入力する代わりにマウスでクリックして選択することもできる)。averageの後ろの(A1:A3)は平均を求める範囲である。ここで、左側のA1が始点、右側のA3が終点をあらわす。以下の式により、A1からA3までの3つのセルの平均を求めよという指示になる。

=average(A1:A3)

Enterを押すと、計算が行われ結果の200が表示される。

関数(3) max、min

AB
1100
2200
3300
4
5

maxは指定した範囲内にある最大値を求める関数、minは指定した範囲にある最小値を求める関数である。A4、A5のセルにそれぞれ次のように入力する(入力する代わりにマウスでクリックして選択することもできる)。max、minの後ろの()が最大値および最小値を求める範囲である。

=max(A1:A3)
=min(A1:A3)

Enterを押すと、計算が行われ、maxの方が300、minの方が100が表示される。

関数(4) if

AB
11
22
33
41
54

上記は4択問題に対する5名の回答であるとする。正解が1の場合、2名が正解で残りの3名は不正解となる。いちいち「正解」「不正解」と入力していくのは大変なので、これも関数を使って何とかしてみよう。例えばB1のセルには次のように書けばよい。

もしもA1が1ならば正解と表示する。そうでない場合は不正解と表示する。

これは「A1は1である」という命題に対する真偽の判断となる。もしも真であるならば「正解」を表示し、偽であるならば「不正解」と表示する。真偽判断に用いる関数がifである。if関数の基本構造は以下の通りとなる。

=if(条件式,真の場合,偽の場合)

()内に記載するのは3つである。それぞれの境界はカンマとなっていることに注意が必要である(Calcの場合はカンマではなくセミコロンとなる)。今回のケースでは以下のように書く。真の場合、偽の場合に表示するのは数字ではなく文字であるため""をつけている。

=if(A1=1,"正解","不正解")

Enterを押すと、真偽の判断が行われB1には正解と表示される。

なお、真の場合、偽の場合に表示する値が数字の場合には""は不要である。

=if(A1=1,1,0)

if文の条件式の書き方

  • A1が2である:A1=2
  • A1とA2が等しい:A1=A2
  • A2がB3以上:A2>=B3
  • A2が10を超える:A2>10
  • A3が20以下:A3<=20
  • A3がA5未満:A3<A5
  • A4が100:A4=100(数字なので""不要)
  • A4がりんご:A4="りんご"(文字なので""必要)

if関数を用いた複雑なデータ処理

AB
170
285
345
465
590

先ほどの例では「正解」「不正解」の2通りしか条件がない。しかし、現実的にはさらに複雑な場面もある。例えば次のようなケースを考えてみよう。

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

if関数はある条件式を記述し、それを満たす場合と満たさない場合という2つの選択肢しか記述することができない。このため単純にifを使うだけでは上記の問題を解決できない。このような場合はif関数を入れ子にする。具体的には以下のように書く。

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

A1が80以上という条件式を満たす場合、Aが表示される。満たさない場合は2つ目のif関数が適用され、2つ目の条件式のA1が70以上であるという条件式を満たすかどうか判定が行われる。満たす場合はBが表示され、満たさない場合はCが表示される。このようにif関数を2つ入れ子にすることで3つの条件に対応することができる。条件が4つある場合はif関数を3つ入れ子にすればよい。

今日のファイル

本日もエクセルファイルをダウンロードして作業を行ってみる。本日のテーマは上記で説明した関数についてである。 以下のハイパーリンクをクリックするとファイルを「開く」か「保存」するかたずねられる。「保存」を選びzドライブに保存しよう。ファイル名は特に変更しなくて良い。

今日のファイル

  1. Excelで作業をする場合:zドライブを開き、保存したファイルをダブルクリック。
  2. Calcで作業をする場合:StarSuite Calcを起動し、「ファイル」の「開く」からzドライブ内のexcel1211.xlsを開く。

ファイルを開くと、4枚のシートがある。最初の3枚が学習用シートで、最後の1枚が復習問題のシートである。順番に作業を進め、最後に復習問題に挑戦しよう。

出席課題

以下の項目についてメール本文に記載し、今日のファイルを添付して送る。

  • 理解できたかどうか(難しかったものがあれば、どれが難しかったか)
  • その他感想
  1. 提出先:naoya@e.koeki-u.ac.jp
  2. メールの件名(Subject):literacy(11)
  3. 提出期限:授業終了時
  4. 電子メールの使い方に自信がない場合:Mewの主要コマンドについてを確認しよう