IF関数で複数条件への一致/不一致に応じて返す値を変える
ここではエクセルのIF関数で3つ、4つなどの複数条件をもっと複雑に指定し分岐させる方法を解説します。
「もっと複雑に」とは、FALSEの場合だけでなくTRUEの場合にも分岐させるということです。
始めに「複数条件指定して分岐させる」とはどのようなことかを説明し、複数分岐の作り方を解説します。
読めばエクセルのIF関数で、条件を3つ以上、4つ以上などたくさん分岐させて条件を指定することができるようになりますよ。
1まずはやりたいことを確認
始めに、やりたいことを例を含めて確認します。
1-1.2つ以上の条件への一致/不一致の組み合わせに応じて返す値を変える
やりたいことは、「2つ以上の条件への一致/不一致の組み合わせに応じて返す値を変える」です。
例えば、あるセルが〇で別のセルも〇なら「◎」、あるセルが〇で別のセルが×なら「△」…などと、2つ以上の条件の一致/不一致の組み合わせに応じて、返す値を変えることのできるIF関数の書き方を説明します。
「2つの条件のどちらにも当てはまれば…」や、「どちらかに当てはまれば…」という意味での複数条件とは違うので、注意してください。
なお、それぞれの方法は以下のページで解説しています。
そして、OR条件がたくさんある時により簡単に数式を作る方法は、以下のページで紹介しています。
⇒ IF関数でたくさんのOR条件をまとめて簡単に指定する方法
ぜひ参考にしてください。
1-2.例を確認
一つ例を見てみましょう。
A、B、C、Dの4人の試験Aと試験Bの結果をもとにして、D列に「両方合格」、「試験A再試験」、「試験B再試験」、「両方再試験」の4つのいずれかを表示させようとしています。
なお、判定基準は次の通りです。
- A・Bともに70点以上 ⇒ 両方合格
- A70点以上・B70点未満 ⇒ 試験B再試験
- A70点未満・B70点以上 ⇒ 試験A再試験
- A・Bともに70点未満 ⇒ 両方再受験
この条件をイメージ化すると下のようになります。
つまり、1つ目の条件(Aが70点以上か?)が「YES(TRUE)」で2つ目の条件(Bが70点以上か?)も「YES(TRUE)」であれば「両方合格」を表示させ、2つ目の条件(Bが70点以上か?)のみ「NO(FALSE)」であれば「試験B再試験」を表示させています。
また、1つ目の条件(Aが70点以上か?)が「NO(FALSE)」で2つ目の条件(Bが70点以上か?)が「YES(TRUE)」であれば「試験A再試験」を表示させ、2つ目の条件(Bが70点以上か?)も「NO(FALSE)」であれば「両方再試験」を表示させる、という形にしています。
IF関数でこのような複雑な条件分岐を設定する方法を、この後解説します。
2.複雑な複数分岐の数式の形と作り方
では、IF関数で条件を複雑に複数分岐させた数式の形と、作り方を見てみましょう。
2-1.数式の形の例
まずは、数式の形です。
IF関数を条件分岐させる場合、分岐のさせ方によって数式の形は様々にかわりますので、ここでは一例です。
例えば、先ほどの例のように「一つ目の条件の真偽で分岐→二つ目の真偽で分岐」という場合、数式の形は次のようになります。
=IF(1つ目の条件,IF(2つ目の条件,両方真の場合,1つ目のみ真の場合),IF(2つ目の条件,2つ目の条件のみ真の場合,どちらも偽の場合))
ちょっと分かりづらいですが、イメージは先ほどの図の通りです。
例の場合、「1つ目の条件」が、「Aが70点以上か?」です。真であれば、図の左の「2つ目の条件」である「Bが70点以上か?」に移ります。
真であれば「両方真の場合」が返ってきます。偽であれば「1つ目のみ真の場合」が返ってきます。
また、「1つ目の条件」が偽であれば、図の右の「2つ目の条件」である「Bが70点以上か?」に移ります。
真であれば「Bのみ真の場合」が返ってきます。偽であれば「両方偽の場合」が返ってきます。
2-2.数式を作ってみる
続いて、数式を実際に作ってみます。
では、セルC2にIF関数を使った数式を入力してみましょう。
(1)セルC2に「=IF(」と入力し、「fx」ボタンを押す
(2)「関数の引数」に論理式(「B2>=70」)を、「値が真の場合」に「IF(」を入力する
(3)数式バーに追加された「IF(」をクリックする
(4)次の論理式(「C2>=70」)と「値が真の場合」に「両方真の場合」("両方合格")」を、「値が偽の場合」に「Aのみ真の場合("試験B再受験")」を入れる
(5)数式バーに「,IF(」と入力後、「IF(」をクリックする
(6)次の論理式(「C2>=70」)と「値が真の場合」に「Bのみ真の場合("試験A再受験")」を、「値が偽の場合」に「両方偽の場合("両方再受験")」を入れる
(7)完了
後は、数式を下のセルにコピーすれば完成です。
これで、IF関数を使った複雑な条件分岐の数式を作ることができました。
3.もっと分かりやすい数式にするには
前項のやり方は、IF関数のみを使った複雑な条件分岐の作り方でした。
しかし、数式の意味が読み解きづらいという欠点があります。
そこで、IF関数とAND関数を組み合わせてもっと分かりやすい数式にしてみます。
最終的には、次の形になります。
=IF(AND(B2>=70,C2>=70),"両方合格",IF(AND(B2>=70,C2<70),"試験B再受験",IF(AND(B2<70,C2>=70),"試験A再受験","両方再受験")))
また、イメージは次の通りです。
イメージ的にもこちらのほうが分かりやすいですね。
では実際に作ってみます。
なお、ここでは数式バーに直接入力する方法でやってみましょう。
(1)数式バーに「IF(AND(」と入力する
(2)論理式(「B2>=70,C2>=70」)を入れ、「,(カンマ)」入力後、「値が真の場合」に「両方真の場合("両方合格")」を入力する
(3)同様に「IF(AND(論理式),値が真の場合,」と入力していく
(4)最後に「値が偽の場合("両方再受験")」を入力してIF関数の数だけ「)」を入力すれば完了
このように、ポイントは「IF関数の構文(IF(論理式,真の場合,偽の場合))を覚えること」、「AND関数はカンマで条件を区切ること」です。
数式は長くなりますが、可読性が格段にアップします。
好みに応じて使い分けましょう。
以上参考になれば幸いです。
【口コミ・評判のいいExcel本の紹介】
IF関数の、他の記事へのリンクはこちらです。
- IF関数その他の記事へのリンクはこちら
- ◎基本的な使い方
- ◎以上、以下等の比較演算子を使う方法
- ◎日付範囲や期間を簡単に指定する方法
- ◎日付を比較する時の数式の書き方
- ◎マイナスの場合は0、空白と指定する方法
- ◎空白セルを空白にする方法
- ◎#VALUE!等のエラーになる原因と対処法
- ◎結果がうまくいかない時の原因と対処法
- ◎パーセントを条件に指定する方法
- ◎複数条件のORをリストで指定する方法
- ◎曜日の条件指定がうまくいかない場合の対応方法
- ◎空白でもSUM関数でエラーにしない方法
- ◎値があれば、入っていたらの条件にする方法
- ◎範囲全てが条件値と一致するかを判定する方法
- ◎文字が入っていたらの条件にする方法
- ◎空白を判定する方法
- ◎別シートの値を参照する方法
- ◎複数条件を「かつ」で指定する方法
- ◎複数のうちのどれかに合えばとする方法
- ◎セルの値がいづれかの場合真とする方法
- ◎特定の文字列を含む条件を指定する方法
- ◎複数列全てが一致の条件にするテクニック
- ◎複数条件を指定して分岐させる方法
- ◎ROUND関数の正しい組み合せ方