Excelで条件によって返す値を変えるときに使う基本の関数4選

Microsoft Excel では 400 以上の関数が用意されていますが、その関数の中でも設定した条件によって返す値を変えたいときに使用する関数として IF 関数、 IFS 関数、 SWITCH 関数、 IFERROR 関数が用意されています。ここでは Excel で条件によって返す値を変えるときに使う基本の関数 4 選について、サンプルを使いながら実際の使い方について分かりやすく解説します。

(2021 年 11 月 25 日公開 / 2021 年 11 月 25 日更新)

IF関数:1つの条件式で返す値を変える

1 番目は IF 関数です。指定した条件が TRUE の場合と FALSE の場合で戻り値を変えたい場合に使用します。

IF関数(1)

1 番目の引数に指定した論理式が TRUE だった場合に返す値を 2 番目の引数に指定し、論理式が FALSE だった場合に返す値を 3 番目の引数に指定します。

IF関数(2)

論理式は次のような比較演算子を使って条件を記述します。例えば C1 セルの値が "ABC" と等しいかどうかを調べるには C1="ABC" 、 C2 セルの値が 80 よりも大きいかどうかを調べるには C2>80 のように記述します。他にも TRUE や FALSE を返す関数を 1 番目の引き数に記述することもできます。

演算子解説
=A = BA と B が等しければ TRUE、そうでなければ FALSE
<>A <> BA と B が等しくなければ TRUE、そうでなければ FALSE
>A > BA が B より大きい場合は TRUE、そうでなければ FALSE
<A < BA が B より小さい場合は TRUE、そうでなければ FALSE
>=A >= BA が B より大きいか等しい場合は TRUE、そうでなければ FALSE
<=A <= BA が B より小さいか等しい場合は TRUE、そうでなければは FALSE

それでは実際に試してみます。次のような試験の結果を元に "合格" か "再試験" かを表示する場合で試してみます。

IF関数(3)

C3 セルの値が 80 以上の場合は D3 セルに "合格" と表示し 80 より小さい場合は "再試験" と表示するようにします。 D3 セルに次のように入力してください。

=IF(C3>=80,"合格","再試験")

IF関数(4)

Enter キーを押すと D3 セルには 1 番目の引き数の結果に応じて "合格" か "再試験" のどちらかが表示されます。

IF関数(5)

D4 セルから D7 セルにも同じように IF 関数を入力してみます。

IF関数(6)

このように IF 関数を使用することで指定した条件に応じてセルに表示する値を変更することができます。

IF関数の引数にIF関数を入れ子にして複数の条件を設定する

IF 関数の場合は条件を一つしか指定することはできませんが、 2 番目または 3 番目の引数に IF 関数を入れ子にすることで、より細かい条件分岐を行うこともできます。

=IF(C3>=80,"合格",IF(C3>=60,"再試験","不合格"))

上記の場合、 C3 セルの値が 80 以上の場合は "合格" と表示されますが、 80 よりも小さかった場合は 3 番目の引数に記述した IF 関数を使って、 C3 セルの値が 60 以上ならば "再試験" と表示し 60 よりも小さければ "不合格" と表示します。

それでは実際に試してみます。 D3 セルに先ほどの数式を入力してください。

IF関数(7)

Enter キーを押すと D3 セルには 1 番目の引き数の結果に応じて "合格" か "再試験" か "不合格" のいずれかが表示されます。

IF関数(8)

D4 セルから D7 セルにも同じように IF 関数を入力してみます。

IF関数(10)

このように IF 関数を入れ子にすることでより細かく条件に応じてセルに表示する値を変更することができます。入れ子の中にさらに IF 関数を入れ子にすることもできますが、あまり複雑な数式にしてしまうと意図しないミスも起こりやすくなるので注意が必要です。

IF 関数についてより詳しい使い方については「IF関数:条件が真の場合と偽の場合で異なる値を返す」を参照されてください。

IFS関数:複数の条件式を使って返す値を変える

2 番目は IFS 関数です。複数の条件式を組み合わせてより細かく戻り値を変えたい場合に使用します。

IFS関数(1)

1 番目の引数に TRUE か FALSE を返す論理式を指定します。論理式が TRUE だった場合に返す値を 2 番目の引数に指定し、論理式が FALSE だった場合は次の論理式を評価するということを引数に指定した分だけ繰り返します。

IFS関数(2)

注意点として最後の論理式でも FALSE になった場合、 IFS 関数は #N/A エラーを返します。もしすべての論理式で FALSE の場合でも値を返したい場合は最後の論理式として TRUE を記述することで論理式が必ず TRUE となるため、そのあとに記述した値が返されます。

IFS関数(3)

それでは実際に試してみます。次のような試験の結果を元に "合格" か "再試験" か "不合格" かを表示する場合で試してみます。

IFS関数(4)

C3 セルの値が 80 以上の場合は D3 セルに "合格" と表示します。 80 より小さい場合、 60 以上の場合は D3 セルに "再試験" と表示するようにします。 60 より小さい場合は "不合格" と表示します。 D3 セルに次のように入力してください。

=IFS(C3>=80,"合格",C3>=60,"再試験",TRUE,"不合格")

IFS関数(5)

Enter キーを押すと D3 セルには 1 番目の引き数の結果に応じて "合格" か "再試験" か "不合格" のいずれかが表示されます。

IFS関数(6)

D4 セルから D7 セルにも同じように IFS 関数を入力してみます。

IFS関数(7)

このように IFS 関数を使用することで複数の条件式を使ってより細かい条件に応じてセルに表示する値を変更することができます。

IFS 関数についてより詳しい使い方については「IFS関数:複数の条件を順に調べて真の場合に値を返す」を参照されてください。

SWITCH関数:複数の値の中から一致するものを探す

3 番目は SWITCH 関数です。指定した値があらかじめ用意した複数の値と一致するものがあるか順番に調べていき、一致した場合に対応する値を返します。

SWITCH関数(1)

1 番目の引数に値と比較する式を記述します。式が返す値が 2 番目の引数と一致した場合は 3 番目の引数の値を返します。一致しなかったら 4 番目の引数と一致した場合は 5 番目の引数の値を返します。これを引数に記述した分だけ繰り返します。いずれの値とも一致しなかった場合は引数の最後に記述した規定値を返します。

SWITCH関数(2)

IF 関数や IFS 関数と SWITCH 関数の違いは、 IF 関数が等しいかどうかや値の大小などを比較演算子を使って調べることができるのに対して、 SWITCH 関数は値が等しいかどうかしか調べられません。また IFS 関数は色々なセルに対する条件を設定できるのに対して、 SWITCH 関数は一つの値だけを対象に複数の値と一致しているかどうかしか調べることができません。

その代わり SWITCH 関数では一つの値を複数の値と順に一致しているかどうかを調べる場合には IFS 関数を使った場合よりも簡潔に記述することができます。

それでは実際に試してみます。日付を入力すると、 TEXT 関数によって曜日が自動的に表示されますが、その曜日が月曜日から金曜日の場合は "10時から17時" 、土曜日に場合は "10時から21時", 日曜日の場合は "休日" と表示するように SWITCH 関数を使って設定します。

SWITCH関数(3)

SWITCH 関数の 1 番目の引数に調べる値が入力されている C3 セルを指定します。 "土曜日" と "日曜日" と一致するか順に調べ、どちらでもなかった場合は "月曜日" から "金曜日" と判断します。営業時間を表示する D3 セルに次のように入力してください。

=SWITCH(C3,"土曜日","10時から21時","日曜日","休日","10時から17時")

SWITCH関数(4)

Enter キーを押すと D3 セルには C3 セルの値に応じて営業時間が表示されます。

SWITCH関数(5)

B3 セルの日付を変更すると、自動的に C3 セルの曜日も変更されて D3 セルに表示される営業時間も変更されます。

SWITCH関数(6)

SWITCH関数(7)

このように SWITCH 関数を使用することで複数の値と順に一致するか調べ、一致した値に応じてセルに表示する値を変更することができます。

SWITCH 関数についてより詳しい使い方については「SWITCH関数:複数の値と一致するか順に調べて真の場合に値を返す」を参照されてください。

IFERROR関数:エラーの場合に代わりの値を表示する

4 番目は IFERROR 関数です。エラーが発生したときに、エラー値をそのまま表示するのではなく代わりの文字列を表示したい場合に使用します。

IFERROR関数(1)

Excel では色々なケースでエラーが表示されます。例えば除算を行うときに =10/0 のように 0 で除算した場合は #DIV/0! エラーが表示されますし、加算を行うときに =10+"ABC" のように数値ではない文字列などを加算しようとすると #VALUE! エラーが表示されます。

IFERROR関数(1)

IFERROR 関数を使用すると、エラーが発生したときに、エラー値の代わりに指定した文字列を表示させることができます。

それでは実際に試してみます。除算を行う数式は現在 =B3/C3 のようにセルに記述していますが、 IFERROR 関数を使って次のように変更します。この数式を D3 セルに入力します。

=IFERROR(B3/C3,"数値が不適切です")

IFERROR関数(1)

Enter キーを押すと次のように表示されます。

IFERROR関数(2)

IFERROR 関数は 1 番目の引数に指定した値や数式がエラーを返さない場合は、 1 番目に引数の結果をそのままセルに表示します。

それでは同じように D4 セルと D5 セルに IFFERROR 関数を使った数式を入力します。

IFERROR関数(3)

D5 セルに入力した数式では、 IFERROR 関数の 1 番目の引数に指定した数式が #DIV/0! エラーを返すため、エラー値の代わりに 2 番目の引数に指定した "数値が不適切です" という文字列が代わりに表示されています。

今度は加算の場合です。加算を行う数式は現在 =B3+C3 のようにセルに記述していますが、 IFERROR 関数を使って次のように変更します。この数式を D3 セルに入力します。

=IFERROR(B3+C3,"数値以外を加算しています")

IFERROR関数(4)

Enter キーを押すと次のように表示されます。

IFERROR関数(5)

IFERROR 関数は 1 番目の引数に指定した値や数式がエラーを返さない場合は、 1 番目に引数の結果をそのままセルに表示します。

それでは同じように D4 セルと D5 セルに IFFERROR 関数を使った数式を入力します。

IFERROR関数(6)

D5 セルに入力した数式では、 IFERROR 関数の 1 番目の引数に指定した数式が #VALUE! エラーを返すため、エラー値の代わりに 2 番目の引数に指定した "数値以外を加算しています" という文字列が代わりに表示されています。

このように IFERROR 関数を使用することでエラーの代わりに指定した文字列を表示させることができます。

IFERROR 関数についてより詳しい使い方については「IFERROR関数:エラー発生時にエラー値の代わりの値を返す」を参照されてください。

-- --

Excel で条件によって返す値を変えるときに使う基本の関数 4 選について、実際の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。