スプレッドシート

スプレッドシートのIF関数で単一条件、IFS関数で複数条件での分岐設定

スプレッドシートのIF関数

スプレッドシートの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の順に処理される仕組みになっています。

  1. B2<60,”低い”
    • B2セルが”60より小さい”へ当てはまる場合に「低い」を表示
  2. B2<70,”中くらい”
    • B2セルが”70より小さい”へ当てはまる場合に「中くらい」を表示
  3. 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を参照してください。