2020年3月4日水曜日

Numbersでif関数

If関数はどんなプログラムでも使われていると思いますが、Numbersもその例外ではなく、セルの値によって処理を決めることができるとても便利な関数の一つ。そのif関数の使い方を確認して行こうかなと思います。

動作環境・検証環境

使用環境は次の通りです。
端末名 MacBookAir
OSCataline 10.15.3
Numbersバージョン バージョン6.2.1(6529)

if関数について

セルの値によって処理を決めるif関数ですが、要は条件分岐するものと考えてもいいのかなと。セルの値がif関数の条件式の通り満たすのであればTRUE(正)、条件を満たさないのであればFALSE(誤)となり、それぞれの正誤で入力しているセルになにを出力するものなのかというものです。

書式

If関数の書式についてですが、Numbersの関数説明通りに確認していきましょう。

Numbersへの入力
IF(条件式、真の場合、偽の場合)

それぞれの引数について
条件式:論理式 「件式」には、式をブール値として評価できる限り、すべてのものを含めることができます。式が数値として評価される場合、0はFALSE、それ以外の数値はTRUEと見なされます。

真の場合:「条件式」がTRUEの場合に返される値。 「真の場合」には、任意の値を含めることができます。「真の場合」を省略し(カンマはあるが値がない)、「条件式」の評価がTRUEの場合、IFは0を返します。

偽の場合:「条件式」がFALSEの場合に返される値を指定する引数(オプション)。 「偽の場合」には、任意の値を含めることができます。「偽の場合」を省略し(カンマはあるが値がない)、「条件式」の評価がFALSEの場合、IFは0を返します。「偽の場合」が完全に省略され(「真の場合」の後にカンマがない) 、「条件式」の評価がFALSEの場合、IFはFALSEを返します。
条件式が正しければ「真の場合」で決めた値を返して、正しくなければ「偽の場合」で決めた値を返すということを文章にするとこんな感じになるのかな。ここで、「真の場合」、「偽の場合」いずれも返す値を決めていない場合にはエラーにならず、0を返すのはエクセルとは少し違うところなのかな。のちほど検証してみよう。

if関数実践

以下のサンプルデータを用意しました。テスト結果として点数(図中①の囲い)70点以上の人を「合格」、それ未満の人を「不合格」と合否(図中②の囲い)列へ表示するようにif関数を組んでみると以下の通りになります。※一番初めの生徒(山田さん)のセルは「A2」です。

numbers-if
図1:サンプルデータ(基本)


入力内容
IF(A2>=70,"合格",”不合格”)

numbers-if
図2:入力例(基本)

この式を一番最後の生徒(長谷川さん)までコピーした結果がした図となります。
numbers-if
図3:結果(基本)

関数の条件はセルの値を引数にすることも可能

ここで図のように合格基準点を"D2"のセルに入力して、以下のようにC列へ先ほど同じようにIF関数を入力します。
numbers-if
図4:サンプルデータ(応用)


入力内容
IF(A2>=$D$2,"合格","不合格")

numbers-if
図5:入力例(応用)
このように入力して先ほどと同様に一番最後の生徒(長谷川さん)のセルまで関数をコピーします。

numbers-if
図6:結果(応用)
同じ結果がえられたことがわかります。このように関数を入力することの利点は、例えば合格基準点の変更があり、「70点」から「80点」となった場合を考えてみましょう。関数の条件式に合格基準点を入力した例であれば、関数の条件式に入力されている「70」の箇所を修正し、再度関数を一番下までコピーする必要があります。一方で、関数の中にせるを指定することで、"D2"の値を「80」と入力するだけで全ての計算が合格点「80点」に置き換わることになりますので、条件式には直接数字を入力したりするよりは条件式に使うセルを決めそこを指定したほうが後々のメンテナンスも楽になることがわかります。

まとめ

IF関数は多用すればファイルがとても重くなる関数ですが、プログラムや表計算では欠かせない関数の一つです。使い方はとても簡単で、条件式が正しければその時の処理、正しくなければその時の処理を決めるだけでできるので、覚えておきたい関数の一つです。

0 件のコメント:

コメントを投稿