ARTICLE関数

【Excel】IF関数で条件にあったものを用いて計算・表示しよう

ARTICLE
この記事では、条件にあったものを用いて計算や表示をする
IF関数について、説明しています。
.
応用編の使い方や
注意すべきエラーなどについても
解説しているので必見です!
.
IFを含む他の関数も紹介していますので
ぜひ、ご活用くださいね。

たくさんあるデータを
場合分けしたいけど、手動は時間がかかる…

場合分けしたいの??
だったら、良い関数があるよ!

え!?そんな関数あるの??

IF関数だよ!
IFを含む他の関数でも場合分けできて
すごく便利だよ。

仕事でたくさん使うから
覚えたいな。

じゃあ、説明を見ていこう!
意外と簡単だから
ぜひマスターしてね。

IF関数まとめはコチラ

 

 

【IF関数とは?】

▶︎条件に基づいて特定の結果を返す

IF関数は、条件に基づいて特定の結果を返すための関数です。

IF関数を使用することで、データの分岐処理や条件に応じた演算が可能となります。
指定した条件が真(True)である場合と偽(False)である場合
それぞれ異なる結果を返します。

 

 

▶︎IF関数の構文

=IF(条件式, 真の場合の結果, 偽の場合の結果)
例)
=IF(C5>=50,“可”,“不可”)
.
.
条件式
場合分けしたい条件を指定します。
例の場合だと「検査点数が50点以上」
※この条件から、【50点以上】か【それ以外】に分岐します。
.
真の場合の結果
条件式に当てはまる場合の対応を指定します。
例の場合だと「検査点数が50点以上」=「可と表示」
.
偽の場合の結果
条件式に当てはまらない場合の対応を指定します。
例の場合だと「検査点数が50点未満」=「不可と表示」
.
場合分けされました!

 

 

 

意外とシンプルですよね!

ぜひ、覚えてくださいね。

 

 

 

【IF関数の使い方】

▶︎使い方1:データの仕分けをしたい

データの仕分けをする際にIF関数は非常に便利です。
例えば、ある数値が特定の範囲に該当する場合に
特定のラベルを付けたい場合などに利用します。

 

例)
検査点数が50点以上 → 結果を「可」表示
検査点数が50点未満 → 結果を「不可」表示

 

 

①条件式を設定

「検査点数が50点以上」という条件式を設定

=IF(C5>=50,“可”,“不可”)

 

 

②「真の場合」を指定

検査点数が50点以上だったら(真の場合)
→「可」を表示という設定

=IF(C5>=50,“可”,“不可”)

 

 

③「偽の場合」を指定

検査点数が50点未満だったら(偽の場合)
→「不可」を表示という設定

=IF(C5>=50,“可”,“不可”)

 

 

④実行する

検査点数が50点以上 → 結果を「可」表示
検査点数が50点未満 → 結果を「不可」表示
の仕分けができました!

 

 

 

▶︎使い方2:「真の場合」のときだけ記入したい

特定の条件が真の場合にのみデータを表示したい場合、IF関数を使用します。

 

例)
在庫数がある場合だけ「在庫あり」で表示
.

①条件式を設定

「在庫数が0以上」という条件式を設定

=IF(C13>0,“在庫あり”,“”)

 

 

②「真の場合」を指定

在庫数が0以上だったら(真の場合)
→「在庫あり」を表示という設定

=IF(C13>0,“在庫あり”,“”)

 

 

③「偽の場合」を指定

在庫数が0以下だったら(偽の場合)
→何も表示しない、という設定

=IF(C13>0,“在庫あり”,“”)
※空白は【ダブルクォーテーション(”)2つ】で設定する

 

 

④実行する

在庫数がある場合だけ「在庫あり」で表示できました!

 

 

 

▶︎使い方3:条件を3つ以上に分岐させたい

IF関数は、条件を2つだけでなく、
3つ以上に分岐させることも可能です。

 

例)
検査点数が80点以上 → 結果を「優」表示
検査点数が60点以上 → 結果を「良」表示
検査点数が60点未満 → 結果を「不可」表示
=IF(条件式1 ,(条件の)真の場合の結果 ,
IF(条件式2 ,(条件の)真の場合の結果 , 偽の結果※条件1・2以外の結果))
=IF(C7>=80,“優”,IF(C7>=60,“良”,“不可”))

 

 

①条件式1を設定

「検査点数が80点以上」という条件式を設定

=IF(C7>=80,“優”,IF(C7>=60,“良”,“不可”))

 

 

②条件1の「真の場合」を指定

検査点数が80点以上だったら(真の場合)
→「優」を表示という設定

=IF(C7>=80,“優”,IF(C7>=60,“良”,“不可”))

 

 

③条件式2を設定

「検査点数が60点以上」という条件式を設定

=IF(C7>=80,“優”,IF(C7>=60,“良”,“不可”))

 

 

④条件2の「真の場合」を指定

検査点数が60点以上だったら(真の場合)
→「良」を表示という設定

=IF(C7>=80,“優”,IF(C7>=60,“良”,“不可”))

 

 

⑤「偽の場合」を指定

検査点数が60点未満だったら(偽の場合)
→「不可」を表示という設定

=IF(C7>=80,“優”,IF(C7>=60,“良”,“不可”))

 

 

⑥実行する

検査点数が80点以上 → 結果を「優」表示
検査点数が60点以上 → 結果を「良」表示
検査点数が60点未満 → 結果を「不可」表示
の仕分けができました!

 

 

条件の順番に注意!

今回の例だと…

  1. 検査点数が80点以上 → 結果を「優」表示
  2. 検査点数が60点以上 → 結果を「良」表示
  3. 検査点数が60点未満 → 結果を「不可」表示

 

これを下記の条件順にすると

  1. 検査点数が60点以上 → 結果を「良」表示
  2. 検査点数が80点以上 → 結果を「優」表示
  3. 検査点数が60点未満 → 結果を「不可」表示
この条件だと
1つ目の条件(60点以上)の場合に
2つ目の条件(80点以上)も含まれてしまう。
.
1つ目の条件に2つ目の条件が含まれないように
条件の順番に注意しましょう!
.

3つ以上の分岐が使えるようになると

できるようになることも増えるし

効率も大幅アップ!

 

 

 

【IF関数のエラー】

▶︎関数名の間違い【#NAME?】

#NAME?エラーは、関数名が間違っている場合に表示されます。

このエラーを修正するには、関数名を正しく入力する必要があります。
関数名は大文字と小文字を区別するので、
正確なスペルと大文字・小文字の使い方に注意しましょう。

 

 

▶︎参照先を削除してしまった【#REF!】

#REF!エラーは、セルや範囲の参照先が削除された場合に表示されます。

このエラーを修正するには、セルや範囲の参照を正しく修正する必要があります。
削除されたセルや範囲を修正するか、参照を適切なセルや範囲に変更してください。

 

 

▶︎参照できない値を参照している【#VALUE!】

#VALUE!エラーは、セルや式が予期しないデータ型や値を含んでいる場合に表示されます。

このエラーを修正するには、
参照されているセルや式の値やデータ型を確認し、修正する必要があります。
たとえば、数値が必要な計算式に文字列が含まれている場合など
適切なデータ型に変換する必要があります。

 

 

些細な違いがあっても関数が動かないから

気をつけよう…!!

 

 

 

【IF関数で複数条件を指定する】

▶︎AND関数

AND関数は、すべての条件が真の場合にのみ真を返します。
つまり、AND関数の引数に指定された
すべての条件が満たされている場合に、TRUEを返します。

 

=AND(条件1, 条件2, …)
=IF(AND(条件1,条件2) ,真の場合の結果 , 偽の結果)
.

「点数50点以上」かつ「在庫あり」で出荷OK

例として
「点数50点以上」かつ「在庫あり」で出荷OK
という式を組んでみましょう。

 

 

①ANDを使って2つの条件指定

「検査点数が50点以上」かつ「在庫あり」
という条件を指定。

=IF(AND(C5>=50,D5=”在庫あり”),“出荷OK”,“”)

 

 

②真の場合・偽の場合を指定

真の場合:「出荷OK」と表示
偽の場合:空白

=IF(AND(C5>=50,D5=”在庫あり”),“出荷OK”,“”)

 

 

③実行する

2つの条件
「検査点数が50点以上」
「在庫あり」
で仕分けができました!

 

 

 

▶︎OR関数

OR関数は、いずれかの条件が真の場合に真を返します。
つまり、OR関数の引数に指定された
いずれかの条件が満たされている場合に、TRUEを返します。

 

=OR(条件1, 条件2, …)
=IF(OR(条件1,条件2) ,真の場合の結果 , 偽の結果)

 

「点数50点以上」または「在庫あり」で出荷OK

例として
「点数50点以上」または「在庫あり」で出荷OK
という式を組んでみましょう。

 

 

①ORを使って2つの条件指定

「検査点数が50点以上」または「在庫あり」
という条件を指定。

=IF(OR(C5>=50,D5=”在庫あり”),“出荷OK”,“”)

 

 

②真の場合・偽の場合を指定

真の場合:「出荷OK」と表示
偽の場合:空白

=IF(OR(C5>=50,D5=”在庫あり”),“出荷OK”,“”)

 

 

③実行する

2つの条件

「検査点数が50点以上」
または
「在庫あり」

で仕分けができました!

 

 

 

▶︎AND関数とOR関数の組み合わせ

AND関数とOR関数は、
より複雑な条件を評価するために組み合わせることもできます。

例えば、

「商品が文房具」かつ「点数50点以上」
または
「在庫あり」

という条件で仕分けしてみましょう。

 

 

①ANDとORを使って条件指定

「商品が文房具」かつ「点数50点以上」
または
「在庫あり」

という条件を指定。

=IF(OR(AND(B7=”文房具”,C7>=50),D7=”在庫あり”),“出荷OK”,“”)

 

 

②真の場合・偽の場合を指定

真の場合:「出荷OK」と表示
偽の場合:空白

=IF(OR(AND(B7=”文房具”,C7>=50),D7=”在庫あり”),“出荷OK”,“”)

 

 

③実行する

「商品が文房具」かつ「点数50点以上」
または
「在庫あり」

で仕分けができました!

 

 

 

【IFを含む関数】

▶︎条件に合う値を算出する関数|
SUMIF・AVERAGEIF・COUNTIF・MAXIFS・MINIFS

SUMIF関数

SUMIF関数は、条件に合う値の合計を算出するための関数です。
指定した範囲内で条件に一致するセルの値を合計します。

SUMIFはこちらの記事もオススメ!

=SUMIF(範囲, 条件, 合計対象の範囲)

 

担当者Aだけの金額合計を出す
=SUMIF(B23:B30,“A”,C23:C30)

 

 

AVERAGEIF関数

AVERAGEIF関数は、条件に合う値の平均を算出するための関数です。
指定した範囲内で条件に一致するセルの値の平均値を計算します。

=AVERAGEIF(範囲, 条件, 平均対象の範囲)

 

担当者Bだけの金額平均を出す
=AVERAGEIF(B23:B30,“B”,C23:C30)

 

 

COUNTIF関数

COUNTIF関数は、条件に合う値の個数を算出するための関数です。
指定した範囲内で条件に一致するセルの個数を数えます。

=COUNTIF(範囲, 条件)

 

担当者Aだけの担当個数を出す
=COUNTIF(B23:B30,“A”)

 

 

MAXIFS関数

MAXIFS関数は、条件に合う値の中で最大値を抽出するための関数です。
指定した範囲内で条件に一致するセルの中から最大値を取得します。

=MAXIFS(値の範囲, 条件の範囲, 条件)

 

担当者Bだけの金額の中で最大金額を出す
=MAXIFS(C23:C30,B23:B30,“B”)

 

 

MINIFS関数

MINIFS関数は、条件に合う値の中で最小値を抽出するための関数です。
指定した範囲内で条件に一致するセルの中から最小値を取得します。

=MINIFS(値の範囲, 条件の範囲, 条件)

 

担当者Aだけの金額の中で最小金額を出す
=MINIFS(C23:C30,B23:B30,“A”)

 

 

 

▶︎エラー時に表示させる値を指定できる関数|
IFERROR

IFERROR関数は、他の関数の結果がエラーを返した場合に指定した値を表示するための関数です。
エラーが発生した場合にエラーメッセージの代わりに任意の値を表示することができます。

=IFERROR(, エラー時の値)

 

数値1÷ 数値2でエラーが出たら「計算不可」表示
=IFERROR(B34/C34,“計算不可”)

 

 

 

▶︎期間内の年数、月数、日数を求める関数|
….DATEDIF

DATEDIF関数は、2つの日付の間の年数、月数、日数を計算するための関数です。

=DATEDIF(開始日, 終了日, “単位”)
※単位→年数:Y、月数:M、日数:D

 

1998/7/1〜2023/3/24の年数・月数・日数を計算
=DATEDIF($B$37,$C$37,“Y”)
=DATEDIF($B$37,$C$37,“M”)
=DATEDIF($B$37,$C$37,“D”)

 

 

 

【IF関数 まとめ】

▶︎IF関数

IF関数は、条件に基づいて特定の結果を返すための関数です。

指定した条件が真(True)である場合と偽(False)である場合
それぞれ異なる結果を返します。

=IF(条件式, 真の場合の結果, 偽の場合の結果)
.
条件式
場合分けしたい条件を指定します。
.
.
真の場合の結果
条件式に当てはまる場合の対応を指定します。
.
.
偽の場合の結果
条件式に当てはまらない場合の対応を指定します。
.
.
場合分けされました!

 

 

 

▶︎分岐が3つ以上のIF関数

IF関数は、条件を2つだけでなく、
3つ以上に分岐させることも可能です。

 

例)
検査点数が80点以上 → 結果を「優」表示
検査点数が60点以上 → 結果を「良」表示
検査点数が60点未満 → 結果を「不可」表示
=IF(条件式1 ,(条件の)真の場合の結果 ,
IF(条件式2 ,(条件の)真の場合の結果 , 偽の結果※条件1・2以外の結果))

 

 

①条件式1を設定

=IF(C7>=80,“優”,IF(C7>=60,“良”,“不可”))

 

 

②条件1の「真の場合」を指定

=IF(C7>=80,“優”,IF(C7>=60,“良”,“不可”))

 

 

③条件式2を設定

=IF(C7>=80,“優”,IF(C7>=60,“良”,“不可”))

 

 

④条件2の「真の場合」を指定

=IF(C7>=80,“優”,IF(C7>=60,“良”,“不可”))

 

 

⑤「偽の場合」を指定

=IF(C7>=80,“優”,IF(C7>=60,“良”,“不可”))

 

 

⑥実行する

検査点数が80点以上 → 結果を「優」表示
検査点数が60点以上 → 結果を「良」表示
検査点数が60点未満 → 結果を「不可」表示
の仕分けができました!

 

 

条件の順番に注意!

  1. 検査点数が60点以上 → 結果を「良」表示
  2. 検査点数が80点以上 → 結果を「優」表示
  3. 検査点数が60点未満 → 結果を「不可」表示
この条件の順番だと
1つ目の条件(60点以上)の場合に
2つ目の条件(80点以上)も含まれてしまう。
.
1つ目の条件に2つ目の条件が含まれないように
条件の順番に注意しましょう!
.

.

▶︎複数条件のIF関数

AND関数

AND関数は、すべての条件が真の場合にのみ真を返します。
つまり、AND関数の引数に指定された
すべての条件が満たされている場合に、TRUEを返します。

 

=AND(条件1, 条件2, …)
=IF(AND(条件1,条件2) ,真の場合の結果 , 偽の結果)
.

例として
「点数50点以上」かつ「在庫あり」で出荷OK
という式を組んでみましょう。

=IF(AND(C5>=50,D5=”在庫あり”),“出荷OK”,“”)

2つの条件
「検査点数が50点以上」
「在庫あり」
で仕分けができました!

 

 

OR関数

OR関数は、いずれかの条件が真の場合に真を返します。
つまり、OR関数の引数に指定された
いずれかの条件が満たされている場合に、TRUEを返します。

 

=OR(条件1, 条件2, …)
=IF(OR(条件1,条件2) ,真の場合の結果 , 偽の結果)
.

例として
「点数50点以上」または「在庫あり」で出荷OK
という式を組んでみましょう。

=IF(OR(C5>=50,D5=”在庫あり”),“出荷OK”,“”)

 

2つの条件

「検査点数が50点以上」
または
「在庫あり」

で仕分けができました!

 

 

AND関数とOR関数の組み合わせ

AND関数とOR関数は、
より複雑な条件を評価するために組み合わせることもできます。

例えば、

「商品が文房具」かつ「点数50点以上」
または
「在庫あり」

という条件で仕分けしてみましょう。

 

=IF(OR(AND(B7=”文房具”,C7>=50),D7=”在庫あり”),“出荷OK”,“”)

「商品が文房具」かつ「点数50点以上」
または
「在庫あり」

で仕分けができました!

 

 

 

▶︎関連する関数

SUMIF関数

SUMIF関数は、条件に合う値の合計を算出するための関数です。

SUMIFはこちらの記事もオススメ!

=SUMIF(範囲, 条件, 合計対象の範囲)
.
担当者Aだけの金額合計を出す
=SUMIF(B23:B30,“A”,C23:C30)
.
.

AVERAGEIF関数

AVERAGEIF関数は、条件に合う値の平均を算出するための関数です。

=AVERAGEIF(範囲, 条件, 平均対象の範囲)

 

担当者Bだけの金額平均を出す
=AVERAGEIF(B23:B30,“B”,C23:C30)

 

 

COUNTIF関数

COUNTIF関数は、条件に合う値の個数を算出するための関数です。

=COUNTIF(範囲, 条件)

 

担当者Aだけの担当個数を出す
=COUNTIF(B23:B30,“A”)

 

 

MAXIFS関数

MAXIFS関数は、条件に合う値の中で最大値を抽出するための関数です。

=MAXIFS(値の範囲, 条件の範囲, 条件)

 

担当者Bだけの金額の中で最大金額を出す
=MAXIFS(C23:C30,B23:B30,“B”)

 

 

MINIFS関数

MINIFS関数は、条件に合う値の中で最小値を抽出するための関数です。

=MINIFS(値の範囲, 条件の範囲, 条件)

 

担当者Aだけの金額の中で最小金額を出す
=MINIFS(C23:C30,B23:B30,“A”)

 

 

IFERROR関数

IFERROR関数は、他の関数の結果がエラーを返した場合に指定した値を表示するための関数です。

=IFERROR(, エラー時の値)

 

数値1÷ 数値2でエラーが出たら「計算不可」表示
=IFERROR(B34/C34,“計算不可”)

 

 

DATEDIF関数

DATEDIF関数は、2つの日付の間の年数、月数、日数を計算するための関数です。

=DATEDIF(開始日, 終了日, “単位”)
※単位→年数:Y、月数:M、日数:D

 

1998/7/1〜2023/3/24の年数・月数・日数を計算
=DATEDIF($B$37,$C$37,“Y”)
=DATEDIF($B$37,$C$37,“M”)
=DATEDIF($B$37,$C$37,“D”)

 

 

 

IF関数は幅広く使えて、かつ
とても便利な関数です!
ぜひ、使いこなせるようになってくださいね。