「もし(IF)、条件Aに合致するのであればaを返す。そうでないのであればbを返す。」
というように、条件に合致するかどうかよって表示内容を分岐させる式を、プログラミングの世界では「条件式」と呼びます。
簡単に「IF文」なんて呼んだりもしますね。
今回は、スプレッドシートにおける条件式である、IF関数とIFS関数について解説していきます。
- テストの点数が60点以上の場合は「合格」、そうでない場合は「不合格」と表示したい。
- 会員の性別情報が「M」ならば「男性」、「F」ならば「女性」と表示を変えたい。
- チェックボックスにチェックを入れたら、特定の文字列が表示されるようになってほしい。
今日の公式
1IF関数
IF関数は、「Aならばa、そうでないならb」と、一個の条件に当てはまるか否かで表示する値を切り替える関数です。
項目 | 説明 |
論理式 | 「TRUE」か「FALSE」を返す式、もしくはそういった式を含むセルを指定します。 |
TRUE値 | 論理式の結果がTRUEだったときに、返す値です。 |
FALSE値 | 論理式の結果がFALSEだったときに、返す値です。 |
2IFS関数
IFS関数は、複数の条件に対応した関数です。
「Aならばa、Bならばb」といった感じです。
項目 | 説明 |
条件1 | 最初に検証する論理式です。 「TRUE」か「FALSE」を返す式、もしくはそういった式を含むセルを指定します。 |
値1 | 条件1の結果がTRUEだったときに、返す値です。 |
条件2 | 条件1の結果がFALSEだったときに、2番目に検証する論理式です。 |
値2 | 条件2の結果がTRUEだったときに、返す値です。 |
注意しなければならないのが、IF関数では「正しい場合はa、そうでない場合はb」という二者択一の条件式でしたが、IFS関数は「どの条件にも当てはまらない場合は」という記述ができません。
つまり、「Aならばa、Bならばb、AでもBでもないならばc」といった分岐はできず、「AでもBでもないならばエラー」となります。
- IFS関数は、すべての条件がFALSEの場合、エラー(#N/A)となる。
IF関数の解説
下の図のような成績表を例に解説します。
IF関数を使って「テストの点数が70点以上は合格、69点以下は不合格」と表示を分けてみましょう。
1論理式を記述する
「テストの点数が70点以上である」という論理式を記述します。
2TRUEの場合に表示する値を指定する
論理式がTRUEの場合、つまりテストの点数が70点以上の場合に表示する値を指定します。
3FALSEの場合に表示する値を指定する
論理式がFALSEの場合、つまりテストの点数が70点未満の場合に表示する値を指定します。
IFS関数の使用例
さて、先ほどはIF関数を使って合格か不合格かの二者択一の条件式を書きました。
今度は、テストの点数によって「優」「良」「可」「不可」の4パターンに評価を分ける方法を考えてみましょう。
条件となる評価基準は以下となります。
- 優:90点以上
- 良:80点以上89点以下
- 可:70点以上79点以下
- 不可:69点以下
11番目の論理式と値を書く
まずは、「優」の論理式から書いていきましょう。
- 点数が90点以上ならば、「優」と表示する
という論理式と値を指定します。
22番目の論理式と値を書く
次に「良」の論理式です。
- 点数が80点以上だったら、「良」と表示する
という論理式と値を指定します。
ここで
「あれ?『80点以上89点以下』って論理式じゃないとダメなのでは?」
と思った方もいるかもしれません。
しかし、問題ありません。
1番目の論理式がFALSEだった場合に、2番目の論理式の検証が始まります。
1番目の論理式「点数が90点以上」がFALSEということは、必然的に「89点以下」の生徒だけが2番目の論理式の検証の対象となるのです。
33番目以降の論理式と値を書く
同じような感じで「可」「不可」の論理式を書いていきましょう。
- 点数が70点以上だったら、「可」と表示する
- 点数が0点以上だったら、「不可」と表示する
最後の「不可」は
- 点数が70点未満だったら、「不可」と表示する
と表現しても問題ありません。
残りのセルも同様に関数を反映させることで、すべての評価が完了します。
練習問題
練習問題を解いてみましょう。
※「ファイル」>「コピーを作成」でスプレッドシートをコピーすることで、編集可能になります。