エクセル・VBA

Excel(エクセル)IF関数で複数条件の使い方を解説します

更新日:

解説を説明しそうな女性の画像

 

今回は「IF関数」の使い方をお話ししていきます。

IF関数が使えるとかなり出来る事の幅が広がります。

ぜひ覚えてみてください。

IF関数の基本的な使い方

基本的な使い方を紹介している画像

IF関数は設定された条件に対しセルの値がTRUE(真)かFALSE(偽)かを判定し、その判定結果に応じた値を返す関数です。

基本文法はこうです。

IF(条件判定の式,真の場合に返す値,偽の場合に返す値,)

具体例を見てみましょう。

以下の表はある会社の研修テスト結果です。テスト結果が80点以下の人には「補習有無」欄に「補習」と表示します。

補修判定欄が空白のエクセル画面

まず、表の先頭E3セルを選択し、D3の値が80点以上の場合は空白、80点より低い場合は「補習」と表示されるようにIF関数を使った式を書きます。

=IF(D3>=80,””,"補習")

※関数の中で文字列を扱うときはダブルクオーテーション(“)で文字列を囲う必要があります。

ちなみに””のようにダブルクオーテーションの中に何も入力しないことで「空白」を表現することができます。

残りのセルにオートフィルで関数を入力すると、すべての従業員の補習判定結果が表示されます。

IF関数を入力されているエクセル画面

IF関数で2つの複数条件を設定する

複数条件の設定の方法を紹介している画像

IF関数で2つの複数条件を設定する方法

設定する方法を紹介している画像

では条件を複数にして「80点以上は空白、60点以上は「要勉強」、60点より低い場合は「補習」」と表示するようにしてみましょう。

表の先頭のセルE3を選択し、以下のような式を書きます。

=IF(D3>=80,"",IF(D3>=60,"要勉強","補習"))

まず点数が入力されたD3のセルが80以上かどうかを判定し、判定が真の場合は””(空白)を表示します。

「偽の場合に返す値」の場所にはIF関数が書かれています。ここで「D3が60以上かどうか」をさらに判定しているのです。

もし60以上なら「要勉強」、60より点数が低ければ「補習」と表示されます。

IF関数の中にIF関数を入れ子(ネスト)にすることで、複数条件を判定することが可能になりました。

残りの欄にオートフィルで関数を入力すると、IF関数ですべての従業員の判定ができます。

「補修」の表記の他に「要勉強」の表記も加わったエクセル画面

2つの複数条件、優先順位はこうなる

優先順位を紹介している画像

上の例で分かる通り、IF関数では最初に設定した条件が優先されます。

つまり、最初に「80点以上かどうか?」が判定され、この条件が満たされた場合は空白を表示し、次の「60点以上かどうか?」という判定は行われません。

80点より点数の低かったセルだけが、60点以上かどうかの判定(2番目のIF関数)に進むのです。

IF関数で複数条件を使う場合は、先に優先度の高いものから記入していくのがポイントです。

IF関数で3つの複数条件を設定する

複数条件の設定を紹介している画像

 

IF関数で3つの複数条件を設定する方法

設定する方法を紹介している画像

 

では条件をもう1つ増やして「80点以上は空白、70点以上は「要勉強」、60点以上は「補習」、60点より低い場合は「再テスト」」と表示するようにしてみましょう。

条件が3つになった場合も、IF関数を入れ子にすることで対処できます。

表の先頭のセルE3を選択し、以下のような式を書き、オートフィルで数式を最後の行までコピーします。

=IF(D3>=80,"",IF(D3>=70,"要勉強",IF(D3>=60,"補習","再テスト")))

式の意味はこうです。まず、点数が表示されたD3が80点以上なら空白を表示します。

80点より低い場合、次のIF関数で70点以上かどうかを判定。さらにD3が70点より低ければ3番目のIFで条件判定をするという流れになっています。

条件が3つのIF関数が入っているエクセル画面

3つの条件、優先順位はこうなる

優先順位を紹介している画像

3つの条件の優先順位は2つの条件の場合と同じく、最初に書いたものから行われます。

この例ではまず80点以上かどうか、を最優先で判定します。

この条件に外れたセル、つまり80点より低い点数のものが次のIF関数に進み、70点以上かどうか判定されます。

さらに70点より低い点数のものが3番目のIF関数に進み、最後の判定をされるというわけです。

IF関数で4つ以上の複数条件を扱う場合

4つ以上の複数条件の使い方を紹介している画像

上記の例のようにIF関数を入れ子構造にし続ければ、4つ以上の条件を設定することもできます。

しかし、入れ子構造が複雑になればなるほど、今どのような式を書いているのか自分で分からなくなってしまうでしょう。

実は簡単に複数条件を設定できるIFS関数というものもあります。

IFS関数の文法構造はこうです。

=IFS(条件1,値が真の場合に返す値1,条件2,値が真の場合に返す値2,…)

先に出た3つの複数条件の例をIFS関数で書き換えてみましょう。

=IF(D3>=80,"",IF(D3>=70,"要勉強",IF(D3>=60,"補習","再テスト")))

=IFS(D3>=80,"",D3>=70,"要勉強",D3>=60,"補習",D3<60,"再テスト")

IFS関数では先頭から優先的に条件をあてはめ、最初に真になった値が返ります。(IFS関数には偽の設定がありません。そのためIFS関数の最後にD3が60点より低くなった場合の返り値を付け加えています)。

IFS関数を使った方が見た目がすっきりして分かりやすい構造になりました。

ただしIFS関数はExcel 2013以前のバージョンでは使えないので注意してください。

IF関数でAND複数条件を使う

ANDの使い方を紹介している画像

上では複数条件ごとに分岐していくIF関数の例を紹介しました。

しかし更にシンプルに「AかつBかつCの場合」とAND条件を設定したい場合もあるでしょう。

そんな時はAND関数の出番です。

例えば今回の研修テストは営業部に関わるものだったので、営業部で点数が低い人だけ補習を実施するとします。

以下の名簿で「営業部かつテスト80点以下」の場合「補習」、それ以外の場合は空白を表示してみましょう。

補修判定欄が空白のエクセル画面

補習判定先頭のF3を選択し、以下のように入力します。

=IF(AND(E3="営業部",D3<=80),"補習","")

あとはオートフィルで表の最後の行までコピーすれば、営業部で80点以下の人がだれかすぐに分かります。

複数条件をIF関数とAND関数で求める数式の入ったエクセル画面

IF関数でOR複数条件を使う

ORの使い方を紹介している画像

AND関数に対し、「AもしくはBもしくはC」の条件が設定できるOR関数もあります。

今回の研修テストは開発部には内容が関係なく、また再雇用者60歳以上の補習は免除したいとします。

そこで「開発部もしくはテスト80点以上もしくは60歳以上」の場合「補習免除」、それ以外の場合は「補習」と表示してみましょう。

補修判定欄が空白のエクセル画面

補習判定先頭のF3を選択し、以下のように入力します。

=IF(OR(E3="開発部",D3>=80,C3>=60),"補習免除","補習")

オートフィルでコピーすると、補習免除になる人と補習になる人が表示されました。

複数条件をIF関数とOR関数を使って求める数式が入っているエクセル画面

IF関数の中にIF関数を入れ子構造にすることで複数条件判定をすることができます。

また、IFS関数やAND関数、OR関数を使うことで複雑な条件設定をシンプルに表すことができます。

判断したい条件によってそれぞれの関数を使い分けることをお勧めします。

全国にあるパソコン教室パレハのサービス一覧

「オンライン」自宅で学べるパソコン教室

オンラインレッスン

オンラインレッスンの詳細はこちら

苦手な方専門パソコン教室

パソコン教室パレハの詳細はこちら

パソコン教室の運営をしませんか?

フランチャイズ

パソコン教室パレハFCの詳細はこちら

「在宅」で自由な働き方しませんか?

在宅ワーク

クラブ・パレハ在宅ワーク詳細はこちら

-エクセル・VBA
-, ,

メールはこちら

LINEはこちら

お電話はこちら

Copyright© パソコン教室パレハ , 2020 All Rights Reserved.