- IF関数の基本的な使い方を知りたい
- もっと便利に使う方法はないのかなあ?
そんな思いにお応えできるようこの記事では、
- IF関数の基本的な使い方
- 少し応用的な使い方
- IF関数でよく見るエラー
について解説しています。
IF関数は実務でも使う機会の多い関数なので、基本から応用までおさえておくようにしましょう!
IF関数の基本的な使い方
IF関数を使うと、場合分けをすることができます。
例えば、
- 得点が80点以上な合格、そうでなければ不合格
- 役職が管理職なら出張手当4,000円、それ以外は3,000円
- リストから在籍年数10年以上なら〇をつける、それ以外は何も表示しない
といったことを実現することができます。
数式の形としては、
=IF(論理式,値が真の場合,値が偽の場合)
です。
論理式が条件部分、今回であれば「80点以上かどうか」です。
値が真の場合 = 条件を満たす場合なので、「合格」となります。
値が偽の場合 = 条件を満たさない場合なので、「不合格」となるということです。
具体例で説明したほうが分かりやすいので、下記の表を使って得点が80点以上かどうかで合格・不合格を表示させる手順について解説します。
まず、合否を表示させたいセルを選択します。今回だとD3セルですね。
次に、
=IF(
と入力します。どの関数を使用する場合も基本的には
イコール + 関数名 + カッコ
という形で使っていきます。
最初に「得点が80点以上かどうか」という論理式を指定したいのですが得点の対象はどこのセルになるか分かりますでしょうか?
C3セルに得点が入力されているので、「C3セルが80点以上かどうか」という式を作っていきます。
=IF(C3>=80
がここまでの式です。C3という部分はC3セルをクリックすると自動で入力されますが、まずは手入力でもOKです。
「以上」というのはエクセルだと>=と表現することは覚えておきましょう。
ここまでで論理式の部分は完成したので、カンマで区切って「値が真の場合」の式を作っていきます。
「値が真の場合」すなわち「C3セルの値が80以上を満たす場合」は「合格」を表示させる必要があります。
「合格」を表示させるには、
"合格"
とすればOKです。数式の中で文字列を使用する場合はダブルクオテーションで囲むことを忘れないようにしましょう。
これで「値が真の場合」の部分ができたので、またカンマで区切ります。
最後は「値が偽の場合」は「C3セルが80以上ではない場合」なので「不合格」を表示させるようにします。
"不合格”
とすればOKです。
最後に、閉じるカッコを入力しEnterを押せば数式の結果が表示されます。
得点が75点に対して「不合格」の表示なので正しい結果ですね。
これでD3セルの数式が完成しました。残っているD4~D12セルはどのようにすれば良いかというと、同じことの繰り返しなのでコピーします。
コピーするとはいっても、「不合格」という結果をコピーするのではなく数式をコピーするため、それぞれに正しい結果が返されますので安心してください。
通常のコピー・貼り付けと同様、D3セルをコピーしD4~D12セルに貼り付けします。
結果を見ると、「80点以上のときは合格・そうでない場合は不合格」になっていますね。
数式のコピーをご存じなかった方は、数式もコピーできるのだということを覚えるととても便利です。
IF関数の基本的な使い方について解説してきました。
ここからは、場合分けが増えるケースや数値ではなく文字列を条件にする場合など少し応用的な使い方について解説していきます。
【ちょっと応用】IF関数の色々な使い方
複数条件(IF関数同士の組み合わせ、AND関数・OR関数との組み合わせ)
単純なIF関数では、先ほど解説したように「80点以上かどうか」という2つの場合分けしかできませんがより多くの場合分けを行うことができます。
例えば、
- 合計得点が240点以上だとAランク、180~239点はBランク、179点以下はCランク
- 英語、数学、国語全ての科目が80点以上の場合
- 英語、数学、国語いずれかの科目が80点以上の場合
といった場合分けです。複数の関数を組み合わせることが必要なのですが、それぞれ組み合わせる関数が異なります。
IF関数同士の組み合わせ
まずは場合分けが2つ以上になるパターンです。図にすると下記のようになります。
具体的に場合分けをした例としては、下記のような表となります。
F列の合計得点に対してG列にIF関数の数式を作っていきますが、G3セルに下記のような数式を作っています。
=IF(F3>=240,"Aランク",IF(F3>=180,"Bランク","Cランク"))
G4~G11セルにG3セルの数式をコピーすれば先ほどの完成形となります。
AND関数との組み合わせ
IF関数とAND関数を組み合わせることで、「~かつ・・・の条件を満たす場合、〇〇を実行する」といったことが実現可能となります。
たとえば、
英語が80点以上かつ数学が80点以上の場合、〇を表示させる
といったことです。下記のようなイメージとなります。
この例の場合、F3セルに作成する数式は、
=IF(AND(C3>=80,D3>=80),"〇","")
となります。
F4~F7セルにも数式をコピーして適用すると、下記のようになります。
「条件をともに満たす」という場合AND関数を使用しますが、「条件のいずれかを満たす」という場合にはOR関数を使用します。
OR関数との組み合わせ
IF関数とOR関数を組み合わせることで、「指定した条件のいずれかを満たす場合、〇〇を実行する」といったことが実現可能となります。
たとえば、
英語が80点以もしくは数学が80点以上の場合、〇を表示させる
といったことです。下記のようなイメージとなります。
この例の場合、F3セルに作成する数式は、
=IF(OR(C3>=80,D3>=80),"〇","")
となります。
F4~F7セルにも数式をコピーして適用すると、下記のようになります。
今回解説した、IF関数を複数使用する場合やAND関数・OR関数との組み合わせについては下記の記事でさらに詳しく解説しているので、是非参考にしてください。
-
【エクセル】IF関数を複数条件で使う方法
そんな思いにお応えできるようこの記事では、 といった内容について解説しています。 IF関数を使って複数の条件分岐ができればとても便利なので、是非活用してみてください! IF関数については、【エクセル】 ...
続きを見る
-
【エクセル】IF関数をAND関数やOR関数と組み合わせる!
そんな思いにお応えできるようこの記事では、 について解説しています。 IF関数を使って色々な場合分けができるととっても便利なので、是非考え方を理解してみてください! IF関数については、【エクセル】I ...
続きを見る
文字列を条件にするとき
エクセルでIF関数を使うとき、条件として値だけでなく文字列も指定することができます。
例えば「販売先が安達商事のときだけ〇を表示する」というように一致・不一致を確認することができます。
この例だと、E3セルに
=IF(B3="安達商事","〇","×")
という数式を作り全てのセルにコピーすれば実現できます。
他にも、COUNTIF関数を使う必要はありますが「安達」という文字を含むセルをチェックするといったことも実現できます。
参考までにE3セルの数式をご紹介すると、
=IF(COUNTIF(B3,"安達"),"〇","×")
という式になっています。
この数式も含め、文字列を条件とするときのIF関数の使い方については下記の記事で詳しく解説しています。
-
【エクセル】IF関数で文字列を条件にする方法
そんな思いにお応えできるようこの記事では、 について解説しています。 IF関数については、【エクセル】IF関数のまとめ!基本から応用まで解説の記事で使い方をまとめているので、こちらの記事も是非ご参考下 ...
続きを見る
日付を条件とするとき
IF関数で日付を条件にしたいときには、DATEVALUE関数と組み合わせる必要があります。
例えば下記の表で入社日が2000年1月1日以降の人をチェックしたい場合を想定します。
この場合、数式に"2000/1/1"を入力するとうまくいかず、DATEVALUE関数の引数として指定する必要があります。
今回の例だと、
=IF(D4>=DATEVALUE("2000/1/1"),"〇","×")
という数式を作成しています。
日付を条件にしてIF関数を使う方法については、具体例も交え下記の記事で詳しく解説しています。
-
【エクセル】日付を条件にしてIF関数を使う!
IF関数で日付条件にする方法が知りたい IF関数で日付を条件にしようとしているけどうまくいかない・・・ そんな思いにお応えできるようこの記事では、 IF関数で日付を条件にする方法 IF関数で日付を条件 ...
続きを見る
IF関数を使って色分けできる?
IF関数を使って、条件によってセルの色分けをするようなことができたら便利ですよね。
実際にはIF関数だけではこのようなことは実現できません。条件付き書式と組み合わせることで色分けをすることができます。
例えば成績の結果をまとめた表があり、得点が70点以上の場合だけ色をつけたいと考えたとします。
この場合、条件付き書式とIF関数を組み合わせることで色分けをすることができます。
とても便利ですね。
さらに、実は条件付き書式を使えば、IF関数がなくても同じことを実現することができます。
この点については下記の記事で詳しく解説しています!
-
【条件付き書式が必要】エクセルのIF関数で色付けをするには?
そんな思いにお応えできるようこの記事では、 について解説しています。 IF関数については、【エクセル】IF関数のまとめ!基本から応用まで解説の記事で使い方をまとめているので、こちらの記事も是非ご参考下 ...
続きを見る
IF関数と合わせて覚えておきたい関数
せっかくIF関数の解説をしてきたので、合わせて覚えておきたい関数についてもご紹介したいと思います。
名前に「IF」が含まれている、
- SUMIF関数
- IFS関数
- IFERROR関数
について簡単に解説していきます。
SUMIF関数
SUMIF関数は、
- 合計するSUM関数
- 条件によって場合分けできるIF関数
が名前に入っていることからも分かるように、条件を指定して合計することができる関数です。
例えば下記の表で販売経路が「web」のものに絞って金額の合計をしたいという場合、目視でチェックして足し算するのは大変ですよね。
そんなときにはSUMIF関数を使って「web」を条件として足し算すればよいのです。
実務でも使えるとっても便利な関数です。下記の記事で詳しく解説していますので、是非参考にしてみてください。
-
【簡単エクセル関数】SUMIF関数を理解しよう
そんな思いにお応えできるようこの記事では、 について解説しています。 SUMIF関数は実務でも幅広く使用することができる関数なので、一気に理解してしまいましょう! IF関数やSUMIF関数については、 ...
続きを見る
IFS関数
IFS関数を使えば、IF関数を何度も使用しなくても複数条件に対応することができます。
複数条件のところで解説したように1つの数式の中でIF関数を繰り返し使用すると、どうしても数式が複雑になってしまいます。
IF関数の中にIF関数がある、というのは関数に慣れていない方にとって分かりにくいですが、IFS関数であれば1つの関数で複数の場合分けを実現することができます。
例えば、
- 80点以上がAランク
- 60~79点がBランク
- それ以外はCランク
という場合分けをしたい場合の数式は以下のようになります。
条件を次々に書いていっているだけなのが分かりますね。
最後に「その他の場合」としたいときは「TRUE」を指定することは注意が必要です。
IFS関数については下記の記事で解説しています。
-
【エクセル】IFS関数を使ってみよう
そんな思いにお応えできるようこの記事では、 といった内容について解説しています。 IFS関数を使うことで、IF関数のネストを使わなくても複数の場合分けを実現することができます! IF関数やIFS関数に ...
続きを見る
IFERROR関数
最後はIFERROR関数です。
この関数は「エラーがでたときにどうするか?」を指定することができるという少し変わった関数です。
どのようなときに使うのかが分かりにくいと思うので具体例を挙げますと、例えばVLOOKUP関数を使っていてよくあるのが、検索対象が無い場合に#N/Aというエラーが発生することです。
このような場合にIFERROR関数を組み合わせると、エラーを表示させないことができます。
エラーを解消できるわけではなく表示をさせないようにするだけなので、この点は注意してください。
IFERROR関数について詳しく知りたい方は下記の記事を参考にしてください。
-
【基本から説明】エクセルのIFERROR関数を使いこなせ!
そんな思いにお応えできるようこの記事では、 について解説しています。 エラー表示を自由自在に操って見た目もきれいなエクセル表を作成しましょう! IF関数やIFERROR関数については、【エクセル】IF ...
続きを見る
エラーに関連してというわけではないのですが、最後にIF関数を使っているときに遭遇する可能性のあるエラーについて解説します。
IF関数を使うときに発生するエラー
数式の入力エラー
IF関数の数式を作っていると、下記のような表示がでることがあります。
これはエクセルがエラーを発見し「こういう数式を作りたいと思っているんだよね?」と自動的に判断し、正しく修正しますよ?と連絡してくれているのです。
例えば今回は下記のような数式を作って、Enterを押して確定しようとしたら先ほどの表示が出ました。
よく見ると、文字列である「NG」はダブルクオテーションで囲まなければならないのに、閉じる方がありません。
この間違いをエクセルが見つけてくれて、「修正しますよ?」ときいてくれたわけです。
エクセルの修正が正しければ「はい」をクリックしましょう。修正された数式になります。
引数の指定がおかしい
下記のエラーが発生した場合、引数の指定がおかしい可能性があります。
引数とは「ひきすう」と読み、関数に渡してあげる値のことです。エクセルの数式でいうとカッコの中に入れる値のことです。
関数によって引数をどのように指定するのかのルールが異なります。
IF関数であれば、
論理式,値が真の場合,値が偽の場合
を指定しなければならないのはご存じの通りです。
例えば下記の例では80の後にカンマがないため、3つの指定が必要なところ2つしか指定できていないことになります。
この状態でEnterを押すと、先ほどのエラーが出現します。
解消方法としては、カンマを入れて正しく引数を指定しましょう。