roy > naoya > 情報リテラシーII > (5)表計算[5]-論理関数と絶対参照
(5) 10/31の授業内容:表計算[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 | S1 | 2 | 1 | 男性 | |
3 | S2 | 1 | 2 | 女性 | |
4 | S3 | 2 |
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]出席課題
以下の項目についてメール本文に記載し、今日のファイルを添付して送る。
- 理解できたかどうか(難しかったものがあれば、どれが難しかったか)
- その他感想
- 提出先:課題提出用メールアドレス
- メールの件名(Subject):literacy5
- 提出期限:授業終了時
- 電子メールの使い方に自信がない場合:Mewの主要コマンドについてを確認しよう
宿題について
今回の宿題は「復習問題」と「発展問題」のワークシートを完成させるのが宿題であるため、これら2つのワークシートについて次週の授業開始前までに実施しておくこと。これら2つのワークシートを「学籍番号-calc5.ods」という名称で保存し、メールに添付して提出する。
「宿題」のワークシートのみを保存するためには、ワークシートの「宿題」タブを右クリックし、「移動またはコピー」を選択する。出てきたダイアログで、「コピーを作成する」にチェックを入れ、移動先ブック名を「新しいブック」にしてOKすると、ワークシートの複製が新規エクセルファイルとして作成されるので、名前を付けて保存すればよい。
- 提出先:課題提出用メールアドレス
- メールの件名(Subject):表計算第5回宿題
- 提出期限:次回授業開始時まで