【Excel】IF関数を総まとめ!基本の使い方から条件分岐まで紹介

「IF関数」は、数あるExcel関数の中でとくに利用する機会の多い関数です。今回は、IF関数の基本的な使い方から、「IFS関数」「COUNTIF関数」「IFERROR関数」など、応用的な関数の使い方まで幅広く解説していきます。

【Excel】今さら聞けない? IF関数の使い方を覚えよう! IFを含む6つの関数も一挙紹介

Microsoft Excel(以下、Excel)で使われるIF関数は、条件を指定できる便利な関数です。知名度のある関数ですが、ちゃんと使える人は意外と多くありません。

そこで今回は、「IF関数の仕組みは知っているけど、あまり使ったことがない」「IF関数は使えるけど、条件が少し複雑になると混乱する」などのお悩みを抱えている方向けに、IF関数の使い方をわかりやすく解説します。

IF関数とは?

ExcelのIF関数とは、ある値と期待値を論理的に比較する関数です。IF関数を使えば、設定した条件に基づき、値や表示を変化させられます。

以下は、ビジネスでIF関数を活用した事例です。

ビジネス_IF関数_条件分け_1000万円

IF関数を使うことで、月商が目標の1000万円以上の場合は「目標達成」、1000万円未満の場合は「未達成」と自動的に表示するようにできました。

IF関数の基本型は、以下の通りです。

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

この式をExcelで該当するセルに入力することで、IF関数を利用できます。

IF関数の使い方(基本編)

ここから、IF関数の使い方の基本編を紹介します。

f:id:okazaki0810:20190919193151p:plain

IF関数は基本的に、「論理式」「真の場合の値」「偽の場合の値」の3要素で構成されます。

「論理式」とは条件のことです。その条件に合っていれば「真の場合の値」を表示し、異なれば「偽の場合の値」を表示します。

「論理式」では、「<(しょうなり)」「>(だいなり)」「=(イコール)」を使って条件を指定します。具体例を以下にまとめました。

「A1=1」:A1セルが1と等しい
「A1<1」:A1セルが1より小さい(未満)
「A1<=1」:A1セルが1、もしくは1より小さい(以下)
「A1>1」:A1セルが1より大きい
「A1>=1」:A1セルが1、もしくは1より大きい(以上)
「A1<>1」:A1セルが1でない

ここから、「どの日が夏日だったのかを表示させる」例で実践してみましょう。

夏日は25°C以上なので、C2セルに入力するIF関数の条件式は以下の通りです。

=IF(B2>=25,"夏日","―")

この条件式は、気温が25℃以上の場合に「夏日」、25℃未満の場合に「―」と表示するという意味です。C3セルに入力すると、以下のように表示されます。

f:id:okazaki0810:20190919193206p:plain

注意すべき点は、「論理式」「真の場合の値」「偽の場合の値」の3つの要素の間を「,(カンマ)」で区切ることです。また、「真の場合の値」「偽の場合の値」を文字列にしたい場合は、上記例のように「“ ”」(半角ダブルクオーテーション)で挟みます。値が数値の場合は、そのまま入力して構いません。

IF関数のエラー値!エラーが出た時の対処法

IF関数を使用する際に、エラー値が表示がされることもあります。ここではIF関数使用時によく発生する3種類のエラーとその原因について解説します。

セルに「#VALUE!」と表示される

「#VALUE!」は、「入力した数式に問題があるか、参照先のセルに問題がある」ことを示したエラー値です。

IF関数で「#VALUE!」となっているセルを参照すると、当然IF関数の結果も「#VALUE!」と表示されます。IF関数の返り値が#VALUE!となる場合は、参照先にエラーが生じていないかを確認しましょう。

また、参照先で「内容は正しいけど、便宜上エラーにしている場合」は、IFERROR関数を使い「エラー」「調査中」「未入力」などと表示させる方法もおすすめです。

<関連記事>【図解】Excelのエラー表示の徹底対策!エラーの種類と原因も解説

セルの内容が 0 (ゼロ)になる

「=IF(A1>6,,)」のように、IF関数の式で「真の場合の値」と「偽の場合の値」が指定されていないと「0(ゼロ)」が表示されます。値を正しく返すには、真と偽の場合の因数の指定が必要です。

セルに「#NAME?」と表示される

「#NAME?」と表示される主な原因はスペルミスです。例えば、「=IF(○○…)」とすべきところを「=IG(○○…)」としてしまうと、セルの内容が「#NAME?」と表示されます。

IF関数の使い方(応用編)

ここから、IF関数の使い方の応用編を紹介します。

式を入力せずIF関数を利用する方法

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

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

論理式:B2>=25
値が真の場合:"夏日"
値が偽の場合:"―"

指定したい条件をそれぞれ入力してから、「OK」をクリックすれば、IF関数が適用されます。

IF関数の結果の値を空白にする方法

IF関数で返す結果の値を空白にしたい場合は、半角ダブルクオーテーションを2つ入力します。今まで、夏日ではない日(25℃以下の日)を「―」で表示していましたが、空白にする場合は以下のように入力します。

=IF(B2>=25,”夏日","")

AND・OR関数と組み合わせて複数条件を指定

IF関数とAND関数・OR関数を組み合わせると、さらに複雑な条件も指定できます。

AND関数もOR関数も、特定の条件が満たされているかを判断するための式です。AND関数は「すべての条件」、OR関数は「いずれかの条件」を満たしているかをチェックする点で異なります。

それぞれの関数の使い方は以下の通りです。

【AND関数】
式:AND(条件1,条件2,条件3,…)
意味:条件1かつ、条件2かつ、条件3かつ…
【OR関数】
式:OR(条件1,条件2,条件3,…)
意味:条件1または、条件2または、条件3または…

例えば、「気温が25℃未満の土曜日・日曜日」を「行楽日和」と定義したい場合は、「気温25℃未満」という条件と「土曜日・日曜日」という条件をANDでつなぎます。

さらに「土曜日・日曜日」はORを使って以下のように表現しましょう。

f:id:okazaki0810:20190919193254p:plain

上記のようにANDとORを駆使すれば、より高度な条件式をつくることができます。少々複雑ですが、一つひとつの意味を読み解いていけば決して難しくないので、少しずつ慣れていきましょう。

MID関数とLEFT関数を組み合わせて文字を抽出

Excelで入力したセルの中から、一部の文字列を取り出したいこともあるでしょう。例えば、以下の例ではすでに住所が入力されていますが、「都道府県」に加えて「市」も記載されているため、都道府県名だけを抽出するには別途作業が必要です。

A列から都道府県名を取り出してB列に表示

MID関数やLEFT関数と組み合わせれば、住所の文字数がバラバラでも簡単に都道府県を抽出できます。LEFT関数・MID関数の使い方の基本を以下にまとめました。

MID関数・LEFT関数

MID関数は、文字列の途中から数え、指定の文字数分を抜き出す関数、LEFT関数は文字列の左から数えて指定の文字数分を抜き出す関数です。

今回は、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文字を抜き出し、以下のように北海道が表示されました。

MID関数とLEFT関数の組み合わせによる例

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

オートフィル

IF関数を複数回使って複数条件を指定する(ネスト・入れ子構造)

IF関数のなかにIF関数を入れることで、条件分岐することも可能です。このような構造は「入れ子構造」「ネスト」などと呼ばれています。

夏日の例で、IF関数だけを使って処理してみましょう。夏日に関する条件を以下にあらためて整理しておきます。

25℃以上30℃未満=夏日
30℃以上35℃未満=真夏日
35℃以上     =猛暑日

上記の条件を入れ子構造にした式が、以下の通りです。

=IF(B2>=35,"猛暑日",IF(B2>=30,"真夏日",IF(B2>=25,"夏日","-")))

最初に登場するIF関数の「偽の場合の引数」に、さらにIF関数が入っているのがおわかりいただけると思います。

別の例をみてみましょう。以下のような評価基準をもとに3 段階の成績をつけるケースを考えてみます。

【評価基準】
優:80点以上
良:60点以上
可:60点未満

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

=IF(B2>=80,"優",IF(B2>=60,"良","可"))

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


<関連記事>【図解付き】エクセルのオートフィルとは?もっと便利なフラッシュフィルも解説

なお、入れ子構造は「IF」が多くてわかりにくいと感じる場合は場合に、IFS関数を使う方法がもあります。IFS関数については、後ほど他の関数とまとめて解説します。

「条件付き書式」で条件に合わせてセルに色付けする方法

IF関数はあくまで真・偽それぞれの値を返すことしかできないため、「条件に合致するセルに色を塗りたい」状況には対応できません。そこで、条件次第でセルの色付けをするのであれば、「条件付き書式」を使うのがおすすめです。

詳しい使い方は以下の記事で紹介しているので、こちらもぜひチェックしてみてください。

<関連記事>【Excel】一瞬でデータを見やすくできる!「条件付き書式」ってなに?

IF関数に関連する関数の種類を一挙に解説

最後に、IF関数に関連する関数を一挙に紹介します。主な関数を以下の表にまとめました。

IF関数に関連する関数の種類

それぞれの使い方を確認していきましょう。

3つ以上の複数条件を指定|IFS

IF関数の仲間である「IFS関数」を使えば、AND関数・OR関数や入れ子構造を使わなくてもシンプルに複数の条件を指定できます(Excel2016以降のバージョンで使用可能)。

【使い方】
論理式と真の場合の値を1セットとして、指定したい条件を盛り込みます。条件は最大で127個まで指定できます。

【IFS関数】
=IFS(
論理式1 , 真の場合の値1 ,論理式2 , 真の場合の値2…,TRUE,どれにも当てはまらない場合の値 )

さきほどの例をもう一度使って、具体的なIFS関数の使い方をみていきましょう。

IFS関数を使って「25℃以上を夏日にする」という条件に、「30℃以上は真夏日」「35℃以上は猛暑日」という条件を追加します。IFS関数の条件式は以下の通りです。

=IFS(B2>=35,"猛暑日",B2>=30,"真夏日",B2>=25,"夏日", TRUE,"-")

最後の「TRUE,"-"」はどこにも当てはまらない場合の条件式で、論理式には「TRUE」を指定します。

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

条件を満たす合計・平均・個数を算出|SUMIF・AVERAGEIF・COUNTIF

SUMIF・AVERAGEIF・COUNTIF関数は、式が似ているのでセットで覚えておきましょう。

【式】
=SUMIF(範囲 , 検索条件 , 合計範囲)
=AVERAGEIF(範囲 , 検索条件 , 平均対象範囲)
=COUNTIF(範囲 , 条件)

例えば、日付・曜日・客数が並んでいる以下の表から月曜日の集客について知りたい場合、関数を使えば自動でデータを拾い上げられます。

f:id:okazaki0810:20190919193320p:plain

それぞれの関数の意味は、以下の通りです。

SUMIF:月曜日に訪れた客数の合計(上の図では400)
AVERAGEIF:月曜日に訪れた客数の平均値(上の図では80)
COUNTIF:月曜日の日数(上の図では5)

いずれも検索範囲を「B:B」(曜日列)、検索条件を「”月”」にすることで、月(曜日)を対象にデータを抽出しています。

なお、「SUMIFS」や「AVERAGEIFS」のように末尾にSをつけて処理すると、複数の条件を指定可能です。

条件を満たす最大値・最小値を抽出|MAXIFS・MINIFS

MAXIFS・MINIFSはそれぞれ、指定条件に合致する値の中から最大値・最小値を抽出する関数です。

【式】
=MAXIFS(最大範囲, 条件範囲1, 条件1, 条件範囲2, 条件2…)
=MINIFS(最小範囲, 条件範囲1, 条件1, 条件範囲2, 条件2…)

f:id:okazaki0810:20190919193332p:plain

それぞれの関数の意味は、以下の通りです。

MAXIFS:月曜日に訪れた客数の最大値(上の図では98)
MINIFS:月曜日に訪れた客数の最小値(上の図では62)

エラー時に表示させる値を指定|IFERROR

IFERRORは「#VALUE!」「#DIV/0!」など、エラーの値を別の文字列に置き換えられる関数です。エラーのままだと計算やデータ集計がうまくいかない場合や、データを確認しにくい場合などに活用します。

【式】
=IFERROR(値 , エラーの場合の値)

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

IFERROR関数

2月から11月までは何かしらの数値が入力されていますが、12月には「#DIV/0!」と表示されています。これは、11月(前月)も12月(当月)も月商が入力されていないためです。

「#DIV/0!」のまま資料を提出することが気にかかる場合は、IFERRORを使って「エラー」「未入力」などと表示されるようにしましょう。

今回は、エラーの場合の値に”未入力”と入れた結果、D13に「未入力」と自動で表示されました。

IFERROR_自動で表示

期間内の年数・月数・日数を算出|DATEDIF

DATEDIF関数は2つの日付をもとに、その間に含まれる「年数」「月数」「日数」を算出できる関数です。

【式】
=DATEDIF(開始日,終了日,単位)

上記の図のように、単位に「Y」を入れると「2つの日付の間の年数」を求められます。また、単位を「M」とすれば「2つの日付の間の月数」、「D」とすれば「2つの日付の間の日数」と表示可能です。

なお、単位には「MD(月数と年数を無視した日数)」や「YM(日付と年数を無視した月数)」などの種類もあります。また、この関数は「関数の挿入」からは入力できないので、使う際にはセルに直接「=DATEDIF(~」と入力しましょう。

IF関数を使えば今まで以上に業務が捗る

IF関数は設定した条件に基づき、値や表示を変化させられる関数です。「=IF(論理式 , 真の場合の値 , 偽の場合の値)」の基本式さえ理解しておけば、簡単にIF関数を活用できます。また、式を覚えられない場合でも、「数式」タブ→「関数の挿入」で簡単に操作可能です。

IF関数を活用したり、関連するほかの関数と組み合わせたりすれば、Excelでできることの幅が広がります。業務でデータ作成やデータ分析をする際は、IF関数などを活用して効率よく作業を進めましょう。

【関連記事】
Excelで棒グラフを簡単に作成する方法は?積み上げ棒グラフの作り方も解説
【Excel(エクセル)】掛け算の方法は3つ!「*」だけじゃない使い分けも解説
エクセルのデータ入力は自動化がおすすめ!時短テクニック7選

page top