
Microsoft Excel(以下、Excel)で使われるIF関数は、条件を指定できる便利な関数です。知名度のある関数ですが、ちゃんと使える人は意外と多くありません。
そこで今回は、「IF関数の仕組みは知っているけど、あまり使ったことがない」「IF関数は使えるけど、条件が少し複雑になると混乱する」などのお悩みを抱えている方向けに、IF関数の使い方をわかりやすく解説します。
その他、Excel(エクセル)で重要な関数一覧はこちらからチェック
ExcelのIF関数とは?

Excel(エクセル)のIF関数とは、ある値と期待値を論理的に比較する関数です。IF関数を使えば、設定した条件に基づき、値や表示を変化させられます。
IF関数の基本型は、以下の通りです。
この式をExcelで該当するセルに入力するだけで、IF関数を簡単に利用できます。
IF関数の活用例
IF関数は、様々な場面で活用できる便利な関数です。ここで、ビジネスにおける活用例を2つ紹介します。
活用例1 売上の「達成」「未達成」を判断する
IF関数を活用すれば、以下のように指定した条件(目標)に従って売上の「達成」「未達成」を判断できます。

IF関数[=IF(B2>=1000,”目標達成”,”未達成”)]を入力することにより、月商が目標金額(1000万円)以上の場合は「目標達成」、目標金額(1000万円)未満の場合は「未達成」と自動で表示できるようになりました。
活用例2 通勤距離に応じて交通費支給額を計算する
通勤距離に応じて会社で1か月の交通費支給額を決める場合も、Excelを使えば以下のように自動で計算できます。

IF関数を利用することで、距離に応じて金額が自動で変更されるようになりました。
活用例3 キャンペーン対象商品の割引後の価格を計算する
キャンペーンを実施するときのように、販売価格が一定条件を超えたときにのみ割引を適用するケースでも、IF関数が役に立ちます。

上の図では、IF関数を使って販売価格が1万円以上か未満かによってD列に「◯」「×」を表示し、「◯」の場合に10%割引した価格をE列に表示しています。例えば、No.1では「15,000」円が割引で「13,500」円になっているのに対し、No.6では「9,900」円(<10,000)のため、割引後価格もそのまま「9,900」円です。
IF関数の使い方(基本編)
ここから、まずはIF関数の使い方の基本編を紹介します。

かっこ内に「論理式」「真の場合の値」「偽の場合の値」の3要素を入れることが、IF関数の基本的な使い方です。
「論理式」では、「<(しょうなり)」「>(だいなり)」「=(イコール)」を使って条件を指定します。条件に合っている場合に表示されるのが「真の場合の値」、条件を満たさない場合に表示されるのが「偽の場合の値」です。
具体例を以下にまとめました。
「A1<1」:A1セルが1より小さい(未満)
「A1<=1」:A1セルが1、もしくは1より小さい(以下)
「A1>1」:A1セルが1より大きい
「A1>=1」:A1セルが1、もしくは1より大きい(以上)
「A1<>1」:A1セルが1でない
IF関数を使うにあたって注意すべき点は、「論理式」「真の場合の値」「偽の場合の値」の3つの要素の間を「,(カンマ)」で区切ることです。また、「真の場合の値」「偽の場合の値」を文字列にしたい場合は、「“ ”」(半角ダブルクオーテーション)で挟みます(例:“ 夏日 ”)。値が数値の場合は、そのまま入力して構いません。
IF関数の使い方(実践編)
IF関数の使い方の基本を押さえておけば、条件に従った判定結果を自動で表示できます。今回は、「どの日が夏日だったのかを表示させる」例で実践してみましょう。
夏日は25°C以上なので、セルC2に入力するIF関数の条件式は以下の通りです。
この条件式は、気温が25℃以上の場合に「夏日」、25℃未満の場合に「―」と表示するという意味です。
以下のケースでは、7月1日の気温が25℃未満(20℃)のため、セルC2には「―」と表示されました。また、7月2日の気温は25℃以上(25℃)のため、セルC3に[=IF(B3>=25,"夏日","―")]と入力すると、「夏日」と表示されます。

IF関数に計算式を入れる方法
IF関数には、文字列だけでなく計算式も入れられます。方法は、「値が真の場合」「値が偽の場合」に該当する部分に、そのまま計算式を入れるだけです(例:=IF(D3 = "○", C3 * 0.9, C3))。
「IF関数の使い方(実践編)」では、「値が真の場合」に文字列の「夏日」、「値が偽の場合」に文字列の「―」を入れる方法を紹介しました。しかし、特定の条件のもとで割引を実施するケースや、商品によって消費税率を変えるケースのように、文字列の表示だけでは対応しきれないことがあるでしょう。
以下では、セルE4に[=IF(D4="食品",C4*1.08,C4*1.1)](※)を入力しています。おにぎりは「食品」に該当するため、税込価格(セルE4)には消費税率8%を適用した「162」円(150*1.08)が表示されました。一方、書籍は「食品」以外のため、[=IF(D5="食品",C5*1.08,C5*1.1)]を入力したセルE5には「2,420」円が表示されています(2,200*1.1)。

※[=IF(D4="食品",C4*1.08,C4*1.1)]は、よりシンプルに[=C4*IF(D4="食品",1.08,1.1)]でも記述可能
IF関数のエラー値が表示された時の対処法
IF関数を使用する際に、エラー値が表示がされることもあります。ここで、IF関数使用時によく発生する4種類のエラーとその原因について解説します。
セルに「#VALUE!」と表示される場合
「#VALUE!」は、「入力した数式に問題があるか、参照先のセルに問題がある」ことを示したエラー値です。
IF関数で「#VALUE!」となっているセルを参照すると、当然IF関数の結果も「#VALUE!」と表示されます。IF関数の返り値が#VALUE!となる場合は、参照先にエラーが生じていないかを確認しましょう。
また、参照先で「内容は正しいけど、便宜上エラーにしている場合」は、IFERROR関数を使い「エラー」「調査中」「未入力」などと表示させる方法もおすすめです。
<関連記事>【図解】Excelのエラー表示の徹底対策!エラーの種類と原因も解説
セルの内容が 0 (ゼロ)になる場合
「=IF(A1>6,,)」のように、IF関数の式で「真の場合の値」と「偽の場合の値」が指定されていないと「0(ゼロ)」が表示されます。値を正しく返すには、真と偽の場合の因数の指定が必要です。
セルに「#NAME?」と表示される場合
「#NAME?」と表示される主な原因はスペルミスです。例えば、「=IF(○○…)」とすべきところを「=IG(○○…)」としてしまうと、セルの内容が「#NAME?」と表示されます。
セルに「#REF!」と表示される場合
「#REF!」は、数式が無効なセルを参照している場合に表示されるエラー値です。
例えば、特定のセルに[=IF(B2>=1000,”目標達成”,”未達成”)]と入力してから誤ってB列を削除すると、「#REF!」と表示されます。B列削除に伴い、参照にできるセル(今回のケースではセルB2)がなくなってしまったことが原因です。
IF関数の使い方(応用編)

ここから、IF関数の使い方の応用編を紹介します。
式を入力せずIF関数を利用する方法
ExcelでIF関数を入力するのが面倒な場合、直接入力せずに「数式」タブ→「関数の挿入」からでも利用できます。「関数の挿入」 のウィンドウが現れたら、「IF」を選択して「OK」をクリックしましょう。

その後、IF関数に必要な項目が表示されるので、それぞれに必要な情報を入力します。実践編で使った例(夏日の表示)の場合、以下のように入力します。
値が真の場合:"夏日"
値が偽の場合:"―"

指定したい条件をそれぞれ入力してから、「OK」をクリックすれば、IF関数が適用されます。
IF関数の結果の値を空白にする方法

IF関数で返す結果の値を空白にしたい場合は、半角ダブルクオーテーションを2つ入力します。今まで、夏日ではない日(25℃以下の日)を「―」で表示していましたが、空白にする場合は以下のように入力します。
IF関数で複数条件を指定する方法
IF関数を他の関数と組み合わせたり、IF関数を複数回使ったりすることで、複数条件も指定可能です。ここから、それぞれの方法を解説します。
AND・OR関数と組み合わせる
IF関数とAND関数・OR関数を組み合わせることで、複雑な条件を指定できます。
AND関数もOR関数も、特定の条件が満たされているかを判断するための式です。AND関数は「すべての条件」、OR関数は「いずれかの条件」を満たしているかをチェックする点で異なります。
それぞれの関数の使い方は以下の通りです。
式:AND(条件1,条件2,条件3,…)
意味:条件1かつ、条件2かつ、条件3かつ…
式:OR(条件1,条件2,条件3,…)
意味:条件1または、条件2または、条件3または…
例えば、「気温が25℃未満の土曜日・日曜日」を「行楽日和」と定義したい場合は、「気温25℃未満」という条件と「土曜日・日曜日」という条件をANDでつなぎます。
さらに「土曜日・日曜日」はORを使って以下のように表現しましょう。

上記のようにANDとORを駆使すれば、より高度な条件式をつくることができます。少々複雑ですが、一つひとつの意味を読み解いていけば決して難しくないので、少しずつ慣れていきましょう。
MID関数とLEFT関数を組み合わせる
IF関数とMID関数やLEFT関数を組み合わせることで、より複雑な条件を指定できます。MID関数は、文字列の途中から数えて指定の文字数分を抜き出す関数、LEFT関数は文字列の左から数えて指定の文字数分を抜き出す関数です。
LEFT関数・MID関数の使い方の基本を以下にまとめました。

Excelで入力したセルの中から、一部の文字列を取り出したいこともあるでしょう。「都道府県」と「市」が記載されている以下の例で、IF関数だけを使って都道府県名のみを抽出することは困難です。

そこで、IF関数にMID関数やLEFT関数と組み合わせれば、住所の文字数がバラバラでも簡単に都道府県を抽出できます。
今回は、=IF(MID(A1,4,1)=”県”,LEFT(A1,4),LEFT(A1,3))と入力しましょう。

日本の都道府県は、神奈川県・和歌山県のように4文字の「県」(パターン1)か、北海道・青森県・東京都・大阪府のように3文字の「都道府県」(パターン2)の2つに分類できます。パターン1に該当する場合に左から4文字、パターン2に該当する場合に左から3文字を抜き出すように指定している点がこの式のポイントです。
セルB1に式を入力すると、自動的に3文字を抜き出し、以下のように北海道が表示されました。

あとは、セルB1右下にカーソルをあわせて、「オートフィル」を活用すれば、他のセルも自動的に都道府県が入力されます。

IF関数を複数回使う(ネスト・入れ子構造)
IF関数のなかにさらにIF関数を入れることで、条件分岐も可能です。このような構造は「入れ子構造」「ネスト」などと呼ばれています。
夏日の例で、IF関数だけを使って処理してみましょう。夏日に関する条件を以下にあらためて整理しておきます。
30℃以上35℃未満=真夏日
35℃以上 =猛暑日
上記の条件を入れ子構造にした式が、以下の通りです。
最初に登場するIF関数の「偽の場合の引数」に、さらにIF関数が入っているのがおわかりいただけると思います。
別の例をみてみましょう。以下のような評価基準をもとに3 段階の成績をつけるケースを考えてみます。
優:80点以上
良:60点以上
可:60点未満

この評価基準をIF関数のネストで表現すると以下のような式になります。

セルC2の式を3行目以降にもコピーしたい場合は、セルC2の右下にカーソルを置き、黒い十字マークが出てからダブルクリック(オートフィル)しましょう。3~7行目にも同じ内容をコピーできます。

<関連記事>【図解付き】エクセルのオートフィルとは?もっと便利なフラッシュフィルも解説
入れ子構造は「IF」が多くてわかりにくいと感じる場合は、IFS関数を使う方法もあります。IFS関数については、3つ以上の複数条件を指定|IFSで詳しく解説します。
IF関数の代わりに「条件付き書式」でセルに色付けする

IF関数はあくまで真・偽それぞれの値を返すことしかできないため、「条件に合致するセルに色を塗りたい」状況には対応できません。そこで、条件次第でセルの色付けをするのであれば、「条件付き書式」を使うのがおすすめです。
詳しい使い方は以下の記事で紹介しているので、こちらもぜひチェックしてみてください。
<関連記事>【Excel】一瞬でデータを見やすくできる!「条件付き書式」ってなに?
ExcelのIF関数ならこんなこともできる
ExcelのIF関数を使えば、他にもさまざまなことができます。ここから、ビジネスに活用できるIF関数の使い方をいくつか紹介します。
セルが空白なのか確認する
IF関数とISBLANK関数を組み合わせて空白がある場合に特定の文字を表示させるようにすることで、空白セルがないかチェックできます。膨大なデータを扱い、入力漏れが発生しそうな場面などに活用するとよいでしょう。

上の解説図では、空白の有無によって「入力漏れ!」「OK」を入力する仕組みを整備しました。そのため、セルB2に空白がある場合は、以下のようにセルD2は「入力漏れ!」に変わります。

セルに文字が入っていたら処理する
ISTEXT関数を使って「セルに文字が入っているか」確認する方法もあります。

ISBLANL関数は「セル」の空白の有無を確認するのに対し、ISTEXT関数は「テキスト(文字列)」の有無を確認する点に注意が必要です。
例えば、以下のケースでは、セルA3が空欄のためセルD3に「異常あり」と表示されています。それに対し、セルA4は空白ではないにもかかわらず、セルD4もセルD3と同じく「異常あり」と表示されてしまいました。これは、「17」が「テキスト」ではなく「数字」であることが原因です。

VLOOKUP関数と組み合わせて業務効率を上げる
IF関数はVLOOKUP関数と組み合わせることで、業務効率をさらに上げられます。VLOOKUP関数の基本式は、[=VLOOKUP(検索値,範囲,列番号,方法)]です。
以下のケースでは、IF関数とVLOOKUP関数を組み合わせることで、別の表に記載した会員ランクに応じた割引率を参照し、割引後の価格を計算できるようにしました。

実は、VLOOKUP関数を使わず以下のIF関数をセルE3に入力するだけでも、同様の結果を表示できます。
しかし、上記の式だと会員の種類(例:プラチナ)が増える場合や、割引率を変更したい場合に式を書き直さなければなりません。その点、IF関数とVLOOKUP関数を組み合わせた計算式を入力しておけば、会員・割引率の対照表に追記したり、割引率を変更したりするだけで反映可能なため、スムーズに対応できます。
VLOOKUP関数や、さらに発展させたXLOOKUP関数の使い方について詳しく知りたい方は、以下の記事を参考にしてください。
<関連記事>【Excel】朗報!これでVLOOKUPいらず!? 新たに登場するXLOOKUP関数とは?
IF関数に関連するExcel関数の種類を紹介

最後に、IF関数に関連する関数を一挙に紹介します。主な関数を以下の表にまとめました。
|
IF関数に関連する関数 |
内容 |
|
3つ以上の複数条件を指定する |
|
|
(複数の)条件に合致する値のみ合計する |
|
|
(複数の)条件に合致する値のみの平均を求める |
|
|
(複数の)条件に合致するデータの個数を求める |
|
|
複数の条件に合致する値の中の最大値を求める |
|
|
複数の条件に合致する値の中の最小値を求める |
|
|
エラー時に表示する値を指定する |
|
|
2つの期間内の年・月・日数を求める |
それぞれの使い方を確認していきましょう。
3つ以上の複数条件を指定|IFS
IF関数の仲間である「IFS関数」を使えば、AND関数・OR関数や入れ子構造を使わなくてもシンプルに複数の条件を指定できます(Excel2016以降のバージョンで使用可能)。
【使い方】
論理式と真の場合の値を1セットとして、指定したい条件を盛り込みます。条件は最大で127個まで指定できます。
=IFS( 論理式1 , 真の場合の値1 ,論理式2 , 真の場合の値2…,TRUE,どれにも当てはまらない場合の値 )
さきほどの例をもう一度使って、具体的なIFS関数の使い方をみていきましょう。
IFS関数を使って「25℃以上を夏日にする」という条件に、「30℃以上は真夏日」「35℃以上は猛暑日」という条件を追加します。IFS関数の条件式は以下の通りです。
最後の「TRUE,"-"」はどこにも当てはまらない場合の条件式で、論理式には「TRUE」を指定します。

なお、IFS関数の論理式は、「猛暑日→真夏日→夏日」のように基準の厳しい(該当する範囲が狭い)順に指定するよう注意が必要です。今回のケースで論理式の順番を逆にすると、以下のように25℃以上がすべて「夏日」として表示されてしまいます。

条件を満たす合計・平均・個数を算出|SUMIF・AVERAGEIF・COUNTIF
SUMIF・AVERAGEIF・COUNTIF関数は、式が似ているのでセットで覚えておきましょう。
=SUMIF(範囲 , 検索条件 , 合計範囲)
=AVERAGEIF(範囲 , 検索条件 , 平均対象範囲)
=COUNTIF(範囲 , 条件)
例えば、日付・曜日・客数が並んでいる以下の表から月曜日の集客について知りたい場合、関数を使えば自動でデータを拾い上げられます。

それぞれの関数の意味は、以下の通りです。
AVERAGEIF:月曜日に訪れた客数の平均値(上の図では80)
COUNTIF:月曜日の日数(上の図では5)
いずれも検索範囲を「B:B」(曜日列)、検索条件を「”月”」にすることで、月(曜日)を対象にデータを抽出しています。
なお、「SUMIFS」や「AVERAGEIFS」のように末尾にSをつけて処理すると、複数の条件を指定可能です。
条件を満たす最大値・最小値を抽出|MAXIFS・MINIFS
MAXIFS・MINIFSはそれぞれ、指定条件に合致する値の中から最大値・最小値を抽出する関数です。
=MAXIFS(最大範囲, 条件範囲1, 条件1, 条件範囲2, 条件2…)
=MINIFS(最小範囲, 条件範囲1, 条件1, 条件範囲2, 条件2…)

それぞれの関数の意味は、以下の通りです。
MINIFS:月曜日に訪れた客数の最小値(上の図では62)
エラー時に表示させる値を指定|IFERROR
IFERRORは「#VALUE!」「#DIV/0!」など、エラーの値を別の文字列に置き換えられる関数です。エラーのままだと計算やデータ集計がうまくいかない場合や、データを確認しにくい場合などに活用します。
=IFERROR(値 , エラーの場合の値)

例えば、前月比をパーセンテージで示した以下のデータを考えてみましょう。前月比は「今月月商」/「前月月商」で計算しています(セルD3なら、B3/B2)。

2月から11月までは何かしらの数値が入力されていますが、12月には「#DIV/0!」と表示されています。これは、11月(前月)も12月(当月)も月商が入力されていないためです。
「#DIV/0!」のまま資料を提出することが気にかかる場合は、IFERRORを使って「エラー」「未入力」などと表示されるようにしましょう。
今回は、エラーの場合の値に”未入力”と入れた結果、セルD13に「未入力」と自動で表示されました。

期間内の年数・月数・日数を算出|DATEDIF
DATEDIF関数は2つの日付をもとに、その間に含まれる「年数」「月数」「日数」を算出できる関数です。
=DATEDIF(開始日,終了日,単位)

上記の図のように、単位に「Y」を入れると「2つの日付の間の年数」を求められます。
単位を「M」とすれば「2つの日付の間の月数」、「D」とすれば「2つの日付の間の日数」と表示可能です。その他にも、「MD(月数と年数を無視した日数)」や「YM(日付と年数を無視した月数)」などの種類もあります。
なお、DATEDIF関数は「関数の挿入」からは入力できないので、使う際にはセルに直接「=DATEDIF(~」と入力しましょう。
ExcelのIF関数を使えば今まで以上に業務が捗る
IF関数は設定した条件に基づき、値や表示を変化させられる関数です。「=IF(論理式 , 真の場合の値 , 偽の場合の値)」の基本式さえ理解しておけば、簡単にIF関数を扱えます。式を覚えるのが面倒な場合でも、「数式」タブ→「関数の挿入」で簡単に操作可能です。
IF関数を活用したり、関連するほかの関数と組み合わせたりすれば、Excelでできることの幅が広がります。業務でデータ作成やデータ分析をする際は、IF関数などを活用して効率よく作業を進めましょう。
【関連記事】
Excelで棒グラフを簡単に作成する方法は?積み上げ棒グラフの作り方も解説
Excel(エクセル)掛け算の仕方は?【図解】簡単な方法からPRODUCT関数の使い方まで紹介
Excel(エクセル)でデータの自動入力をするには?時短テクニック10選






