Contents
スプレッドシートのIF関数とは
スプレッドシートのIF関数は、条件に基づいて異なるアクションを実行するための関数です。指定した条件に当てはまる(TRUE)か当てはまらない(FALSE)かによって、結果を出し分けます。
IFS関数とは
スプレッドシートのIFS関数は、条件に合致するかしないかによって結果を出し分ける関数で、IF関数と異なり2つ以上の複数条件と値を指定できます。IF関数でも複数回呼び出せば似たような挙動を再現できますが、IFS関数のほうが読みやすくシンプルに設計できるのが強みです。
IF関数・IFS関数の構文
IF関数の構文
=IF(論理式, TRUE値, FALSE値)
- 論理式:どのような条件で判定するか指定
- TRUE値:「論理式」を満たした(TRUE)場合に表示する値
- FALSE値:「論理式」を満たさなかった(FALSE)場合に表示する値
IFS関数の構文
=IFS(条件1, 値1, [条件2, 値2, …])
- 条件1:どのような条件で判定するか指定
- 値1:「条件1」を満たした(TRUE)場合に表示する値
- 条件2、値2…:「条件1」を満たさなかった(FALSE)場合に判定する条件や値(任意)
IF関数・IFS関数の使い方
[IF関数]単一条件で分岐
IF関数は「=IF(論理式, TRUE値, FALSE値)」のように特定のひとつの条件に当てはまった場合と当てはまらなかった場合の値を指定します。たとえば下図において、60未満と60以上の場合で表記を出し分けたいとします。
この場合「=IF(B2<60,”低い”,”高い”)」と書くと、次のように条件に基づいて出し分けをしてくれます。
C2セルをオートフィルないしコピペでC7セルまで貼り付けすると、画像のように「低い」「高い」の出し分けができました。
[IFS関数]複数条件で分岐
もしレベルの高さを3段階に分けて表示したいのであれば、IFS関数を使いましょう。たとえばC2セルには「=IFS(B2<60,”低い”,B2<70,”中くらい”,B2>=70,”高い”)」のように記載します。
「=IFS(B2<60,”低い”,B2<70,”中くらい”,B2>=70,”高い”)」は下の1、2、3の順に処理される仕組みになっています。
- B2<60,”低い”
- B2セルが”60より小さい”へ当てはまる場合に「低い」を表示
- B2<70,”中くらい”
- B2セルが”70より小さい”へ当てはまる場合に「中くらい」を表示
- B2>=70,”高い”
- B2セルが”70以上”へ当てはまる場合に「低い」を表示
画像にすると下図のとおりです。
同様にオートフィルやコピペにより下まで関数を設定すると、下図のとおりになります。
IFS関数で当てはまる条件がないとエラーになる
IFS関数では下図のように「条件」内のいずれにも当てはまるパターンがないと、「#N/A」と「一致する条件はありませんでした。」のエラー表示が出てしまいます。
これを回避するには当てはまる条件を設置するか、IF条件を用いてFALSEに当てはまらない場合の処理を書くかするとよいでしょう。
IF関数でも2つ以上の分岐を設定できる
IFS関数ではなくIF関数を使っても2つ以上の条件分岐は設定できます。その場合「=IF(B2<60,”低い”,IF(B2<70,”中くらい”,”高い”))」のようにIF関数を複数回使った処理をかきます。
複数条件にもとづいた処理は基本的にIFS関数を使ったほうがわかりやすくかけます。ただし、いずれの条件にも当てはまらない場合の処理が発生しうるのであれば、IF関数を用いたほうがよいでしょう。IFS関数ではどの条件にも当てはまらない場合にエラーが出てしまうためです。
[AND関数]IF関数と組み合わせ
IF関数は2つ以上の条件に合致した場合だけ◯という書き方ができます。その場合にはIF関数に加えてAND関数を使いましょう。たとえば下図において、C列がほのお、D列がひこうの場合に◯となる関数をかきます。
まずはE2セルに「=IF(AND(C2=”ほのお”,D2=”ひこう”),”◯”,”×”)」といれます。これまで条件式としていた箇所に「AND(C2=”ほのお”,D2=”ひこう”)」が入っています。これはカンマ(,)で区切られたすべてが◯(TRUE)の場合に条件式がTRUEとなる構造です。
オートフィルで下まで同様の関数を入れると、条件に当てはまるE7セルのみ◯になっています。
[OR関数]IF関数と組み合わせ
AND関数と同様に、OR関数もIF関数と組み合わせることで真価を発揮します。今度はほのおまたはひこうタイプの場合に◯となるよう、さきほどのANDをORに差し替えて「=IF(OR(C2=”ほのお”,D2=”ひこう”),”◯”,”×”)」としました。
IF関数を2つつなげることでもOR条件を表せる
OR関数を使ったさきほどの式ですが、IF関数を2回つかって「=IF(C2=”ほのお”,”◯”,IF(D2=”ひこう”,”◯”,”×”))」のようにもかけます。
どちらも動きはするのですが、OR関数を使ったほうがあとから関数を読む人が理解しやすいのでおすすめです。
[チェックボックス]IF関数の条件に使う
IF関数を使うと✓が入っているか入っていないかで条件分岐できます。たとえば、下図のチェックボックスを踏まえてD列にIF関数を記入したいとしましょう。
この場合、D2へ「=IF(C2=TRUE,B2,””)」と入力すると、C2にチェックが入っているのでTRUEとしてみなされてB2セルの「フシギダネ」が表示されます。
オートフィルにて下まで入れた場合も見てみましょう。D10セルは「=IF(C10=TRUE,B10,””)」と記載してあり、C10セルはチェックが入っておらずFALSEとみなされるので、条件分岐によって何も表示されていません。
チェックボックスはデータ的に、✓はTRUE、空欄はFALSEとして扱われています!
そのため、IF文にてチェックが入っている場合をTRUE、入っていない場合をFALSEとして=でつなぐと結果がかえってくるという仕組みです。
IF関数・IFS関数に関連した関数
IF関数・IFS関数と関連のある関数は多くあります。条件に合致する数値のみ足し算するSUMIF関数や、特定条件のセルのみカウントするCOUNTIF関数など、頻出するものだけでも下図のとおり多岐にわたります。
関数名 | 概要 |
---|---|
SUMIF関数 | 条件に合致したセルの数値を足し算 |
COUNTIF関数 | 条件に合致したセルの数をカウント |
AVERAGEIF関数 | 条件に合致したセルの数値を相加平均(いわゆる平均) |
MAXIFS関数 | 条件に合致したセルの数値のうち、最大を表示 |
MINIFS関数 | 条件に合致したセルの数値のうち、最小を表示 |
SWITCH関数 | 条件に完全一致した場合に指定した値を表示 |
SWITCH関数はIF関数やIFS関数と似ていますが、〇〇という値の場合にXXといったように完全一致する値に対して表示する値を指定する関数です。詳しくはGoogle公式のSWITCHを参照してください。