roy > naoya > 情報リテラシーII > (5)表計算[5]-論理関数と絶対参照

(5) 10/25の授業内容:表計算[5]-論理関数と絶対参照

[1]関数(6) if

A B
1 1
2 2
3 3
4 1
5 4

上記は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="りんご"(文字なので""必要)

[2]ifの入れ子

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

先ほどの例では「正解」「不正解」の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つ入れ子にすればよい。

[3]関数(7) vlookup、hlookup

A B C D E
1 被験者性別対応表
2 S121男性
3 S212女性
4 S32

vlookup、hlookup関数はいずれも一覧表から検索を行い、対応する値を取得する関数である。例えば、上の表では各被験者の性別がB列に1や2と入力されている。右の対応表では1は男性、2は女性とある。右の対応表を参照し、番号に対応する値を取得するのがこれらの関数になる。

右側の表が検索対象となる表になるが、この表のようにデータが縦に並べられている場合は、縦方向に検索をするためvlookup(vertical lookup)関数を用いる。

C2のセルに、以下のように入力する。ここで、

  • B2:検索値。この値を次の範囲から検索する
  • D2:E3:検索値を検索する範囲。この範囲のうち検索対象となるのは左端の列
  • 2:検索の結果、合致する値があった場合に、何列目のデータを返すか。

=vlookup(B2,D2:E3,2)

B2には2が入力されているので、検索範囲であるD2:E3の左端の列のD列から2を探す。2があった場合、2に対応する2列目の値である女性を返す。 結果的に、Enterを押すと、検索が行われ結果の女性が表示される。

データが横方向に並べられている場合は、1行目が検索対象になり、合致する値があった場合に対応する2行目や3行目の値を返すことになる。この場合は横方向に検索をするためhlookup(horizontal lookup)関数を用いる。

[4]ユーザー定義関数

表計算ソフトではsumやaverageなどの関数があらかじめ登録されているが、自分で新たに関数を作成することも出来る。これをユーザー定義関数という。

詳細は、ダウンロードしたファイルを確認のこと。

[5]今日のファイル

本日もエクセルファイルをダウンロードして作業を行ってみる。本日のテーマはユーザー定義関数とデータの並び替え、表の作成、見栄えの調整、有効数字、印刷である。

以下のハイパーリンクをクリックするとファイルを「開く」か「保存」するかたずねられる。「保存」を選びzドライブに保存しよう。ファイル名は特に変更しなくて良い。

今日のファイル

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

ファイルを開くと、6枚のシートがある。最初の4枚が学習用シートで、5枚目が復習問題のシートである。順番に作業を進め、最後に復習問題に挑戦しよう。時間がある人は6枚目の発展問題にも挑戦してみよう。

[6]出席課題

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

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