【関数】既存データに対する条件判定を自動化できる「IF」の使い方
AさんAさん

売上をレポートする際、目標達成しているなら「◯」、未達なら「×」に記号を振り分ける作業がありますが、いちいち目検で判断するのが大変です・・・。
Excelでもっと楽にできる方法はありますかね?

森田森田

その場合は、関数のIFを活用すると良いですよ!
では、IFの使い方について解説していきますね。

はじめに

この記事は関数の概要を把握していることが前提です。

参考記事

関数の概要については以下の記事をご参照ください。

条件判定の結果を値で表示したい場合は「IF」が有効

実務では、既存データに対して基準値を条件に評価や判定を行う機会が多いもの。

たとえば、集計した売上金額が目標達成しているか否かを「◯」や「×」で判定する、あるいはテストの成績に応じて「A」や「B」といったランク付けを行うイメージです。

こうした作業は、人が行うと判断誤りや誤入力を起こす可能性はありますし、都度判断するのに負荷がかかります。

一方、基準値を条件に評価や判定を機械的に行うことはExcelの得意領域です。

よって、判定結果を値で表示したい場合、関数のIFを使うと良いです。
IFは「イフ」と読む。

IFを使うことで、既存データに対する条件判定の結果を値で表示できます。

参考記事

条件判定の結果を値以外で表示する方法として、条件付き書式の「アイコンセット」を活用しアイコンで表示することも可能です。
詳細は以下の記事をご参照ください。

IFの構文

IFの構文は以下の通りです。

=IF(論理式,[値が真の場合],[値が偽の場合])
論理式の結果(真または偽)に応じて、指定された値を返します。

引数名 必須 データ型 説明
論理式 論理 結果が真(TRUE)または偽(FALSE)となる論理式を指定します。
値が真の場合 すべて 「論理式」の結果が真(TRUE)の場合に返す値を指定します。
値が偽の場合 すべて 「論理式」の結果が偽(FALSE)の場合に返す値を指定します。

引数「値が真の場合」・「値が偽の場合」は省略可能だが、両方省略は不可(実務上は両方設定することが一般的)。
引数「値が真の場合」・「値が偽の場合」に値や数式を指定しない場合、「0」が表示。
IFは最大64まで入れ子(ネスト)にすることが可能(実務上は多くとも5つ程度に留めることを推奨)。

【参考】引数「論理式」は「比較演算子」を活用する

引数「論理式」は「D4>=100%」のような式を設定する必要があります。

こうした式のことを「論理式」と言い、式の結果は「TRUE」か「FALSE」のいずれか一方の値を返します。
論理式の結果となる「TRUE」と「FALSE」は「論理値」と呼ぶ。

この論理式はYES/NOの質問だと思うと理解しやすいと思います。

たとえば、「D4>=100%」であれば、「D4セルの値は100%以上か?」を質問しているのと同じ意味です。

この質問に対してYESなら「TRUE」を、NOなら「FALSE」を返すイメージですね。

なお、この論理式に必須な要素が「比較演算子」となります(「D4>=100%」なら「>=」の部分)。

比較演算子の種類は以下の通りです。

演算子 意味 説明 例(=の後)
=(等号) 等しい 左辺と右辺が等しい A1=B1
<>(不等号) 等しくない 左辺と右辺が等しくない A1<>B1
>(大なり記号) より大きい(超) 左辺が右辺より大きい A1>B1
<(小なり記号) より小さい(未満) 左辺が右辺より小さい A1<B1
>=(より大か等しい記号) 以上 左辺が右辺以上 A1>=B1
<=(より小か等しい記号) 以下 左辺が右辺以下 A1<=B1

基本的には数学と同じルールですが、「>=」等の「=」の位置を間違えるとエラーになるので、ご注意ください。

また、「<>」は数学では扱わなかったルールのため、この機会に覚えましょう。

【参考】IFは「論理関数」

あくまで参考情報となりますが、IFはリボン「数式」タブの関数ライブラリの「論理」に分類されています。

実際にIFを活用する際は、以下で解説しているように直接入力で挿入していきましょう。

IFの使用結果イメージ

IFを使い、条件判定するイメージは以下の通りです。

今回は「達成率(②/①)」列を対象に100%以上なら「◯」、それ以外は「×」で評価しました。

上記のように計算列としてIFを使う場合、1レコードにつき1つの関数を使います。
「計算列」とは、数値/日付/時刻の列の値を計算した新たな列のこと。

ベースの数式をセットしたら、他のセルへペーストしましょう。

なお、今回は各引数で参照している評価基準のセル(H4G4G5)は全レコードで参照を固定するため、絶対参照にしています。

参考記事

絶対参照/相対参照の詳細については以下の記事をご参照ください。

【参考】条件はワークシート上に凡例として掲載することがおすすめ

上記の数式「=IF(D4>=$H$4,$G$4,$G$5)」は「=IF(D4>=100%,””,”×”)のように定数で設定しても同じ効果です。

しかし、論理式の基準値やTRUE/FALSEの値を変更したい場合、11つの数式の変更が必要となり、メンテナンスが大変になります。

「置換」で一括対応でも良いですが、よりメンテナンスを楽にするなら、「評価基準」のようにワークシート上に条件を凡例として掲載することがおすすめです。

このように、数式の外に条件をまとめておくことで、論理式の基準値やTRUE/FALSEの値を変更したい場合、該当セルの値を更新するのみで、すべてのIFの数式へ変更内容を一括で反映できます。

【参考】引数「値が真の場合」・「値が偽の場合」は数式も設定可能

IFの使い方としてオーソドックスなのは、引数「値が真の場合」・「値が偽の場合」に値を指定することですが、実は数式もセットできます。

これにより、条件に応じて計算や処理を変えるといったことも可能です。

たとえば、「売上」と「利益」は目標を上回っていれば良いので「UP」、「原価」は目標を下回っていれば良いので「DOWN」というフラグをB列に用意し、それを基準に「達成率」列の計算をIFで可変にしたものが次の内容です。

B列が「UP」であれば「実績÷目標」、それ以外は「目標÷実績」と、条件に応じて数式が変わります。

これで「評価」列の◯/×判定は科目ごとの評価基準が変わっても対応できるようになりました。

今回は簡単な四則演算を例にしましたが、オーソドックスなのは「値が偽の場合」に新たなIFをネストし、条件分岐の種類を増やすことです。

他の関数も発想次第で、計算/処理を可変にしたい場合やエラー回避等で活用できるので、いろいろ実務でお試しください。

IFの数式の挿入手順

上記の結果を得るための手順は以下の通りです。

  1. 関数を挿入するセルを選択
    ※今回はE4セル
  2. =i」等と入力
  3. サジェストから「IF」を選択し、「Tab」キーで確定
  4. 論理式を入力
    ※今回は「D4>=$H$4
  5. コンマ(,)を入力
  6. 「値が真の場合」の値を入力 or セルを選択
    ※今回はG4セル(絶対参照)
  7. コンマ(,)を入力
  8. 「値が偽の場合」の値を入力 or セルを選択
    ※今回はG5セル(絶対参照)
  9. Enter」キーで確定
  10. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はE4~E5セルへペースト

手順②の際にIMEを半角英数モードにすること。
テーブルの場合、手順⑩は不要(全レコードへ数式が自動的にコピーされる)。

【応用】IFの困りごと「あるある」事例5

IFに慣れてくると、実務で遭遇する困りごとの「あるある」が大きく5つあります。

  • IFの条件分岐の種類を増やしたい!
  • 複数のIFをネストした数式が読みにくい・・・。
  • IFの論理式をAND条件にしたい!
  • IFの論理式をOR条件にしたい!
  • IFの数式がなぜかエラーになってしまう・・・。

実際に実務で困った際は以下の記事もご参照ください。

参考記事


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

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

サンプルファイル_ワークシート関数_IF.xlsx

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

ブックを開いたら、次の手順を実施してください。(今までの解説のまとめです)

  1. 関数を挿入するセルを選択
    ※今回はE4セル
  2. =i」等と入力
  3. サジェストから「IF」を選択し、「Tab」キーで確定
  4. 論理式を入力
    ※今回は「D4>=$H$4
  5. コンマ(,)を入力
  6. 「値が真の場合」の値を入力 or セルを選択
    ※今回はG4セル(絶対参照)
  7. コンマ(,)を入力
  8. 「値が偽の場合」の値を入力 or セルを選択
    ※今回はG5セル(絶対参照)
  9. Enter」キーで確定
  10. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はE4~E5セルへペースト

本記事の解説と同じ結果になればOKです!

さいごに

いかがでしたでしょうか?

IFは既存データに対する条件判定を自動化するのに役立つ関数の一つです。

また、IFは「組み合わせのために存在する関数」と言っても過言ではないほど、複数の関数といっしょに使うことで真価を発揮し、実務での利用頻度も高いので、マストで覚えることを強くおすすめします。

なお、IF以外にもExcel関数の各種テクニックを拙著で解説していますので、こちらも参考にしてみてください。



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

森田森田

IFとセットで覚えておいた方が良い関数は、論理式をAND条件にできる「AND」とOR条件にできる「OR」です。
組み合わせることで、より高度な条件判定が可能になりますよ。
また、IFの考え方は、実はエクセルに限らずあらゆるプログラミング言語で共通です。
ゆくゆくVBAなどのプログラミングも学びたい方は、早めに理解しておくとお得です!