Meiji Mizutani Masahiro(水谷 正大) http://www.isc.meiji.ac.jp/~mizutani/

IF関数を使い、値に応じたラベルをつける(承前)

データ値に応じて、あらかじめ決めてあるラベル付けを求めるために、IF関数を使う。 ラベル付けは、得点範囲に応じて成績をつけるなど、多くの事例で使われる。

ポイント

利用する関数

関数名 記述 意味
IFIF(論理式, 真の場合, 偽の場合)指定された条件が TRUE (真) のとき "真の場合" を返し、FALSE (偽) のとき "偽の場合" を返す。
COUNTIFCOUNTIF(範囲, 検索条件)指定された範囲に含まれるセルのうち、検索条件に一致するセルの個数を返す。

説明1)論理式: 真偽(TRUE と FALSE)が明快に定まる表式のことで、比較式や論理式を組み合わせて記述する。
比較式
xはaと等しい:  x = a
xはaと等しくない:  x <> a
xはaより小さい:  x < a
xはaより小さいか等しい(以下):  x <= a
xはaより大きい:  x > a
xはaより大きいか等しい(以上):  x > = a
論理式
論理式 P の否定:   NOT(P)
論理式 P と Q,... のAND:  AND(P, Q, ...)
論理式 P と Q,... のOR:  OR(P, Q, ...)

例)
xが区間 [70, 80) に含まれる(70 <= x < 80):

 AND(70 <= x, x < 80) 
     または
(70 <= x)  AND (x < 80)

説明2)場合分けが2分される場合はIF 関数の使い方は簡単。
例)
xが50以上なら合格、50未満なら不合格:

IF(x >= 50, "合格", "不合格")

説明3)場合分けが3つ以上になると、IF関数の表記はどんどん複雑になる
例)
xが60未満なら不可、60以上70未満なら可、70以上80未満なら良、80以上なら優:

IF(x >= 80, "優",  IF(AND(x >= 70, x < 80), "良" , IF(AND(x >= 60, x < 70), "可", "不可")))
上記のようにIF関数は本来は1行で書くが、次のように配置してみると少しはわかりやすくなる。

IF(x >= 80, "優",                             <---1番目のIF
    IF(AND(x >= 70, x < 80), "良" ,           <---2番目のIF
        IF(AND(x >= 60, x < 70), "可", "不可")    <---3番目のIF
    )
)
しかし、いまの場合、よく考えてみると
IF(x >= 80, "優",  IF(x >= 70, "良" , IF(x >= 60, "可", "不可")))
でよいことがわかる(たとえば、2番目のIFの論理式が評価されるときはx < 80 のときであり、ここでこの条件を再度判定する必要はないから)。


ここで利用する表データ:ad_step01.xls
注意: Webブラウザ内で開かないで、一旦ダウンロードしてファイルとして保存してから、そのファイルをOpenしてください。

課題

  1. "人口"シートで求めた人口密度の値を、[密度範囲, 密度ランク, 密度]の表で定義したランク Aから F でラベルする。
  2. 関数 COUNTIF を使って、AからFでラベル付けした各ランク数をK列に求めなさい。

研究