📋 このステップで学ぶこと
- Excelのエラーの種類と意味
- エラーの原因特定方法
- IFERROR/IFNAの使い方
- 数式の監査ツール活用
- データ品質チェックリスト
- トラブルシューティング手法
- 堅牢なシステム設計
レベル: コースの総仕上げ – プロフェッショナルなシステム構築
📝 1. Excelのエラーの種類
エラーメッセージの意味を理解することが、問題解決の第一歩です。
📋 主要なエラー一覧(※横スクロールできます)
【主要なエラー一覧】
■ #DIV/0!(ゼロ除算エラー)
意味: 数値を0で割ろうとした
例: =A1/B1 (B1が0のとき)
■ #N/A(値が利用できない)
意味: 検索関数で値が見つからない
例: =VLOOKUP(“商品X”, 範囲, 2, FALSE)
→ 商品Xが範囲に存在しない
■ #VALUE!(値エラー)
意味: 数式の引数や演算子が不適切
例: =A1+B1 (A1が”abc”のような文字列)
■ #REF!(参照エラー)
意味: 参照先のセルが存在しない
例: 列や行を削除して参照が壊れた
■ #NAME?(名前エラー)
意味: 関数名のスペルミス、または未定義の名前
例: =SOM(A1:A10) (SUMの誤り)
■ #NUM!(数値エラー)
意味: 数値が無効(大きすぎる、小さすぎる)
例: =SQRT(-1) (負の数の平方根)
■ #NULL!(NULL交差エラー)
意味: 交差しない範囲を参照
例: =SUM(A1:A10 B1:B10) (スペース演算子の誤用)
⚠️ エラーの種類と対処法一覧
| エラー |
意味 |
よくある原因 |
対処法 |
| #DIV/0! |
ゼロ除算 |
分母が0または空白 |
IFERRORで対処 |
| #N/A |
値なし |
VLOOKUPで見つからない |
IFNAまたはIFERROR |
| #VALUE! |
値エラー |
文字列を計算に使用 |
データ型を確認 |
| #REF! |
参照エラー |
参照先を削除 |
参照を修正 |
| #NAME? |
名前エラー |
関数名の誤り |
スペルチェック |
🔍 2. エラーの原因を特定する方法
エラーが発生したら、段階的に原因を調査します。
📋 ステップ1: エラーメッセージを確認(※横スクロールできます)
【ステップ1: エラーメッセージを確認】
1. セルをクリック
2. 数式バーで数式全体を確認
3. エラーの種類を特定
例:
セルC2に #DIV/0! が表示
数式バー: =A2/B2
→ B2が0か空白の可能性
📋 ステップ2: 数式を分解して確認(※横スクロールできます)
【ステップ2: 数式を分解して確認】
■ 複雑な数式の場合
元の数式:
=VLOOKUP(A2,商品マスタ!$A:$C,2,FALSE)/B2*1.1
分解して確認:
1. =VLOOKUP(A2,商品マスタ!$A:$C,2,FALSE)
→ これだけで動くか?
2. =(ステップ1の結果)/B2
→ B2は0ではないか?
3. =(ステップ2の結果)*1.1
→ 最終結果
このように段階的に確認
📋 ステップ3-4: 参照先とデータ型を確認(※横スクロールできます)
【ステップ3: 参照先を確認】
■ トレース機能の活用(Excel)
[数式]タブ → [ワークシート分析]
・[参照元のトレース]
→ この数式が参照しているセルに矢印
・[参照先のトレース]
→ このセルを参照している数式に矢印
・[エラーのトレース]
→ エラーの原因となるセルに矢印
■ F2キーを押す
→ 参照セルがハイライト表示される
【ステップ4: データ型を確認】
■ 見えない問題
「100」(文字列)と 100(数値)は見た目は同じ
確認方法:
=ISNUMBER(A1) → 数値ならTRUE
=ISTEXT(A1) → 文字列ならTRUE
■ 空白の判定
見た目は空白でも:
・スペースが入っている
・””(空文字列)が入っている
確認方法:
=LEN(A1) → 文字数を確認(0なら完全に空白)
=A1=”” → 空白かどうか判定
🛡️ 3. IFERROR/IFNAでエラーを処理
エラーが発生しても適切な代替値を表示する方法を学びます。
📋 IFERRORの基本(※横スクロールできます)
【IFERRORの基本】
■ 構文
=IFERROR(値, エラーの場合の値)
■ 例1: ゼロ除算対策
元の数式: =A1/B1
改善: =IFERROR(A1/B1, 0)
説明: B1が0ならエラーではなく0を表示
■ 例2: VLOOKUP対策
元の数式: =VLOOKUP(A2, 範囲, 2, FALSE)
改善: =IFERROR(VLOOKUP(A2, 範囲, 2, FALSE), “未登録”)
説明: 検索に失敗したら「未登録」と表示
📋 IFNAの活用(Excel 2013以降)(※横スクロールできます)
【IFNAの活用(Excel 2013以降)】
■ 構文
=IFNA(値, #N/Aの場合の値)
■ IFERRORとの違い
・IFNA: #N/Aエラーのみ捕捉
・IFERROR: 全てのエラーを捕捉
■ 使い分け
検索関数(VLOOKUP等)には IFNA を推奨
→ 他のエラー(#REF!など)は見逃さない
例:
=IFNA(VLOOKUP(A2, 範囲, 2, FALSE), “未登録”)
もし範囲の参照が壊れていたら #REF! が表示され、
すぐに気づける
■ Googleスプレッドシート
IFNAは同じ構文で使用可能
📋 エラー処理のベストプラクティス(※横スクロールできます)
【エラー処理のベストプラクティス】
✓ DO(推奨)
・IFNA/IFERRORで適切な代替値を設定
・エラーの種類に応じた処理
・ユーザーに分かりやすいメッセージ
✗ DON’T(非推奨)
・全てのエラーを空白にする
=IFERROR(数式, “”)
→ 問題が隠れてしまう
・エラー処理を多用しすぎる
→ 本質的な問題を放置
推奨:
エラーが発生しない数式を書くことが最優先
エラー処理は「保険」として使う
⚠️ IFERRORの落とし穴
IFERRORは便利ですが、問題を隠してしまうリスクがあります。
悪い例:
=IFERROR(複雑な計算, 0)
→ 計算ミスがあっても0が表示され、気づかない
良い例:
=IFERROR(複雑な計算, “エラー:要確認”)
→ エラーがあれば明確に分かる
まずは「エラーが起きない数式」を書くことが大切です!
🔧 4. 数式の監査ツール
Excelには数式をデバッグするツールが用意されています。
📋 Excelの数式監査機能(※横スクロールできます)
【Excelの数式監査機能】
■ 場所
[数式]タブ → [ワークシート分析]グループ
■ 主要機能
1. 参照元のトレース
→ この数式が参照しているセルを矢印で表示
2. 参照先のトレース
→ このセルを参照している数式を矢印で表示
3. エラーのトレース
→ エラーの原因を矢印で表示
4. すべてのトレース矢印を削除
→ 矢印をクリア
5. 数式の表示
→ 全セルの数式を表示(Ctrl+` でも可)
6. 数式の検証
→ 数式を段階的に評価
📋 数式の検証(ステップ実行)(※横スクロールできます)
【数式の検証(ステップ実行)】
■ 使い方
1. エラーのあるセルを選択
2. [数式]タブ → [数式の検証]
3. [評価]ボタンを押す
4. 数式が段階的に計算される
5. どこでエラーになるか特定
■ 例
数式: =VLOOKUP(A2, 範囲, 2, FALSE)*B2
評価ステップ:
1. A2 → “商品A”
2. VLOOKUP(“商品A”, 範囲, 2, FALSE) → #N/A
← ここでエラー発生!
3. #N/A * B2 → #N/A
結論: VLOOKUPで「商品A」が見つからない
📋 循環参照の検出(※横スクロールできます)
【循環参照の検出】
■ 循環参照とは
セルA1がA1を参照している(直接or間接的)
例:
A1: =B1+1
B1: =A1+1
→ 無限ループ!
■ 検出方法
[数式]タブ → [エラーチェック] → [循環参照]
■ 解決方法
・数式を見直す
・別のセルを使う
・反復計算を有効化(特殊なケース)
■ Googleスプレッドシート
循環参照があると警告が表示される
「循環参照を検出しました」
✅ 5. データ品質チェックリスト
エラーを未然に防ぐためのチェックリストです。
📋 入力データのチェック(※横スクロールできます)
【入力データのチェック】
□ 1. データ型の統一
・数値列に文字列が混在していないか
・日付が文字列になっていないか
確認方法:
=COUNTIF(A:A, “*”) → 文字列の個数
=COUNT(A:A) → 数値の個数
□ 2. 空白セルの確認
・意図的な空白か、入力漏れか
確認方法:
=COUNTBLANK(A:A)
□ 3. 重複の確認
・ユニークであるべきデータ(ID等)
確認方法:
[データ]タブ → [重複の削除](確認のみ)
または
=COUNTIF($A:$A, A1) → 1より大きければ重複
□ 4. 範囲外の値
・数値が妥当な範囲か(例: 年齢が0-120)
確認方法:
=IF(OR(A1<0, A1>120), “異常値”, “正常”)
□ 5. スペースの混入
・前後の余分なスペース
確認方法:
=IF(A1<>TRIM(A1), “スペースあり”, “”)
修正方法:
=TRIM(A1)
📋 数式とパフォーマンスのチェック(※横スクロールできます)
【数式のチェック】
□ 1. 絶対参照と相対参照
・意図通りか確認
・コピーした後の参照先を確認
□ 2. 範囲の指定
・全データを含んでいるか
・余分なデータを含んでいないか
□ 3. エラーの有無
・画面に表示されていないセルも確認
確認方法:
Ctrl+F → [オプション] → [検索先:数式]
→ [検索する文字列: #]
□ 4. 循環参照
・意図しない循環参照がないか
□ 5. 外部参照
・他のファイルを参照していないか
・リンク切れがないか
【パフォーマンスのチェック】
□ 1. 揮発性関数の多用
・TODAY(), NOW(), RAND() 等
・多用すると遅くなる
→ 必要な箇所のみに限定
□ 2. VLOOKUPの乱用
・大量のVLOOKUPは遅い
→ INDEX+MATCHを検討
□ 3. ファイルサイズ
・不要なシート削除
・画像の圧縮
🐛 6. トラブルシューティング実例
実際によく遭遇する問題と解決方法を紹介します。
📋 ケース1: VLOOKUPが#N/Aエラー(※横スクロールできます)
【ケース1: VLOOKUPが#N/Aエラー】
■ 問題
=VLOOKUP(A2, 商品マスタ!$A:$C, 2, FALSE)
→ #N/A
■ 原因の可能性
1. A2の値が商品マスタにない
2. 検索列(商品マスタのA列)が左端にない
3. データ型の不一致(文字列 vs 数値)
4. 余分なスペース
■ 調査手順
1. A2の値を確認: “商品A”
2. 商品マスタのA列を検索: “商品A “(スペースあり!)
3. 原因判明: 余分なスペース
■ 解決策
=VLOOKUP(TRIM(A2), 商品マスタ!$A:$C, 2, FALSE)
または、商品マスタ側を修正:
=TRIM(A1) で全データをクリーンアップ
📋 ケース2: 計算結果が合わない(※横スクロールできます)
【ケース2: 計算結果が合わない】
■ 問題
売上合計が手計算と合わない
=SUM(B2:B100) → 1,000,000
手計算: 1,050,000
■ 原因の可能性
1. 範囲が不足(B101以降のデータ)
2. 非表示行がある
3. フィルターがかかっている
4. 文字列の数値が含まれる
■ 調査手順
1. 範囲を確認: B2:B100
2. 実データは B2:B120 まで存在!
3. 原因判明: 範囲不足
■ 解決策
=SUM(B2:B120)
または、動的範囲を使用:
=SUM(B:B) ← B列全体(ヘッダーがないとき)
📋 ケース3-4: ファイルが重い・グラフがおかしい(※横スクロールできます)
【ケース3: ファイルが重くて動かない】
■ 問題
・開くのに1分以上かかる
・数式の入力に遅延がある
・保存に時間がかかる
■ 原因の可能性
1. 大量の揮発性関数
2. 複雑な配列数式
3. 画像・グラフが多い
4. 不要なピボットキャッシュ
■ 調査手順
1. Ctrl+F で TODAY() を検索 → 1,000個以上!
2. 原因判明: TODAYの多用
■ 解決策
1. ヘルパーセルを使用
A1セルに =TODAY() を1つだけ
2. 他のセルは A1を参照
B2: =IF(日付列>$A$1, “期限切れ”, “”)
結果: 1個のTODAYで済む
【ケース4: グラフが意図と違う】
■ 問題
折れ線グラフの線が繋がらない
X軸の順序がおかしい
■ 原因の可能性
1. データに空白がある
2. X軸のデータが日付ではなく文字列
3. データの並び順が不適切
■ 調査手順
1. データ範囲を確認
2. 日付列を確認 → “2025/01/15″(文字列!)
3. 原因判明: 日付が文字列
■ 解決策
1. 日付を数値に変換
=DATEVALUE(A2)
2. 書式を日付形式に変更
3. グラフを再作成
🏗️ 7. 堅牢なシステム設計
エラーが起きにくいシステム設計の原則を学びます。
📋 設計原則(※横スクロールできます)
【設計原則】
■ 原則1: エラーが起きにくい構造
・入力規則でデータ型を制限
・ドロップダウンで選択肢を限定
・計算式は保護
■ 原則2: エラーが起きても分かりやすい
・IFERROR/IFNAで適切なメッセージ
・条件付き書式でエラーを強調
■ 原則3: メンテナンスしやすい
・数式にコメントを追加
・シート構造を整理
・命名規則を統一
■ 原則4: パフォーマンスを考慮
・揮発性関数を最小限に
・配列数式は慎重に
・定期的なデータクリーンアップ
📋 入力規則と保護機能(※横スクロールできます)
【入力規則の徹底】
■ 数値項目
・データ型: 整数 or 小数
・最小値・最大値を設定
・エラーメッセージ: 「1以上100以下の整数を入力してください」
■ 日付項目
・データ型: 日付
・範囲: 2020/01/01 ~ 2030/12/31
・エラーメッセージ: 「有効な日付を入力してください」
■ 選択項目
・リストから選択
・元の値: マスタシート参照
・エラーメッセージ: 「リストから選択してください」
【保護機能の活用】
■ シートの保護
[校閲]タブ → [シートの保護]
設定:
・ロックされたセルの選択: 可
・ロックされていないセルの選択: 可
・セルの書式設定: 不可
・列の挿入: 不可
・行の挿入: 不可
■ セルのロック
1. 入力セルのみロック解除
[ホーム] → [書式] → [セルのロック] → オフ
2. シート全体を保護
結果: 入力セルのみ編集可能
📋 ドキュメント化(※横スクロールできます)
【ドキュメント化】
■ シートの説明
・各シートの目的
・データの流れ
・更新頻度
■ 数式のコメント
[校閲] → [新しいコメント]
例:
「この数式は前年同月比を計算しています。
前年データがない場合は #N/A となります。」
■ 色分けルール
・入力セル: 黄色背景
・計算セル: 白背景
・エラーチェック用: ピンク背景
■ README シート
ファイルの先頭に:
・ファイルの目的
・使い方
・注意事項
・更新履歴
🎯 堅牢なシステムの特徴
✓ エラーが起きにくい: 入力規則で不正データを防止
✓ エラーが分かりやすい: 適切なエラーメッセージ
✓ 修正しやすい: 構造が整理されている
✓ 引き継ぎしやすい: ドキュメントが整備されている
✓ 高速に動作する: パフォーマンスが最適化されている
📝 実践課題
診断課題
実践
以下のエラーを診断・修正してください
問題1: #DIV/0! エラー
数式: =A1/B1
A1=100, B1=0
問題2: #N/A エラー
数式: =VLOOKUP(“商品A”, $D$1:$F$100, 2, FALSE)
D列には「商品A 」(末尾にスペース)がある
問題3: #VALUE! エラー
数式: =A1+B1+C1
A1=100, B1=200, C1=”abc”
問題4: 計算結果が合わない
数式: =SUM(A2:A10)
しかし実データは A2:A20 まである
問題5: ファイルが重い
・TODAY()が500個以上使われている
解答:
【解答】
問題1: ゼロ除算の対処
修正案1: =IFERROR(A1/B1, 0)
修正案2: =IF(B1=0, 0, A1/B1)
修正案3: =IF(B1=0, “分母が0です”, A1/B1)
問題2: スペースの除去
修正案1: =VLOOKUP(TRIM(“商品A”), $D$1:$F$100, 2, FALSE)
修正案2: データ側を修正(D列全体にTRIM適用)
修正案3: =IFNA(VLOOKUP(“商品A”, $D$1:$F$100, 2, FALSE), “未登録”)
問題3: 文字列の除外
修正案1: データ検証で数値のみ入力可能にする
修正案2: C1を数値に修正(根本解決)
修正案3: =IF(ISNUMBER(C1), A1+B1+C1, A1+B1)
問題4: 範囲の拡張
修正案1: =SUM(A2:A20)
修正案2: =SUM(A:A) ← 列全体
修正案3: テーブル機能を使用(自動拡張)
問題5: 揮発性関数の最適化
修正案:
1. A1セルに =TODAY() を1つだけ配置
2. 他の500個のセルは =$A$1 を参照
3. ファイルを開き直すと劇的に軽くなる
総合課題
総合
堅牢な売上管理システムを設計してください
要件:
1. 入力規則を徹底(日付、金額、商品名)
2. 全ての計算式にエラー処理
3. データ品質チェックシート作成
4. 入力セルと計算セルを色分け
5. シートを保護(入力セルのみ編集可)
6. README シートを作成
7. パフォーマンステスト(1000行のデータで動作確認)
設計手順:
【設計手順(約4時間)】
ステップ1: シート構成(30分)
・入力シート
・集計シート
・チェックシート
・READMEシート
ステップ2: 入力規則設定(40分)
・日付: 2020/01/01~2030/12/31
・金額: 1以上1000万円以下
・商品名: ドロップダウン
ステップ3: 計算式作成(50分)
・全てIFERRORで囲む
・VLOOKUP → IFNA
・ゼロ除算対策
ステップ4: データチェック(30分)
・重複チェック
・空白チェック
・範囲外値チェック
・スペースチェック
ステップ5: 見た目の整備(30分)
・入力セル: 黄色背景
・計算セル: 白背景
・エラーセル: 赤背景(条件付き書式)
ステップ6: 保護設定(20分)
・入力セルのみロック解除
・シート保護
ステップ7: ドキュメント作成(30分)
・README作成
・使い方説明
・注意事項
ステップ8: テスト(30分)
・1000行のテストデータ作成
・動作速度確認
・エラー処理確認
🎓 コース完了おめでとうございます!
🎉 全56ステップ完了!
Excel・Googleスプレッドシート完全マスターコースを修了されました。
基礎から実践まで、データ分析に必要なすべてのスキルを習得されました。
これからは学んだ知識を実務で活かし、さらなるスキルアップを目指してください!
✅ このコースで習得したスキル
- 基礎操作: セル操作、書式設定、ショートカット
- 関数: SUM、VLOOKUP、IF、配列数式など40以上
- データ操作: ソート、フィルター、重複削除
- ピボットテーブル: 多角的なデータ分析
- データ可視化: グラフ、ダッシュボード作成
- 実践プロジェクト: 売上・在庫・顧客・予算管理システム
- ストーリーテリング: データから洞察を導く
- エラー処理: 堅牢なシステム構築
🚀 次のステップ
このコースで学んだスキルを基に、さらに高度な学習を続けることができます:
- 実務での実践: 学んだ技術を日々の業務で活用
- VBA/GAS: プログラミングで自動化
- Power BI/Tableau: 高度なBIツール
- SQL: データベース操作
- Python/R: データサイエンス
📝 Step 56 のまとめ
✅ このステップで学んだこと
- エラーの種類: #DIV/0!、#N/A、#VALUE!など
- 原因特定: トレース機能、数式の検証
- エラー処理: IFERROR、IFNAの使い分け
- 監査ツール: 参照元/参照先のトレース
- 品質チェック: データ、数式、パフォーマンス
- トラブルシューティング: 実例から学ぶ
- 堅牢な設計: エラーが起きにくいシステム
❓ よくある質問
Q1: エラー処理は全ての数式に必要ですか?
ケースバイケースです:
エラー処理が必要:
・VLOOKUP等の検索関数
・ゼロ除算の可能性がある計算
・外部データを参照する数式
・ユーザーが入力するデータを使う数式
不要な場合:
・固定値同士の計算
・エラーが起きない保証がある場合
・開発中(エラーを隠さない方が良い)
原則: エラーが起きない数式を書くのが最優先。エラー処理は保険として使う。
Q2: 数式が複雑で分かりにくい時はどうすればいい?
シンプルにする方法:
1. ヘルパー列を使う
複雑な数式を複数ステップに分解
悪い例(1行に全部):
=IFERROR(VLOOKUP(A2,範囲,2,FALSE)*B2*1.1,0)
良い例(3列に分解):
C列: =VLOOKUP(A2,範囲,2,FALSE)
D列: =C2*B2
E列: =D2*1.1
2. 名前の定義を使う
範囲に名前をつけて分かりやすく
Q3: 他人が作ったファイルのエラーを直すコツは?
調査の手順:
1. 全体像を把握
・シート構成を確認
・データの流れを理解
2. エラーを一覧化
Ctrl+F → # で検索
→ エラーの箇所を全て把握
3. 1つずつ調査
・数式の監査ツールを活用
・参照元を追跡
4. 慎重に修正
・バックアップを取る
・1箇所修正したら全体を確認
Q4: IFERRORとIFNAはどう使い分けますか?
使い分けの基準:
IFNA を使う場合:
・VLOOKUP、INDEX+MATCH など検索関数のエラー処理
・#N/A 以外のエラー(#REF! など)は表示したい場合
IFERROR を使う場合:
・全てのエラーを捕捉したい場合
・ゼロ除算(#DIV/0!)の処理
・複数種類のエラーが起こりうる数式
推奨:
検索関数には IFNA を使い、
参照エラー(#REF!)などの重要なエラーを見逃さないようにする
Q5: ファイルが重くなる原因は?
主な原因と対策:
1. 揮発性関数の多用
TODAY(), NOW(), RAND() など
→ 1箇所にまとめて参照
2. 大量のVLOOKUP
→ INDEX+MATCH に変更
→ テーブル機能を活用
3. 条件付き書式の多用
→ 範囲を限定する
→ ルールをシンプルに
4. 画像・オブジェクト
→ 画像を圧縮
→ 不要なオブジェクトを削除
5. 使っていないシート
→ 不要なシートを削除
→ ピボットキャッシュをクリア
Q6: Googleスプレッドシートでもトレース機能はありますか?
Googleスプレッドシートの場合:
Excelのような矢印でのトレース機能はありませんが、代替方法があります。
1. セルをクリック → F2
参照しているセルがハイライト表示される
2. 数式を分解して確認
複雑な数式を段階的に評価
3. 循環参照の警告
循環参照があると自動で警告が表示される
4. エラー表示
エラーセルにマウスを乗せると原因が表示される
Q7: このコースの復習はどうすればいいですか?
効果的な復習方法:
1. 実務で使う
学んだ技術を日々の業務で実践
→ 使わないと忘れる!
2. 実践プロジェクトを再挑戦
Step 50-53 の実践プロジェクトを
何も見ずに構築できるか挑戦
3. 苦手な分野を集中復習
・関数が苦手 → Step 14-40
・ピボット → Step 41-43
・グラフ → Step 44-47
4. 新しい課題に挑戦
自分の業務課題をスプレッドシートで解決
5. 他の人に教える
教えることで自分の理解が深まる
artnasekai
#artnasekai #学習メモ