実務で使えるIF関数【複数条件も空白にも対応!】

みなさん、こんにちはケンケンです。

 

今回は、IF関数について解説していきます。

みなさんは、IF関数を使っていますか?

余裕で使えてるよ。という方はこの記事を読む必要はありません。

 

当記事は、IF関数使ってみたいけどよく分からない。とか、シンプルな方法は分かるけど複数条件になると「?」になってしまう。なんて方を対象としています。

また、IF関数はVBAを使う時も重要な考え方になり、これからの実務で大いに活躍してくれる関数ですので、しっかり勉強していきましょう。

IF関数を使えるようになると実務での幅が広がります。

その他の関数と組み合わせることによって、応用は無限ですので、まずIF関数を覚えて他の関数とコラボできないか考えてみることをお勧めします。

それでは、やっていきましょう。

 

IF関数の基礎

IF関数は、条件に従って処理を変えてくれる関数で、複数の条件を指定することもできる便利な関数です。

ではまず、関数を使う前提となる表を作って行きます。

上記のような表を作ってみました。

では、関数を使っていろいろ楽しんでみましょう。

最初に、IF関数の引数を見ていきます。

D列に計算列を設けてD2セルに数式を入力していきます。

 

いつものように関数をD2セルに入力しましょう。関数を簡単に入力する方法はこちら

IF(論理式,[値が真の場合],[値が偽の場合])

引数が3つありますね。

今回は括弧の中の任意の引数も活躍させます

簡単に関数の使命を言葉に変換してみると、

ある条件を満たした場合と満たしてない場合で実行する内容を選択してユーザに返す

ですかね。

では、条件等の入力方法を解説していきます。

条件は、得点が60点以上なら合格、60点未満なら不合格としましょう。

実際に手を動かしてみましょう。

D2セルに「IF(C2>=60,”合格”,”不合格”)」と入力しましょう。

すると、D2セルに「不合格」と表示されますね。

そこまで出来たら、D2セルをD11までコピーしましょう。コピーの簡単な方法は以下の画像をご覧ください。

上記のようになっていれば成功です。

点数によって合格・不合格の結果が変わりましたね。

これがもっともシンプルなIF関数の使い方です。

 

条件が複数あるとき

シンプルな使い方が分かったところで、次は条件が複数あるときの方法をご紹介します。

 

条件が複数あるときはネストという方法を使います。

ネストとは、入れ子のことです。

入れ子とは、「○○でも△△でも××でもない場合は□□しなさい」というように条件が複雑になったものをひとつに括って処理しましょう、といった感じのものです。

言葉で表現するのは難しいので実際に例をみていただきます。

以下のように条件別に表記を変えていきます。

  • 80点以上→大変よくできました
  • 60点以上79点以下→よくできました
  • 60点未満→がんばろう

 

ネストを理解するには、まず分解して考えるのが分かりやすいです。

それでは、分解してみていきましょう。

最初に80点以上とそれ以外で条件を分けます。

E2セルに「IF(C2>=80,”大変よくできました”,”その他”)」と入力します。

「その他」の部分は特に何でもいいです。

E2に入力した数式をE11までコピーすると上記のようになりますね。

80点以上は「大変よくできました」、80点未満は「その他」と表示されましたね。

次は、60点以上とそれ以下で条件を分けましょう。

F2セルに「IF(C2>=60,”よくできました”,”がんばろう”)」と入力します。

できたら、F11までコピーします。

すると、60点以上と未満で条件が分岐しましたね。

ここまでできたら、当初の条件を思い出してください。

  • 80点以上→大変よくできました
  • 60点以上79点以下→よくできました
  • 60点未満→がんばろう

でしたね。

これを実現するためには、E列とF列で入力した数式を合算させる必要があります。

これをネストと言います。

まず画像をご覧ください。

G2セルに「IF(C2>=80,”大変よくできました”,IF(C2>=60,”よくできました”,”がんばろう”))」と入力してください。

それをG11までコピーすると目的の条件分岐ができます

この数式を分解すると、E列とF列の数式に分けられますね。

つまり、

E列の数式 (IF(C2>=80,”大変よくできました”,“その他”) )の「その他」の部分に

F列の数式 IF(C2>=60,”よくできました”,”がんばろう”) を入れ込むことによって、

一回で複数の条件を満たすことができるようになったのです。

これがネストです。

分解してひとつずつ処理していくと分かりやすいですね。

このように、ネストを使っても分解して考えると一見複雑な数式も理解しやすくなりますので、

もし、これからネストを使ったりネストされている数式を見た際に、分解する方法を思い出して活用してください。

 

それでは、ここで皆さんに質問です。

もし、G2に入力した数式の80と60の数字を入れ替えたら結果はどうなるでしょうか。

答えはみなさんで確認して、結果を考えてみてください

 

空白を見つけよう

お気づきかと思いますが、上記の表には空白になっている部分がありますね。

データ管理上こういう表はよくありませんが、しばしば見受けられます。

これをIF関数を使ってセルが空白か否か判断してみましょう。

H2セルに「IF(B2=””,”入力してください”,”入力済”)」と入力してH11までコピーしてください。

空白がある行に対応した部分のみ「入力してください」という文字列が表示されましたね。

数式の「B2=”” 」の部分を解説すると、「B2セルが空白だったら」という条件式になります。

ダブルクォーテーションで囲むとエクセルは空白と認識します。

B5とB8セルは空白であるという条件を満たしたため、第二引数で指定した「入力してください」という文字列が返されることになります。

 

このように、IF関数を使うことによって、入力漏れを防ぐことも可能になります。

 

実務で使える応用技

さらに、実務で使える応用技もご紹介します。

この技は、僕も実務でよく使うものです。

具体的には、

あらかじめ数や金額などの合計値が決まっているデータの入力が正しく行われているかを確認するために使います。

詳しく画像付きで解説します。

例えば、今回使った例でお話しすると、

前提条件として、テストを受けた人数は11人である。とあらかじめ分かっていたとします。

 

そこで、うまくIF関数を使うと、ちゃんと11人分のデータを入力したか自動で判定してくれる機能を作ることができます。

上記をご覧ください。

赤枠で囲った部分を追加しています。

具体的には以下の通りです。

  • 「データの個数」はA列の数を数えます。つまり、入力した人数です。
  • 「入力すべきデータ数」にはテストを受けた人数を入力します。つまり、あらかじめ分かっている数字(11人)です。
  • 「差異」にIF関数を用いて入力過不足を計算し結果を返します。

 

では、解説していきます。

まずデータの個数ですが、ここにはCOUNTA関数を用いて、今何人分データが入っているか計算します。

 上記のようにD2セルに数式を入力してください。

ちなみに、数式最後の「-1」はA1セルの氏名をカウントしないためです

COUNTA関数に自信がない方はこちらをご覧ください。

さて、結果は「10」が返ってきましたね。

つまり、必要なデータ数に達していないのですが、それをF2セルにIF関数を使って通知する仕掛けを作って行きます。

具体的には、

 F2セルに上記赤枠のように入力してください。

すると、D2とE2の数値が合わないのでOKになりませんでした

これは、入力したデータがあるべきデータ数と合致していない、ということなので過不足があることが分かります。

実務では大変重要なことで、こういう仕掛けを打っておかないとデータが足りないこと自体に気づかないことも大いにあり得ます。

そんなことがないように、IF関数を使って自動判定できるように仕掛けを作っておきましょう。

そして、一人分のデータを追加するとOKになることをちゃんと確認しておいてください。

 

以上が実務で使える技です。

いかがでしたか、IF関数は汎用性が最も高い関数と言っても過言ではないので、実務の世界でどんどん活用してください。

結果として、みなさんのエクセル技術のみならず、あらゆる業務の考え方にも影響するはずです

僕も、IF関数を使うようになってから、業務全体を意識してマクロの視点で捉えることができるようになり、ミスが減りました。

 

まとめ

今回は、IF関数について基本から実務で使える応用までをご紹介しました。

IF関数は、エクセルを使いこなすために最も重要な関数のひとつと言えますので、しっかり復習しておいてください。VBAを勉強するうえでも、大いに役立ちます。

 

それでは、みなさんが素敵なエクセルライフを送れるよう願っています。