Microsoft Excel(以下、Excel)でよく使われるIF関数は、条件を指定できる便利な関数です。知名度のある関数ですが、ちゃんと使える人は意外と多くありません。
「IF関数の仕組みは知っているけど、あまり使ったことがない」
「IF関数は使えるけど、条件が少し複雑になると混乱する」
「IFがつく関数っていろいろあるけど、その違いって何?」
というお悩み・疑問をお持ちの方に向けて、IF関数についていろいろと解説していきます。
IF関数とは? 基本的な使い方を解説
まずはIF関数の式を確認しておきましょう。
【式】
=IF(論理式 , 真の場合の値 , 偽の場合の値)
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,"夏日","―")
この式をC3セルにも入力してみるとこのように表示されます。
注意点としては、「論理式」「真の場合の値」「偽の場合の値」の3つの要素の間は「,(カンマ)」で区切ることです。また、「真の場合の値」「偽の場合の値」を文字列にしたい場合は、上記例のように「“ ”」(半角ダブルクオーテーション)で挟みます。値が数値の場合は、そのまま入力してしまって大丈夫です。
IF関数のエラー値! エラーが出た時の対処法
IF関数を使っているとエラー表示がされることもあります。ここではIF関数使用時によく発生する3種類のエラーとその原因について解説します。
・セルに「#VALUE!」と表示される
IF関数の式のなかで「#VALUE!」となっているセルを参照している場合、IF関数の結果も「#VALUE!」となってしまいます。IF関数の返り値が#VALUE!となる場合は、参照先にエラーが生じていないかを確認しましょう。
また、参照先が「内容は正しいけど、便宜上エラーになっている場合」は、IFERROR関数を使うのもおすすめです。以下の記事ではExcelのエラー値についてより詳しく解説しているので、あわせてチェックしてみてください。(本記事の後半でもIFERROR関数の使い方を紹介しています)
<関連>
【図解】Excelのエラー表示の徹底対策!エラーの種類と原因も解説
・セルの内容が 0 (ゼロ)になる
「=IF(A1>6,,)」のように、IF関数の式で「真の場合の値」と「偽の場合の値」が指定されていないと「0(ゼロ)」という結果が表示されます。値を返すようにしたいのであれば、真と偽の場合の因数を指定してあげましょう。
・セルに「#NAME?」と表示される
「#NAME?」と表示される主な原因はスペルミスです。たとえば、「=IF(○○…)」とすべきところを「=IG(○○…)」としてしまうと、セルの内容が「#NAME?」と表示されます。
「関数の挿入」を使ってIF関数を入力してみよう
それではここからもう少し実践的なIF関数の使い方を紹介していきます。
Excelでは直接入力するだけでなく、「数式」タブ→「関数の挿入」からでも関数を使うことができます。「関数の挿入」 のウィンドウが現れたら、「IF」を選択して「OK」をクリック。するとIF関数に必要な項目が表示されるので、それぞれに必要な情報を入力しましょう。上記の例であれば、以下のようになります。
論理式:B2>=25
値が真の場合:"夏日"
値が偽の場合:"―"
IF関数の結果の値を空白にする方法
IF関数で返す結果の値を空白にしたい場合は、半角ダブルクオーテーションを2つ入力します。先ほどの例で、夏日ではない日(25℃以下の日)を空白にする場合は以下のような式になります。
=IF(B2>=25,”夏日","")
<関連>
ダウンロード可能:PCスキルシートのサンプル(doda)
IF関数とAND・OR関数を組み合わせて複数条件を指定する
IF関数とAND・OR関数を組み合わせると、さらに複雑な条件指定も可能です。それぞれの関数の使い方は以下の通り。
【AND関数】
式:AND(条件1,条件2,条件3,…)
意味:条件1かつ、条件2かつ、条件3かつ…
【OR関数】
式:OR(条件1,条件2,条件3,…)
意味:条件1または、条件2または、条件3または…
たとえば、「気温が25℃未満の土曜日・日曜日」を「行楽日和」と定義したい場合は、「気温25℃未満」という条件と「土曜日・日曜日」という条件をANDでつなぎます。
さらに「土曜日・日曜日」はORを使って以下のように表現しましょう。
上記のようにANDとORを駆使すれば、より高度な条件式をつくることができます。少々複雑ですが、一つひとつの意味を読み解いていけば決して難しくないので、少しずつ慣れていきましょう。
3つ以上の複数条件を指定したい時はIFS関数が便利
複数の条件を付ける方法は、ANDやORだけではありません。IF関数の仲間である「IFS関数」を使えば、もっとシンプルに複数の条件を指定できます(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℃以上がすべて「夏日」として表示されてしまいます。IFS関数を使用する場合は必ず、「範囲の狭い条件(厳しい条件)」から順に指定していくようにしましょう。
IF関数を複数回使って複数条件を指定する(ネスト・入れ子構造)
IFS関数を使わずに、IF関数のなかにIF関数を入れて条件分岐をすることも可能です。そのような構造は「入れ子構造」「ネスト」などと呼ばれ、IFS関数同様より複雑な条件判断をしたいときに利用されます。
それでは先ほどの例(以下の3条件)について、IF関数だけを使って表現してみましょう。
25℃以上30℃未満=夏日
30℃以上35℃未満=真夏日
35℃以上 =猛暑日
この場合の式は以下のようになります。最初に登場するIF関数の「偽の場合の引数」にさらにIF関数が入っているのがおわかりいただけると思います。
=IF(B2>=35,"猛暑日",IF(B2>=30,"真夏日",IF(B2>=25,"夏日","-")))
それではもうひとつ、別の例をみてみましょう。以下のような評価基準をもとに3 段階の成績をつけるケースを考えてみます。
【評価基準】
優:80点以上
良:60点以上
可:60点未満
この評価基準をIF関数のネストで表現すると以下のような式になります。
=IF(B2>=80,"優",IF(B2>=60,"良","可"))
また、C2セルの式を3行目以降にもコピーしたい場合は、「オートフィル」という機能を使うと便利です。C2セルの右下にカーソルを置き、黒い十字マークが出たらダブルクリックをします。そうするとオートフィルが実行され、3~7行目にも同じ内容がコピーされます。
<関連>
【図解付き】エクセルのオートフィルとは?もっと便利なフラッシュフィルも解説
IF関数でセルの色付けは不可!条件に合わせてセルに色付けをするには「条件付き書式」を使う
「条件に合致するセルに色を塗りたい」、そんな時にはどうすればいいのでしょうか。
結論から言うと、IF関数が使えそうですが、IF関数では色付けはできません。IF関数はあくまで真偽の判定のみ可能で、真・偽それぞれの値を返すことしかできません。
条件次第でセルの色付けをするのであれば、「条件付き書式」を使うのがおすすめです。詳しい使い方は以下の記事で紹介しているので、こちらもぜひチェックしてみてください。
<関連>
【Excel】一瞬でデータを見やすくできる!「条件付き書式」ってなに?
IFを含む関数の違いを一挙に解説
最後にIFを含む関数を紹介します。
それぞれの使い方を簡単にご紹介していきます。どれもIF関数の基本がわかっていればすぐに使えるようになりますよ。
条件に合う値の合計・平均・個数を算出する関数|SUMIF・AVERAGEIF・COUNTIFの使い方
この3つは、式がとても似ているのでセットで覚えておきましょう。
【式】
=SUMIF(範囲 , 検索条件 , 合計範囲)
=AVERAGEIF(範囲 , 検索条件 , 平均対象範囲)
=COUNTIF(範囲 , 条件)
日付・曜日・客数が並んでいる表から、月曜日の集客について知りたい場合、下の図のように関数を使えば自動でデータを拾い上げることができます。
それぞれの関数が意味するところは、次のようになります。
SUMIF:月曜日に訪れた客数の合計(上の図では400)
AVERAGEIF:月曜日に訪れた客数の平均値(上の図では80)
COUNTIF:月曜日の日数(上の図では5)
SUMIFSやAVERAGEIFSなど末尾にSがつくと、IFS関数同様、複数の条件指定をできるようになります。あわせて覚えておきましょう。
条件に合う値の最大値・最小値を抽出する関数|MAXIFS・MINIFSの使い方
MAXIFS・MINIFSはそれぞれ、指定条件に合致する値の中から最大値・最小値を抽出してくれる関数です。こちらも使い方は簡単なので、さくっといきましょう。
【式】
=MAXIFS(最大範囲, 条件範囲1, 条件1, 条件範囲2, 条件2…)
=MINIFS(最小範囲, 条件範囲1, 条件1, 条件範囲2, 条件2…)
それぞれの関数が意味するところは、次のようになります。
MAXIFS:月曜日に訪れた客数の最大値(上の図では98)
MINIFS:月曜日に訪れた客数の最小値(上の図では62)
エラー時に表示させる値を指定できる関数|IFERRORの使い方
IFERRORは「#VALUE!」「#DIV/0!」など、エラーの値を別の文字列に置き換えられる関数。
エラーのままだと計算やデータ集計がうまくいかないケースがあるため、そんな時に活用してみましょう。
【式】
=IFERROR(値 , エラーの場合の値)
期間内の年数、月数、日数を求める関数|DATEDIFの使い方
DATEDIF関数は2つの日付をもとに、その間に含まれる「年数」「月数」「日数」を算出できる関数です。
【式】
=DATEDIF(開始日,終了日,単位)
上記の図のように、単位に「Y」を入れると「2つの日付の間の年数」を求められます。そして、単位を「M」とすれば「2つの日付の間の月数」、「D」とすれば「2つの日付の間の日数」といった具合です。
なお、単位には「MD(月数と年数を無視した日数)」や「YM(日付と年数を無視した月数)」などの種類もあります。また、この関数は「関数の挿入」からは入力できないので、使う際にはセルに直接「=DATEDIF(~」と入力しましょう。
IF関数を使えると、できることの幅が大きく広がる
IF関数の仕組みは簡単ですが、意外と奥が深い関数です。ご紹介してきたようにほかの関数と組み合わせることで、できることの幅が大きく広がります。
そして、IF関数の仕組みがわかれば、それに関連するSUMIF・COUNTIFなどの関数も使いやすくなるので、積極的に活用してみてはいかがでしょうか。
【関連記事】
Excel(エクセル)記事まとめ
覚えておけば残業知らず!Excel時短記事まとめ
見づらい資料からサヨナラ!Excel資料作成記事まとめ
覚えて仕事を効率化!Excel関数記事まとめ
PowerPoint(パワーポイント)記事まとめ
Word(ワード)記事まとめ
あなたの本当の年収がわかる!?
わずか3分であなたの適正年収を診断します
