神奈川大学 経済学部
2014年度経済情報処理II

第11課 IF関数を使って場合分け処理を行う

第9課の目標

↑経済情報処理(2014)ホームページに戻る


1. 単純な場合分けを含む計算式

例題1. 試験の成績と合否

data05.xlsx例題1シートには、仮想的な試験の点数データが入っている。このデータを使って

  1. 合否(合格点は60点)をワークシートに「合格」「落第」の文字列で表示する。
  2. 不合格者数を数える。

の2つの操作を行いたい。

この操作は、得点が60点以上か60点未満かで判断して違うことを行う必要がある。このように「ある条件を満たすかどうか」で操作を変える場合、ExcelではIF関数という関数を用いる。

Step 1. まずC2 に「合格」「落第」の表示を行う

Excelの場合、計算式が入っているセルの値は計算式の値になるので、IF関数が返す値を「合格」「落第」の文字列にすればこの目的は達成できる。IF関数の書式は、

IF(条件, 条件が成立した場合の値, 条件が成立しない場合の値)

となっている。このケースでは

であるから、これをそのままExcelの計算式にすればよい。

セル C2 ← =IF(B2>=60, "合格", "落第")

最初の引数である、B2>=60は、「B2セルの内容が60以上か?」という条件を表す式になる。data05.xlsxのデータでは、B2は60なのでこの条件は成立する。条件が成立した場合は、2つめの引数がIF関数の値となるので、C2 は「合格」と表示されるはず。

Step 2. 計算式をコピーして全てのデータについて合否が判定できるようにする。

Step 3. 不合格者数を数える

Excelでこの目的を達成する方法はいくつかあるが、ここでは不合格者数を数える→落第なら1、合格なら0が入っている列を作成して、その列のデータを全部合計するという愚直な方法を採用する。

この場合、条件は「落第か?」ということになるので、Step 2で作成した「合格」「落第」のデータが使える。

セル D2 ← =IF(C2="落第", 1, 0)

最初の引数である C2="落第" は、C2セルの値が「落第」という文字列かどうかを検査している。落第なら、第2引数が関数の値として評価されるので関数の値は1となり、合格なら第3引数が評価されて0になる。

計算式をコピーしたら、セル G1 に合計するための計算式(SUM関数を使う)を入れておしまい。

*1)「SUMIF関数使えばいいんじゃね?」 と思ったひとは、頭が固いので自己批判しましょう。条件が複雑になったらSUMIFではすぐ破綻します。「ピボット・テーブル使えばいいんじゃね?」と思った人は経済情報処理なんか受講して単位稼ぎしてないで、他の専攻科目を履修しましょう。

Tips. Excelの比較演算子

Excelの比較演算子は以下のようになっている。使える記号の制限から、数学で使う比較演算子とは違うので注意。

説明 数学での表記  Excelでの表記 
 AはBより大きい(Bと等しい場合は含まない) A>B  A>B 
 AはB以上(Bと等しい場合を含む) A≧B  A>=B 
 AはBと等しい A=B  A=B 
AはB以下(Bと等しい場合を含む) A≦B A<=B
 AはB未満(Bと等しい場合は含まない) A<B  A<B 
 AとBは等しくない A≠B  A<>B 

例題2: 社員別の売上目標と売上実績

社員別の売上目標と売上実績は、data05.xlsx売上成績シートに入っているデータのようになりました。「売上実績」が「売上目標」以上だったら「○」、そうでなければ「×」を評価欄に入力してください。売上目標を達成した人数を数えましょう(ヒント: 条件を満たす場合に 1、満たさない場合に 0となるような 計算式を作れば、SUM関数を使って人数が数えられます)。

確認問題
data05.xlsx ブックの 確認 シートに入っているデータを用いて、60点以上、80点未満の人の数を数えなさい(ヒント: 条件を満たす場合に 1、満たさない場合に 0となるような 計算式を作れば、SUM関数を使って人数が数えられる)

↑経済情報処理(2014)ホームページに戻る