概要
FILTER・UNIQUE・SORT などの 動的配列関数 を使っていると、
「条件に合うデータが 1 件もない」
という状況がよくあります。
そのとき Excel は 空配列(空の結果) を返し、
多くの場合 #CALC!(計算できません)エラー になります。
これを避けるために使うのが IFERROR(または IFNA)で空配列を包むテクニックです。
空配列エラーは「悪いエラー」ではなく、
「該当データがなかった」という自然な状態なので、
“エラーを隠す” のではなく “代わりの表示を出す” のがポイントです。
空配列エラーとは?
FILTER の典型例
例えば、A2:A20 の中から「りんご」だけ抽出したいとします。
=FILTER(A2:A20, A2:A20="りんご")
もし「りんご」が 1 件もなければ、
FILTER は 空配列 を返し、Excel は #CALC! を表示します。
これは「計算不能」ではなく
「該当データがゼロ件」という自然な結果です。
IFERROR で空配列エラーを回避する基本形
テンプレート
=IFERROR(動的配列関数, 代わりに返す値)
空配列エラーが出たときだけ、
第 2 引数の値を返します。
FILTER × IFERROR の基本パターン
該当なしのときは空白にする
=IFERROR(
FILTER(A2:A20, A2:A20="りんご"),
""
)
動き:
- 「りんご」がある → FILTER の結果をそのまま返す
- 「りんご」がない →
""(空白)を返す
該当なしのときはメッセージを出す
=IFERROR(
FILTER(A2:A20, A2:A20="りんご"),
"該当データなし"
)
ユーザーにとって分かりやすい表示にできます。
UNIQUE × IFERROR の空配列対策
重複を除いた結果が空になる場合
=IFERROR(UNIQUE(A2:A20), "データなし")
UNIQUE も、対象が空だと空配列エラーになるため、
IFERROR で包むのが定石です。
SORT × IFERROR の空配列対策
並べ替え対象が空の場合
=IFERROR(SORT(A2:A20), "")
SORT も空配列を返すと #CALC! になるため、
IFERROR で安全に処理できます。
FILTER と複数条件で空配列になりやすい例
条件が厳しすぎると空配列になる
=FILTER(A2:C100, (A2:A100="東京") * (C2:C100>100))
東京で、かつ C 列が 100 超えの行が 1 件もない場合、
空配列 → #CALC! になります。
これを避けるには:
=IFERROR(
FILTER(A2:C100, (A2:A100="東京") * (C2:C100>100)),
"該当なし"
)
空配列エラー回避の考え方
1. 空配列は「正常な結果」と考える
→ エラーではなく「該当なし」
2. IFERROR で“代わりの表示”を返す
→ 空白、メッセージ、0 など
3. FILTER・UNIQUE・SORT など動的配列関数では必須
→ 空配列は避けられないため
例題
問題1
A2:A20 の中から「りんご」だけを FILTER で抽出し、
該当がない場合は空白を返したい。
その式を書いてください。
=IFERROR(FILTER(A2:A20, A2:A20="りんご"), "")
問題2
A2:C100 の中から「東京」かつ C 列が 100 超えの行だけ抽出し、
該当がない場合は「該当なし」と表示したい。
その式を書いてください。
=IFERROR(FILTER(A2:C100, (A2:A100="東京")*(C2:C100>100)), "該当なし")
問題3
A2:A20 の UNIQUE 結果が空配列になったとき、
「データなし」と表示したい。
その式を書いてください。
=IFERROR(UNIQUE(A2:A20), "データなし")
問題4
A2:A20 を SORT した結果が空配列だった場合、
空白を返す式を書いてください。
=IFERROR(SORT(A2:A20), "")
問題5
A2:A20 の中から 50 より大きい値だけ抽出し、
該当がない場合は「0」を返したい。
FILTER × IFERROR の式を書いてください。
=IFERROR(FILTER(A2:A20, A2:A20>50), 0)
まとめ
「空配列エラー回避 → IFERROR」のポイントは次の通りです。
- FILTER・UNIQUE・SORT は、該当なしのとき 空配列エラー(#CALC!) を返す
- 空配列は“異常”ではなく“該当なし”なので、IFERROR で代替表示を返す
- 空白・メッセージ・0 など、用途に応じて柔軟に設定できる
まずはこの基本形を覚えておくと便利です。
=IFERROR(動的配列関数, 代わりの値)
動的配列関数を使うなら、
空配列エラー対策は“必須の仕上げ”です。
あなたの表でもぜひ取り入れてみてください。
