エラー処理と複数条件分岐を効率化するIFERROR関数・IFS関数
エラー処理と複数条件分岐を効率化するIFERROR関数・IFS関数
Excelで計算式を作っていると、「#DIV/0!」や「#VALUE!」などのエラーが表示されることがありますよね。また、複数のIF文を重ねて複雑な条件分岐を作ると、式が長くなって見にくくなってしまいます。
今回はIFERROR関数とIFS関数をご紹介します。エラー処理と複数条件分岐を効率的に行う方法を学んで、スマートなスプレッドシートを作成しましょう!
Contents
1. IFERROR・IFS関数の基本構文
IFERROR関数(エラー処理)
=IFERROR(値, エラーの場合の値)
=IFERROR(値, エラーの場合の値)
IFS関数(複数条件分岐)
=IFS(条件1, 値1, 条件2, 値2, 条件3, 値3, ...)
=IFS(条件1, 値1, 条件2, 値2, 条件3, 値3, ...)
IFERROR関数は「もしエラーが発生したら別の値を表示する」、IFS関数は「複数の条件を順番にチェックして、最初に当てはまった条件の値を返す」という機能です。
2. IFERROR関数でエラーを美しく処理する
まずは、よくあるエラーの例を見てみましょう。
A | B | C | D |
---|---|---|---|
1 | 商品名 | 売上 | 数量 |
2 | 商品A | 100000 | 50 |
3 | 商品B | 150000 | 0 |
4 | 商品C | 80000 | 20 |
単価を計算する場合(売上÷数量)を考えてみましょう。
❌ エラーが発生する式:
=C2/D2 → 商品Bで「#DIV/0!」エラー
=C2/D2 → 商品Bで「#DIV/0!」エラー
✅ IFERROR関数を使った式:
=IFERROR(C2/D2, "計算不可") → 商品Bで「計算不可」と表示
=IFERROR(C2/D2, "計算不可") → 商品Bで「計算不可」と表示
この方法で、ゼロ割りエラーや参照エラーを防ぎ、スプレッドシートの見栄えを良くできます。
3. IFS関数で複数条件を効率的に処理する
成績評価を例に、IFS関数の使い方を見てみましょう。
A | B | C |
---|---|---|
1 | 生徒名 | 点数 |
2 | 田中 | 85 |
3 | 佐藤 | 92 |
4 | 鈴木 | 78 |
5 | 高橋 | 95 |
従来のIF文を重ねた場合と、IFS関数を使った場合を比較してみましょう。
従来のIF文(複雑) | IFS関数(シンプル) |
---|---|
=IF(C2>=90,"A",IF(C2>=80,"B",IF(C2>=70,"C",IF(C2>=60,"D","F")))) | =IFS(C2>=90,"A",C2>=80,"B",C2>=70,"C",C2>=60,"D",TRUE,"F") |
💡 ポイント:IFS関数では最後に
TRUE,"F"
を追加することで、どの条件にも当てはまらない場合の値を指定できます。
4. IFERROR関数の実用的な活用例
VLOOKUP関数との組み合わせ
VLOOKUP関数でよく発生する「#N/A」エラーを防ぐ方法:
=IFERROR(VLOOKUP(A2,商品マスタ!A:B,2,FALSE), "商品情報なし")
計算結果の見栄え向上
割合計算でのエラー処理:
=IFERROR(B2/SUM(B:B)*100, 0) & "%"
重要:IFERROR関数は全てのエラーを処理してしまうため、意図しないエラーも隠してしまう可能性があります。使用前にエラーの原因を確認しましょう。
5. IFS関数の高度な使い方
売上ランク付けの例で、IFS関数の応用を見てみましょう。
売上金額 | ランク | ボーナス率 |
---|---|---|
1,000,000円以上 | S | 20% |
500,000円以上 | A | 15% |
300,000円以上 | B | 10% |
100,000円以上 | C | 5% |
未満 | D | 0% |
=IFS(B2>=1000000,"S",B2>=500000,"A",B2>=300000,"B",B2>=100000,"C",TRUE,"D")
6. 実践的な組み合わせテクニックと注意点
IFERROR + IFS の組み合わせ
複雑な計算でエラー処理も行いたい場合:
=IFERROR(IFS(C2/D2>=2000,"高単価",C2/D2>=1000,"中単価",TRUE,"低単価"), "計算不可")
よくある間違いと対処法
❌ 条件の順序を間違えた例:
=IFS(C2>=60,"D",C2>=70,"C",C2>=80,"B",C2>=90,"A")
→ 90点でも「D」判定になってしまう
=IFS(C2>=60,"D",C2>=70,"C",C2>=80,"B",C2>=90,"A")
→ 90点でも「D」判定になってしまう
✅ 正しい条件の順序:
=IFS(C2>=90,"A",C2>=80,"B",C2>=70,"C",C2>=60,"D",TRUE,"F")
→ 高い値から順番にチェックする
=IFS(C2>=90,"A",C2>=80,"B",C2>=70,"C",C2>=60,"D",TRUE,"F")
→ 高い値から順番にチェックする
💡 効率化のためのヒント:
- IFS関数では条件を高い値から順番に並べる
- IFERROR関数では具体的なエラーメッセージを表示する
- 複雑な式は段階的に作成してテストする
📋 まとめ
- IFERROR関数とIFS関数の使い所
- IFERROR:計算エラーを防いで見栄えの良いスプレッドシートを作成
- IFS:複数のIF文を簡潔に記述して可読性を向上
- 基本構文
- =IFERROR(値, エラーの場合の値)
- =IFS(条件1, 値1, 条件2, 値2, ...)
- 実用例
- IFERROR(C2/D2, "計算不可")
- IFS(C2>=90,"A",C2>=80,"B",C2>=70,"C",TRUE,"F")
- 活用のコツ
- IFERROR:VLOOKUP、計算式と組み合わせてエラー処理
- IFS:条件は高い値から順番に配置
- 最後にTRUE条件でデフォルト値を設定
IFERROR関数とIFS関数をマスターすることで、より堅牢で読みやすいスプレッドシートが作成できるようになります。エラー処理と条件分岐を効率的に行い、プロフェッショナルなデータ分析を目指しましょう!