概要
FILTER・UNIQUE・SORT・XLOOKUP などの 動的配列関数 はとても便利ですが、
条件に合うデータが 0 件だったり、参照範囲が不正だったりすると、
#CALC!(計算できません) や #N/A などのエラーが発生します。
これらは「Excel が壊れた」のではなく、
“結果が返せない状況” が起きただけです。
そこで役立つのが IFERROR。
動的配列関数を IFERROR で包むことで、
エラーを 空白・0・メッセージ に置き換え、
表全体を安定させることができます。
動的配列エラーとは?
FILTER の空配列エラー
=FILTER(A2:A20, A2:A20="りんご")
「りんご」が 1 件もなければ、
FILTER は 空配列(結果なし) を返し、Excel は #CALC! を表示します。
UNIQUE の空配列エラー
=UNIQUE(A2:A20)
対象が空の場合、同じく #CALC!。
SORT の空配列エラー
=SORT(A2:A20)
並べ替えるデータが空なら #CALC!。
これらはすべて IFERROR で抑止可能 です。
IFERROR の基本形
=IFERROR(計算式, エラー時の代替値)
- 計算式が正常 → そのまま返す
- 計算式がエラー → 代替値を返す
動的配列関数は「空配列=エラー扱い」になるため、
IFERROR との相性が抜群です。
パターン1:空結果なら空白を返す
FILTER × IFERROR の最も基本的な形
=IFERROR(FILTER(A2:A20, A2:A20="りんご"), "")
動き:
- 該当あり → FILTER の結果を返す
- 該当なし → 空白(””)を返す
グラフや印刷でエラーを見せたくないときに便利です。
パターン2:空結果ならメッセージを返す
ユーザーに「該当なし」を明示したい場合
=IFERROR(FILTER(A2:A20, A2:A20="りんご"), "該当データなし")
「なぜ結果が出ていないのか」を
ユーザーが理解しやすくなります。
パターン3:空結果なら 0 を返す
数値集計の前処理として便利
=IFERROR(FILTER(A2:A20, A2:A20>100), 0)
FILTER の結果を SUM したい場合など、
空配列を 0 に変えておくと後続処理が安定します。
パターン4:複数条件で空配列になりやすい場合
条件が厳しいと空配列が頻発する
=FILTER(A2:C100, (A2:A100="東京") * (C2:C100>100))
該当なし → #CALC!
IFERROR で包むと安全になります。
=IFERROR(
FILTER(A2:C100, (A2:A100="東京") * (C2:C100>100)),
"該当なし"
)
パターン5:動的配列の結果を別関数に渡すときのエラー抑止
AVERAGE・SUM・MAX などが空配列で止まるのを防ぐ
例:FILTER の結果を平均したい
=AVERAGE(FILTER(A2:A20, A2:A20>100))
該当なし → AVERAGE がエラー
対策:
=IFERROR(AVERAGE(FILTER(A2:A20, A2:A20>100)), 0)
パターン6:UNIQUE・SORT の空配列対策
UNIQUE
=IFERROR(UNIQUE(A2:A20), "データなし")
SORT
=IFERROR(SORT(A2:A20), "")
例題
問題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(動的配列関数, 代わりの値)
動的配列を使うなら、
エラー抑止は“お作法”として必ずセットで使っていきましょう。
