概要
データ分析や集計をしていると、
「この値だけ明らかにおかしい…」
「入力ミスで極端な値が混ざっている…」
「異常値を除外して平均を取りたい…」
こうした “異常値(アウトライヤー)” を除外する処理 は、Excel では IF 関数 を使うのが最もシンプルで確実です。
IF を使えば、
- 異常値 → 無視(空白・0・メッセージに置き換える)
- 正常値 → そのまま計算に使う
という“前処理”ができ、後続の集計が安定します。
異常値除外の基本
IF の基本形
=IF(条件, 条件が真のときの値, 条件が偽のときの値)
異常値除外では、
- 条件:異常値かどうか
- 真:異常値だった場合の処理(空白・0 など)
- 偽:正常値だった場合の処理(そのまま返す)
という形で使います。
パターン1:上限・下限を超えたら除外する
例:0〜100 の範囲だけを有効とし、それ以外は除外
=IF(OR(A2<0, A2>100), "", A2)
動き:
- A2 が 0〜100 の範囲 → A2 を返す
- A2 が範囲外 → 空白(=異常値として除外)
「テスト点数」「割合」「在庫数」など、
範囲が決まっているデータでよく使います。
パターン2:極端に大きい値・小さい値を除外する
例:平均値の計算前に“異常に大きい値”を除外したい
たとえば、A2 の値が 1000 を超えたら異常値とみなす。
=IF(A2>1000, "", A2)
異常値を空白にしておけば、
AVERAGE や SUM で自然に無視されます。
パターン3:文字列や不正入力を除外する
数値列に文字が混ざるケースを防ぐ
=IF(NOT(ISNUMBER(A2)), "", A2)
動き:
- A2 が数値 → A2 を返す
- A2 が文字列・記号 → 空白(除外)
入力ミスが多い現場では非常に有効です。
パターン4:異常値を 0 として扱う
空白ではなく「0」に置き換えたい場合
=IF(OR(A2<0, A2>100), 0, A2)
売上・数量など、
「異常値は 0 として扱う」ほうが都合が良い場面で使います。
パターン5:異常値をメッセージで知らせる
ユーザーに“異常値がある”ことを明示したい場合
=IF(OR(A2<0, A2>100), "異常値", A2)
エラー記号ではなく日本語で知らせることで、
入力者が原因に気づきやすくなります。
パターン6:異常値を除外して平均を取る(前処理)
異常値を空白にしてから AVERAGE
例:0〜100 の範囲だけを平均したい
前処理列(B2):
=IF(OR(A2<0, A2>100), "", A2)
平均:
=AVERAGE(B2:B20)
異常値が自動で除外され、
正しい平均が取れます。
例題
問題1
A2 の値が 0〜100 の範囲外なら空白を返し、
範囲内なら A2 を返す式を書いてください。
=IF(OR(A2<0, A2>100), "", A2)
問題2
A2 の値が 1000 を超える場合は異常値として空白を返し、
それ以外は A2 を返す式を書いてください。
=IF(A2>1000, "", A2)
問題3
A2 が数値でない場合は空白を返し、
数値なら A2 を返す式を書いてください。
=IF(NOT(ISNUMBER(A2)), "", A2)
問題4
A2 が 0〜100 の範囲外なら 0 を返し、
範囲内なら A2 を返す式を書いてください。
=IF(OR(A2<0, A2>100), 0, A2)
問題5
A2 が 0〜100 の範囲外なら「異常値」と表示し、
範囲内なら A2 を返す式を書いてください。
=IF(OR(A2<0, A2>100), "異常値", A2)
まとめ
「異常値除外 → IF」のポイントは次の通りです。
- 異常値の条件を IF の論理式 に書く
- 異常値なら 空白・0・メッセージ に置き換える
- 正常値だけを後続の計算に使えるようにする
- AVERAGE・SUM などの集計が安定する
まずはこの基本形を覚えておくと便利です。
=IF(異常値の条件, 異常値のときの処理, 正常値のときの処理)
異常値を事前に除外しておくと、
集計の精度も見た目の安定性も一気に向上します。
