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

(9) 表計算[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]今日のファイル

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

今日のファイル

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

[5]出席課題

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

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

宿題について

今回の宿題は「復習問題」と「発展問題」のワークシートを完成させるのが宿題であるため、これら2つのワークシートについて次週の授業開始前までに実施しておくこと。これら2つのワークシートを「学籍番号-calc5.ods」という名称で保存し、メールに添付して提出する。

特定のワークシートのみの保存方法

「宿題」のワークシートのみを保存するためには、ワークシートの「宿題」タブを右クリックし、「移動またはコピー」を選択する。出てきたダイアログで、「コピーを作成する」にチェックを入れ、移動先ブック名を「新しいブック」にしてOKすると、ワークシートの複製が新規エクセルファイルとして作成されるので、名前を付けて保存すればよい。

  1. 提出先:課題提出用メールアドレス
  2. メールの件名(Subject):表計算第5回宿題
  3. 提出期限:次回授業開始時まで