【エクセル初心者向け】データの条件分岐を自動化してストレスフリー!IF関数の使い方
AさんAさん

最近エクセルへ入力する際、社内でいろいろルールが増えてきて、いちいち自分の頭で判断するのが大変です。何か良い方法ないですかね??

森田森田

条件によって入力する内容がきちんとルール化されているのであれば、IF関数がおすすめですよ。
IF関数を設定すれば、自分の頭でいちいち判断しなくてOKなので効率良いですし、何よりもストレスフリーですよ!
では、詳細を解説していきますね。

はじめに

本題に入る前に、この記事がおすすめな人を挙げてみます。

  • 条件に応じて入力内容が変わる作業が多い人
  • エクセルを扱う機会がある人
  • 事務職を目指している人

ちなみに、最低限「四則演算やSUM関数が使えている」想定での記事となります。
※自信がない方はこちらの記事で学んでください。
【超初心者向け】Excel(エクセル)の「数式」とは

IF関数とは?

読み方はイフ関数と読みます。関数名の”IF”は「もしも~」を意味する英単語から来ていると推測されます。(Microsoftの公式見解がないので)

数式ライブラリ上のカテゴリは「論理」です。

IF関数の具体的な機能は、英単語と同じく「もしも~の場合」という条件を設定し、その条件に該当した場合と該当しない場合にどの値を表示させるかを設定することができます。

一言でいえば、「指定した条件に合わせてセルの値を変えてくれる関数」といえます。

難易度は単体なら「初級」レベルだが、組み合わせて使うなら「中級」レベル

実はIF関数は人によって評価が分かれる関数かもしれません。

単体でみると、関数の中での難易度は初級レベルです。

参考までにエクセルのもっとも有名な資格であるMOS(マイクロソフトオフィススペシャリスト)は一般レベルの「スタンダード」と上級レベルの「エキスパート」の2つの難易度がありますが、一般レベルの「スタンダード」から出題されます。

ただし、IF関数は他の関数と組み合わせて使うことが多いため、複数の関数を同じ数式で扱えないと、IF関数の真の力は発揮できません。

そのことを加味すると、習得難易度はだいたい真ん中ぐらいのレベルといえますね。

ちなみに、エクセルを使う職場では「IF関数を使えるかどうか」で、おおよそのエクセルスキルを図る物差しになっています。

事実、エクセルを使う事務の仕事の求人募集を探してみると、募集要項の中に「VLOOKUP関数とIF関数が使えること」が条件として掲載されていることがけっこうあります。

私も事務の職場をマネジメントしていた際は、VLOOKUP関数とIF関数を使えるかどうかを採用基準の目安にしていました。

IF関数が活躍する条件分岐の3ケース

では、実際にこのIF関数が活躍するシーンを確認していきましょう。

それは「データの条件分岐」です。

「データの条件分岐」といっても難しく考える必要はありません。

たとえば、天気によって傘がいる・いらないも条件分岐です。
雨なら傘がないとびしょ濡れですので、持っていくと自分の脳内で判断しますね。

この判断基準をエクセルで表現するのにIF関数を用いるというイメージです。
実際に表現すると、以下のようになります。

上記は、A2セルが雨なら"いる"、それ以外は"いらない"という判断をIF関数の数式にしたものですね。(細かい構造は後ほど説明します)

このように、最初にIF関数を用いて条件に応じて表示する値を設定しておくと、いちいち頭で考えて入力する内容を変える、といった作業は不要になるのでおすすめですよ。

IF関数を実務で使う際、大別して以下の3つの条件分岐に役立ちます。

【ケース1】条件に応じて値を変える

一番オーソドックスな使い方ですね。

先ほどの「天気によって傘がいる・いらないの場合」と同じケースですね。

IF関数に慣れるまでは、ひらすらこの使い方を反復すると良いですよ!

なお、本記事では、こちらのケースの練習をするためのサンプルファイルを用意しています。

【ケース2】条件に応じて計算を変える

続いては、ちょっと難易度が上がりますが条件に応じて計算を変えるというケースです。

こちらは、IF関数の条件に応じて、数式や関数を活用するという中級者向けな内容ですね。

具体例として、目標値に対しての実績の達成率を算出したい場合などが挙げられます。

たとえば、「売上」と「利益」は目標値を上回っていれば良いもの、「原価」は目標値を下回っていれば良いものとすると、達成率を計算する式を変えた方がしっくりくる場合がありますね。

わかりやすいように、それぞれ「UP」「DOWN」というように、目標値に対して実績がどうなっていれば良いかをB列にフラグを立て、達成率を示すE列はIF関数で条件分岐するように設定してみたのが次の内容です。

B列が「UP」であれば「実績÷目標値」の数式、それ以外は「目標値÷実績」と、条件に応じて計算が変わるようにしたので、達成率のE列を見るだけで「原価」が目標値を下回っていることがわかりますね。

このように、条件に応じて計算を変えたい場合にIF関数は有効なんです。

なお、表現として「計算」としていますが、計算以外にも関数で行なうことができる処理全般を設定することが可能ですよ。

その他の具体例は、別記事で順次解説していく予定です。

【ケース3】エラー回避

最後ですが、意外と使用頻度が高いケースですが、他の関数を使っている中で、何かしらのエラーが表示されてしまう場合に、そのエラー表示を回避することを指します。

関数の引数となるデータを入力する前など、エラー表示になってしまうケースは多いです。

先ほどの【ケース2】のサンプルでいえば、「実績」が未入力だと、E3セルの数式がエラーになってしまいます。

このエラー表示を隠すために、もう1つIF関数を用いるとエラー表示を回避させることができます。

こちらは、やや難しいかもしれませんが、IF関数の中にIF関数を入れ子状にすることを「ネストする」と表現します。

この方法以外にもエラー回避する方法は複数ありますので、詳細は別記事で順次解説していく予定です。

それでは、IF関数の活躍するケースを理解したところで、実際にIF関数を使っていくために必要な知識を学んでいきましょう!

IF関数の構文を理解しよう!

IF関数を記述する際の構文は次のとおりです。

※引数名を[]で囲っているものは省略可能

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

引数

引数名 必須 データ型 説明
論理式 論理値 判断基準となる条件を指定します。
たとえば、”A4セルは○ですか?”というようなYES/NOでできる質問を設定するイメージです。
YES/NOがエクセルでいうTRUE/FALSEといえます。
真の場合
(しんのばあい)
どの型でも可 論理式の結果が真(TRUE)の場合に返す値を指定します。
”A4セルは○ですか?”という質問にYESの場合に設定しておく値といえます。
※未指定の場合、”0”が返ります。
偽の場合
(ぎのばあい)
どの型でも可 論理式の結果が偽(FALSE)の場合に返す値を指定します。
”A4セルは○ですか?”という質問にNOの場合に設定しておく値といえます。
※未指定の場合、”0”が返ります。

なお、「データ型」とは、その引数に指定できるデータの形式を指します。

指定外のデータ形式を指定すると、関数の戻り値(返り値)はエラーとなりますのでご注意ください。

この「データ型」を把握していると、不要なエラーを回避したり、他の関数と組み合わせる際に役立ちますよ。

他の関数とどう組み合わせていくかは別記事でご紹介していきますね。

ちなみに、IF関数自体の戻り値(返り値)は、引数「真の場合」「偽の場合」のいずれかのデータの形式に準じますので、文字列や数値、日付/時刻など、どのデータ型になるかはケースバイケースとなります。

引数「論理式」を設定するためには「比較演算子」の理解が必要!

IF関数の要点は引数「論理式」できちんと条件を表現できるかどうかです。

本記事でもサンプルでさらっとお見せしてきた「A2="雨"」や「B2="UP"」の部分ですね。

“A2”や"B2”などのセル番地(左辺)と”雨”と”UP”といった「定数」(右辺)の間に”=”[イコール]があるのはお気づきでしょうか?

この”=”[イコール]が比較演算子のひとつになります。

他にも比較演算子は複数ありますが、いずれも算数・数学で見慣れた記号のはずです。("<>"は見慣れていないかもですが)

演算子 読み方 説明
= 等号 左辺と右辺が等しい A1=B1
> より大記号
(だいなり)
左辺が右辺よりも大きい A1>B1
< より小記号
(しょうなり)
左辺が右辺よりも小さい A1<B1
>= より大か等しい記号
(だいなりいこーる)
左辺が右辺以上である A1>=B1
<= より小か等しい記号
(しょうなりいこーる)
左辺が右辺以下である A1<=B1
<> 不等号 左辺と右辺が等しくない A1<>B1

右辺と左辺の間に上記の比較演算子を用いて、ご自身で設定したい条件式をつくれば良いのです。

慣れないうちは大変かもですが、何回もいろいろな式をつくってみると自ずと感覚的に理解できてきますよ。

ちなみに、”>”や”<”は混乱しやすいですが、パックマンみたいに口が空いている方が大きいということになりますので迷ったら思い出してください。

サンプルファイルで練習しよう!

では、実際にIF関数を使ってみましょう!

サンプルの条件

今回の題材は次のとおりです。

「合否判定」というシートに「合格点」・「得点」・「合否」という項目があります。

「合格点」は80点のため、A2セルに”80”の値が入っており、「得点」は今回79点だったので、B2セルに”79”の値が入っています。

上記の場合、合格なのか不合格なのかの「合否」をC2セルへIF関数の数式を入れてみましょう。

実際に操作しよう!

可能であれば、以下のサンプルファイルをダウンロードして実際に操作してみてください。

サンプルファイル_IF関数
※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)

ファイルを開いたら次の手順を実施してください。

  1. 「合否」シートを選択
  2. C2セルへ「=IF(B2>=A2,"合格","不合格")」を入力
    ※赤字の部分をコピーして貼り付けてください。

問題なく”不合格”という値がC2セルへ表示されたらOKです!

B2セルの値を変えてみて、C2セルの値がどう変わるかもいろいろ試してみてくださいね。

もし、表や数式を加工してしまった場合は、上記手順を実施済みの「合否 (関数あり)」シートもサンプルファイル内に用意していますので、必要に応じてご活用くださいね。

IF関数の仕組みを理解しよう!

なんとなくIF関数の機能がイメージできましたか?

ここで、IF関数が裏側でどういう仕組みなのかも、きちんと理解しておきましょう。

【STEP1】引数「論理式」の結果が”TRUE”なのか”FALSE”なのか判定

エクセル側で数式中の引数「論理式」の結果、”TRUE”なのか”FALSE”なのか判定します。

今回の例では、「B2>=A2」でしたが、セルの値を代入すると「79>=80」となり、残念ながら”79”は”80”よりも小さい数値なので条件式に当てはまらないため、結果は”FALSE”となります。

【STEP2】STEP1の結果に応じた値を表示

続いて、エクセル側でSTEP1の結果に基づき、表示される値が変わります。

結果が”TRUE”なら引数「真の場合」の値が、”FALSE”なら引数「偽の場合」の値になるということです。

今回の例では、結果が”FALSE”なので、引数「偽の場合」に設定していた”不合格”という値がC2セルにセットしたIF関数の戻り値(返り値)になるわけですね。

IF関数に慣れてきたら・・・

上記の基本的な使い方が十分にできるようになったら必要に応じてご覧ください。

以下の2つの記事の内容に対応できるようなったらIF関数マスターと言っても過言ではありませんよ(笑)

IF関数の困りごとあるある

IF関数のエラー対応まとめ

さいごに

IF関数はまずは単体で使いこなせるように、本記事を参照しながら反復練習して、ぜひマスターしてほしい関数ですね。

なぜなら、IF関数は単体でももちろん便利ですが、別の関数と組み合わせて使うことで、さまざまシチュエーションで活躍するポテンシャルを秘めているからです。

IF関数は「組み合わせのために存在する関数」と言っても過言ではないほど、複数の関数といっしょに使うことで真価を発揮するいぶし銀な万能選手。

私も実務で使用する頻度は全関数の中でも1・2位を争うほどです。

ただし、難点は自由度が高い分、使いどころに個々のセンスや力量がもろに出てしまうところですね。

よって、繰り返しになりますが、まずはIF関数単体をマスターすることを優先し、実際の作業で使い倒してください。

それで物足りなくなった人には、さらにIF関数を便利に使うための応用テクニックを私の書籍で紹介しているので、こちらもご参考にしていただければと思います。

▼IF関数を基本から応用まで体系的に学びたい方向け

▼IF関数の応用テクニックに加えて、その他VLOOKUP関数なども学びたい方向け

ご参考になれば幸いですm(_ _)m

森田森田

IF関数の考え方は、実はエクセルに限らずあらゆるプログラミング言語で共通です。
ゆくゆくVBAなどのプログラミングも学びたい方は、早めに理解しておくとお得ですよ。
もちろん、プログラミング以外でも、ちゃんとIF関数の数式などに条件を言語化できるようになると、ロジカルな思考方法も身につきやすいという副次的な効果もあるので、ビジネスパーソンはぜひ理解し、使い倒してほしい関数ですね。