「エクセルのIF関数ってどうやって使うの?」
「条件が1つの場合のIF関数は書けるけど、複数条件ってどう書くの?」
「複数のIF関数の式をつなげたいけど、どうすればいいの?」
エクセルで仕事をしていると関数をよく使いますよね。
その中でもよく使う関数の一つである「IF関数」で困っていませんか?
IF関数は一つの条件だけでなく、複数の条件を指定し判定することができる便利な関数です。
ここではIF関数について、基本の書き方から複数条件の書き方まで解説しています。
書き方さえ覚えてしまえば応用も簡単!
ぜひこの記事を読んでエクセルをもっと使いこなしましょう。
1.IF関数とは?
IF関数はその名の通り「もし[条件]ならば[結果A]を返し、そうでなければ[結果B]を返す」を行う関数です。
まずはIF関数の基本的な使い方について解説します。
1-1.基本的なIF関数の使い方
IF関数は以下のように書きます。
「もし[条件]が真であれば[真の結果]を表示し、偽であれば[偽の結果]を表示する」という意味です。
ここで意味が分からない方も安心してください。
進んでいけばすぐに分かるようになります。
では実際に画像を見ながら、書き方と内容を確認していきましょう。
まずは以下の図をご覧ください。
結果列に式をいれ、値列の条件をもとに「OK」か「NG」を表示します。
▼結果を表示したいセルに式を書きます。
この場合IF関数の式は以下のような内容になります。
「もしB2(青く選択されているセル)の値が『真』(B2=”真”)ならば、『OK』を表示(”OK”)し、そうでなければ『NG』を表示(”NG”)する」
そのためNo.1の場合、値が「真」のため結果には「OK」が表示されます。
続けてNo.2の結果に式をいれてみます。
▼No.1の結果に「OK」が入りました。同じようにNo.2の結果列に式を書きます。
No.2の場合、値が「偽」のため結果のセルには「NG」が表示されます。
No.3以降も同様に式をいれた場合どのような結果が返ってくるでしょうか。
▼結果列に式をいれた結果です。C列にD列の式が入っています。
No.3以降に値が「真」の行はないため、全て結果は「NG」が表示されました。
IF関数の基本的な書き方は以上です。書き方は意外と簡単だったのでは?
実際にエクセルで使ってみると、すぐに覚えられると思います。何度か使ってみて基本の形を覚えてしまいましょう。
式を書くときのポイント!
式内で数値と関数、セル番号以外はダブルクォーテーション(“)で囲みましょう。
たとえば「= IF(B2=真, OK, NG)」と書くと「#NAME?」と表示されエラーとなります。
必ず文字列(ひらがな、カタカナ、漢字、アルファベット、記号など、数値でない文字)はダブルクォーテーションで囲んでください。
1-2.どんな風に使える?
ではIF関数の基本的な使い方を、実際のビジネスシーンで遭遇しそうな例を用いてご紹介します。
(例1)従業員が在職している場合、在職フラグ列に「1」を表示したい。※E列にF列の式が入っています。
例1の場合、退職日が入力されていないかどうかを条件に、在職フラグを判定しています。
「もし退職日が空白ならば、『1』を表示し、空白でないならば『0』を表示する」という内容です。(フラグは数値のため、式内の結果の「1」「0」にダブルクォーテーションは必要ありません。)
式を書くときのポイント!
式内で空白は「””」と書きます。
ダブルクォーテーションを連続で入力することで、セルに文字がない(空白である)ことを表します。
(例2)発注個数が0個の場合、合計計算はせずにハイフン(-)を表示したい。※F列にG列の式が入っています。
例2の場合、個数の数値をもとに合計を判定しています。
「もし個数が1個以上(0個より多い)ならば、『単価×個数』を表示し、1個もない(0個以下)ならば『ハイフン(-)』を表示する」という内容です。
2.複数条件の書き方を覚えよう
IF関数の基本的な使い方はご理解いただけたでしょうか。
実際のビジネスシーンでは、上記の例のような簡単な式ではカバーできないことのほうが多いかもしれません。
ここからはIF関数の複雑な条件指定の方法を解説します。
2-1.AND/OR/NOT関数の使い方
まずはIF関数の条件でよく使用されるAND関数、OR関数、NOT関数をご紹介します。
たとえば「もしAがBで、かつCがDならば」というような条件を書きたい場合、AND関数を使います。
このようにこれら3つの関数は、条件が2つ以上ある場合に使用される関数です。
2-1-1.AND関数
AND関数は「AかつB」を行う関数で、IF関数内では以下のように書きます。
上記は「もし[条件1が真]かつ[条件2が真]ならば、[真の結果]を表示し、条件の全てが偽、またはいずれかが偽ならば[偽の結果]を表示する」という意味です。
ポイントはAND関数の条件が全て真であるならば真の結果を返すということ。
AND関数の条件が1つでも偽であれば偽の結果が返ります。
たとえば上記で使用した例1の場合、鈴木Eさんは入社していないのに在職フラグが「1」となっています。
これでは在職フラグが正しいとは言えません。
F列の式では条件が不十分のため、AND関数を使用して条件を追加して正しい結果を導きます。
▼赤枠の在職フラグの判定がおかしいため修正したい。
この場合「入社日が空白でなければ」という情報を式に加える必要があります。
「もし入社日が空白でない かつ 退職日が空白ならば、『1』を表示し、空白でないならば『0』を表示する」という内容になりました。
これを他の行にも適用すると以下の図のようになります。
▼※E列にF列の式が入っています。
鈴木Eさんは在職フラグが「0」となり、他の従業員は入社日が入力されているため在職フラグに変化はありません。
このようにAND関数は条件を「かつ」でつなげていきます。
また関数内はAND(条件1, 条件2, 条件3, 条件4…)というように、カンマで区切っていく限り2つ以上つなげることが可能です。
2-1-2.OR関数
OR関数は「AまたはB」を行う関数で、IF関数内では以下のように書きます。
上記は「もし[条件1が真]または[条件2が真]ならば、[真の結果]を表示し、いずれも偽ならば[偽の結果]を表示する」という意味です。
ポイントはOR関数の条件のいずれかが真であるならば真の結果を返すということ。
例2を「種別列がAまたは個数が11個以上場合にのみ合計を表示し、それ以外の場合はハイフンを表示する」ように修正してみましょう。
種別列が「A」でなく、また個数が11個以上ではない品目は「みかん」の行だけです。
期待する結果はこの行の合計列だけがハイフンになることです。
▼赤枠の行の合計がハイフンになるはず。
この場合「種別がAでないならば」という情報の追加と、「個数が11個以上(10より多い)」という情報の修正を式に加える必要があります。
「もし種別が『A』または 個数が11個以上(10より多い)ならば、単価×個数を表示し、それ以外ならばハイフンを表示する」という内容になりました。
これを他の行にも適用すると以下の図のようになります。
▼※F列にG列の式が入っています。
みかんは合計がハイフンとなり、もともと個数が0個のさくらんぼ以外、他の行は条件のいずれかに該当するため合計の変化はありません。
このようにOR関数は条件を「または」でつなげていきます。
AND関数と同様に関数内はOR(条件1, 条件2, 条件3, 条件4…)というように、カンマで区切っていく限り2つ以上つなげることが可能です。
2-1-3.NOT関数
NOT関数はAND関数やOR関数とは異なり条件の否定を行う関数で、IF関数内では以下のように書きます。
上記は「もし[条件]が偽ならば、[真の結果]を表示し、真ならば[偽の結果]を表示する」という意味です。
ポイントはNOT関数の条件が偽であれば真の結果を返すということ。
条件の前に関数名を書き、カッコ内に条件を書くという形はAND関数、OR関数と同じですが、NOT関数は複数の条件を判定することはできません。
たとえばこの記事の冒頭で使用した以下の図にNOT関数を組み込んでみましょう。
▼元の表はこちら
結果の式にNOT関数を組み込みます。
「もし値が『真』でないならば、『OK』を表示し、そうでなければ『NG』を表示する」という内容になりました。
これを他の行にも適用すると以下の図のようになります。
▼※D列の式がC列に入っています。
NOT関数を条件に組み込むと、結果が反転しました。
このようにNOT関数は条件を否定します。繰り返しになりますが、AND関数やOR関数と異なり、関数内に含むことができる条件は1つだけです。
2-2.入れ子の書き方
では次に、IF関数内にIF関数を組み込む「入れ子」を解説します。
入れ子は真と偽の2つだけではなく、それ以上の結果を返すことができます。
この書き方を覚えるとIF関数の幅がぐっと広がります。
入れ子は以下のように書きます。
= IF(条件1, 真の結果1, IF(条件2, 真の結果2, 偽の結果2))
もちろんこれらを組み合わせることも可能です。
= IF(条件1, IF(条件2, 真の結果2, 偽の結果2), IF(条件3, 真の結果3, IF(条件4, 真の結果4, 偽の結果4)))というように、IF関数をつなげて様々な結果を取得できます。
たとえば以下の表の所属をもとに、A部門なら区分A、B部門なら区分B、C部門なら区分Cをいれたい場合、区分は3種類の結果が返る式を書く必要があります。
書き方は数通りありますが、ここでは単純に「A部門なら区分に『A』、B部門なら区分に『B』、C部門なら区分に『C』を返す」式を作成します。
▼区分列に式を入力します。
「もし所属が『A部門』ならば『A』を表示し、さらに所属が『B部門』ならば『B』を表示し、それ以外は『C』を表示する」という内容です。
これを他の行にも適用すると以下の図のようになります。
▼※F列にG列の式が入っています。
区分がしっかり判定されていますね。
このようにIF関数の入れ子を駆使することによって、多様な結果を得ることができます。
2-3.複数条件の書き方まとめ
AND/OR/NOT関数とIF関数の入れ子を確認してきました。IF関数の複数条件で使われる関数はご理解いただけたでしょうか。
これらを組み合わせると複雑な条件もひとつの式で表すことが可能となります。
たとえば以下の図に売値列に、以下の4点を含ませた1つの式を入れます。
- もし種別が『A』かつ個数が51個以上(50個より多い)ならば、合計の1.2倍を表示する。
- もし種別が『B』または『C』で、なおかつ個数が11個以上(10個より多い)ならば、合計の1.5倍を表示する。
- 合計がハイフンではないならば、合計の2倍を表示する。
- それ以外は合計を表示する。
▼売値列に式を入力後
「もし種別が『A』かつ個数が51個以上(50個より多い)ならば(条件1)、合計×1.2(真の結果1)を表示する。
そうでなく(偽の結果1)、もし種別が『B』または『C』で、なおかつ個数が11個以上(10個より多い)ならば(条件2)、合計×1.5(真の結果2)を表示する。
さらにそうでなく(偽の結果2)、合計がハイフンではないならば(条件3)、合計×2(真の結果3)を表示し、それ以外は合計を表示する(偽の結果3)」という内容です。
このように複雑な複数条件のIF関数も一つずつみていくと、4つのIFがつながっているだけです。
複数のIF関数を一つにまとめることも難しく感じる場合は、実現したいことをまず分割して考え、最後に1つの式にまとめていけば、あっという間に式が完成するでしょう。
3.複数の条件分岐に対応する「IFS関数」
IF関数の進化した形であるIFS関数をご紹介します。
制限はあるものの、IF関数の入れ子を簡単に実現できる便利な関数のため覚えていて損はありません。
3-1.IFS関数の使い方
IFS関数は条件と真の結果を連ねて書くことができる関数です。
以下のように書きます。
条件と真の結果が1セットで1~127セット書くことが可能です。
ポイントとしては偽の結果がなく、式は前から判定されていくため順番に気を付けることです。
優先される結果から順に書いていきましょう。
実際に式を作成してみましょう。
以下の図の結果列に、値を元に番号が振られるよう式を入力しました。
▼※C列にD列の式が入っています。
5行目の値は「A」です。
式に当てはまる条件は2つあります。
式の最後2つが当てはまりますが、結果には「4」と表示されています。
つまり判定は前から行われ、結果が返った場合は次の条件は判定されません。
そのため優先する結果を先に書いていく必要があります。
また6行目を見ていただくと、結果にエラーが表示されています。
これは値の「〇」が式内の条件に当てはまらないためです。
このようにIFS関数はIF関数の入れ子よりも簡単に複数の条件と結果を得ることができます。
条件と順番に気を付ければとても便利な関数です。
3-2.IFS関数の使えるエクセルバージョン
IFS関数が使用できるエクセルのバージョンは限定されており、以下のエクセルバージョンのみ使用が可能です。
- Office 365
- Excel 2019
- Excel 2016(※Office 365 サブスクリプションを購入している場合のみ)
- Excel Online
- Excel for Android(Phone/Tablet), iPad, iPhone
- Excel Mobile
4.まとめ
IF関数の基本と複数条件の書き方は難しかったでしょうか。
複雑な式になるほど、式の組み方は千差万別です。
しかしここまで読んでくださったならば、取得したい結果を順番に式にしていけば、自然と組み合わせることができると思います。
IF関数は本当によく使われている関数ですので、ぜひ覚えてどんどん応用してください!
コメント