次の DEMO を見にいく
Excel

FILTER関数の基本と実践例|条件指定のコツも解説

k.w
\お買い物マラソン開催中/
Contents
  1. この記事でわかること
  2. サンプルデータを固定(この記事の前提)
  3. FILTER関数とは(できること・向いている場面)
  4. 基本の使い方(構文と最初のつまずき回避)
  5. 条件指定のコツ(AND/OR/空白/除外/部分一致)
  6. 実践例:よく使う抽出パターン集(整形も一緒に)
  7. エラー対応の前に確認すること(最短チェック順)
  8. 「FILTERの範囲サイズが一致しません」の直し方
  9. 「一致するものは見つかりません」の直し方(0件運用)
  10. 「単一行/単一列」「展開されませんでした」の直し方
  11. 「#NAME?」「数式の解析エラー」の直し方
  12. まとめ:最短で直すチェックリスト
スポンサーリンク

この記事でわかること

FILTER関数は「条件に合う行(または列)だけを抜き出す」ための関数です。

スプレッドシートで「一覧を作り直したい」「条件で絞った表を別シートに作りたい」と思ったとき、FILTERを使うと元データを触らずに“表示だけ”を作れます。

関数なので、元データが増減しても抽出結果は自動で更新されるのが強みです。

一方で、FILTERは配列として結果を展開するため、出力先が詰まっていたり、条件範囲のサイズがズレていたりすると、突然エラーになって止まりがちです。

とくに初心者がつまずきやすいのは「範囲サイズが一致しません」「一致するものは見つかりません」「配列結果は展開されませんでした」の3つです。

この記事では、FILTER関数の基本構文から、実務でよく使う条件指定のコツ、そしてエラーメッセージ別の直し方までをまとめます。

まずは「抽出範囲」と「条件範囲」のサイズを揃えることが最重要です。

ここさえ押さえれば、複数条件やOR条件、部分一致なども同じ考え方で組み立てられます。

  • FILTER関数の基本構文と考え方(まず動く最小式の作り方)
  • AND / OR / 空白 / 除外 / 部分一致の条件指定テンプレ(コピペで使える型)
  • よく使う抽出パターン(SORT / UNIQUE / SORTN 連携で整形まで)
  • エラー別の原因とチェック手順(最短で切り分ける順番)

読み終わるころには「抽出ができる」だけでなく、「うまくいかないときにどこを見れば直るか」まで分かる状態を目指します。

サンプルデータを固定(この記事の前提)

例を同じ条件で追えるように、この記事では次のような表を想定して説明します。

A列は氏名、B列は部署、C列は日付、D列は売上、E列はメモのような形です。

例えば、2行目以降にデータが入っている想定で、見出し行(1行目)は除外して扱います。

抽出したい範囲(表示したい列のまとまり)を「抽出範囲」、条件判定に使う列を「条件範囲」と呼びます。

FILTER関数は「抽出範囲」と「条件範囲」の高さ(行数)や幅(列数)を揃える必要があり、ここがエラーの起点になりやすいです。

たとえば =FILTER(A2:D, B2:B="営業") の場合、抽出範囲はA2:Dで、条件範囲はB2:Bです。

この2つはどちらも「2行目以降」という同じ起点なので、基本的にはサイズが一致しやすい形です。

今後の解説では、常に「抽出範囲と条件範囲の開始行を揃える」という前提で式を組み立てていきます。

この前提を意識して読むだけでも、後半のエラー解説が格段に理解しやすくなります。

FILTER関数とは(できること・向いている場面)

FILTER関数は、表データを条件で絞り込んで、該当行だけを別の場所にそのまま展開できる関数です。

「部署が営業の人だけ」「今日以降の日付だけ」「売上が一定以上だけ」のような抽出を、数式1本で作れます。

抽出結果は配列として展開されるため、元データが更新されると抽出結果も自動で更新されます。

FILTERでできること(条件で行/列を抽出)

FILTERは、条件がTRUEになる行(または列)だけを残し、まとめて返します。

条件は1つでも複数でも指定でき、複数条件を指定した場合は基本的にAND条件として扱われます。

条件は「TRUE/FALSEの配列」になる式を書けばよく、値そのものを直接書くわけではありません。

どんな時に便利か(担当者別・期間別・部署別 など)

担当者別の一覧や、期間で切った明細、ステータス別の作業リストなどを作るときに便利です。

特に「元データを加工せず、別シートで表示だけ作りたい」用途と相性が良いです。

また、FILTERの結果をさらに集計やグラフに使うと、更新に強い仕組みになります。

基本の使い方(構文と最初のつまずき回避)

まずは基本構文を押さえ、最小の式が動く状態を作ってから条件を増やすのがコツです。

いきなり複雑な条件にすると、どこで壊れたか分からなくなりがちです。

基本構文(=FILTER(範囲, 条件1, [条件2…]))

FILTER関数の基本形は =FILTER(範囲, 条件) です。

範囲には、返したい結果の範囲を指定します。

条件には、範囲と同じ高さ(または同じ幅)を持つTRUE/FALSEの配列を返す式を書きます。

例えば部署が営業の行だけを返すなら、=FILTER(A2:D, B2:B="営業") のように書きます。

条件はTRUE/FALSEになる式を書く(例:B2:B=”営業”)

B2:B="営業" は、B列の各セルが「営業」かどうかを判定し、TRUE/FALSEの配列を返します。

FILTERはこのTRUEの行だけを抽出範囲から取り出します。

条件部分に "営業" のような文字列を入れる場合はダブルクォーテーションが必要です。

数値の場合は D2:D>=100000 のように、比較演算子を使って書きます。

0件のときの扱い(第3引数の発想/IFERRORとの使い分け)

FILTERは条件に一致する行が1件もない場合、エラー(「一致するものは見つかりません」系)になります。

「0件のときは空欄にしたい」「メッセージを表示したい」なら、第3引数(空の場合の値)を使うのが基本です。

例えば =FILTER(A2:D, B2:B="営業", "該当なし") のように書くと、0件のときに文字が出ます。

IFERRORで包む方法もありますが、他のエラーまで握りつぶす可能性があるので、まずは第3引数を優先すると安全です。

まず動く最小式→条件追加の順で作る(切り分けの型)

最初は =FILTER(A2:D, B2:B<> "") のように「空でない行」を抽出して、展開が動くことを確認します。

次に条件を目的のものに置き換えます。

複数条件にしたい場合も、まずは1条件で動くところまで作ってから、条件を増やしていくと原因特定が速いです。

条件指定のコツ(AND/OR/空白/除外/部分一致)

条件式は「やりたいこと」をTRUE/FALSEの判定に落とし込むと整理しやすいです。

ここでは実務でよく出るパターンを、テンプレとして使える形で紹介します。

AND条件(条件を複数並べる)

FILTERの第2引数以降に条件を複数並べると、AND条件として扱われます。

例えば「営業」かつ「売上が10万以上」なら、=FILTER(A2:D, B2:B="営業", D2:D>=100000) です。

この形は読みやすく、後から条件を足し引きしやすいのがメリットです。

「日付が今月」かつ「部署が営業」のような場合も、条件を分けたまま並べるとミスが減ります。

OR条件(足し算でまとめる/MATCHでまとめる等の考え方)

OR条件は、そのまま条件を複数並べてもORにはならない点が注意です。

典型的な方法は「TRUEを1、FALSEを0として足し算する」やり方です。

例えば「営業または開発」なら、=FILTER(A2:D, (B2:B="営業")+(B2:B="開発")) のように書けます。

足し算の結果が1以上ならTRUE扱いになるため、OR条件として機能します。

候補が多い場合は、リストにまとめて MATCH で判定すると管理しやすいです。

例えば候補部署をG2:Gに並べておき、=FILTER(A2:D, ISNUMBER(MATCH(B2:B, G2:G, 0))) のように書けます。

空白を含む・除外したい(=”” / <>”” / <> “値”)

空白判定は =""(空文字)や <>""(空でない)で書くのが基本です。

例えばメモ(E列)が空でない行だけにするなら =FILTER(A2:D, E2:E<>"") です。

特定の値を除外するなら <> を使います。

例えば部署が「退職」を除外したいなら、=FILTER(A2:D, B2:B<>"退職") のように書けます。

余計なスペース・全角半角の注意(TRIM/CLEANの考え方)

一致しない原因として多いのが、余計なスペース(前後の空白)や、見えない制御文字です。

見た目が同じでも、末尾にスペースが入っていると ="営業" がFALSEになります。

こういうときは、条件側を TRIM で整える発想が有効です。

例えば TRIM(B2:B)="営業" のようにして判定すると、余計な空白の影響を減らせます。

貼り付け由来の不可視文字が疑わしい場合は CLEAN を試すと改善することがあります。

部分一致・正規表現(SEARCH/REGEXMATCHの使い分け)

「メモに特定の単語が含まれる行だけ」なら部分一致が便利です。

単純な部分一致なら SEARCH を使い、ISNUMBER(SEARCH("重要", E2:E)) のように判定できます。

より柔軟に「いずれかの語を含む」などをやるなら REGEXMATCH を使います。

例えば「重要 または 至急」を含むなら、REGEXMATCH(E2:E, "重要|至急") のように書けます。

正規表現は強力ですが、まずはSEARCHで済むかを考えると保守しやすいです。

大文字小文字の扱い(関数側の仕様と対策)

英字の大小を区別したい場合、単純な ="abc" では意図どおりにならないことがあります。

区別が必要なときは、EXACT を使って厳密一致で判定します。

例えば EXACT(F2:F, "ABC") のようにすると、大文字小文字を含めて一致した行だけを抽出できます。

早見表:やりたいこと別の条件式テンプレ(コピペ用)

条件式は「テンプレを持っておく」と作業が速くなります。

次の表は、よくある目的と条件式の型をまとめたものです。

やりたいこと条件式テンプレ(例)補足
1つの値で一致B2:B="営業"文字列は””で囲む
数値が以上D2:D>=100000比較演算子を使う
空でないE2:E<>""空白判定の基本
特定値を除外B2:B<>"退職"除外は<>
AND条件B2:B="営業"D2:D>=100000条件を別引数で並べる
OR条件(2択)(B2:B="営業")+(B2:B="開発")足し算でまとめる
部分一致ISNUMBER(SEARCH("重要",E2:E))見つかれば数値
正規表現REGEXMATCH(E2:E,"重要|至急")複数語に強い

実践例:よく使う抽出パターン集(整形も一緒に)

ここでは、実務でそのまま使いやすいパターンを、短い式として並べます。

同じデータ構成(A=氏名、B=部署、C=日付、D=売上)を前提にしているので、置き換えて使えます。

1列条件で抽出(最短例)

部署が営業の人を一覧にするなら、=FILTER(A2:D, B2:B="営業") です。

結果を別シートに置けば、元データが増えても自動で伸びます。

複数条件で抽出(部署×担当者 など)

部署が営業で、かつ氏名が「田中」の行だけなら、=FILTER(A2:D, B2:B="営業", A2:A="田中") です。

条件は増えても読みやすいので、まずこの形を基準にすると整理しやすいです。

日付条件(>= / <= とTODAYの組み合わせ)

今日以降の日付だけ抽出するなら、=FILTER(A2:D, C2:C>=TODAY()) です。

今月だけに絞るなら、月初と月末を作って範囲で判定します。

例えば =FILTER(A2:D, C2:C>=EOMONTH(TODAY(),-1)+1, C2:C<=EOMONTH(TODAY(),0)) のように書けます。

並べ替え(SORTと組み合わせ)

抽出結果を売上の降順に並べたいなら、FILTERの外側にSORTを重ねます。

例えば =SORT(FILTER(A2:D, B2:B="営業"), 4, FALSE) のように書きます。

ここで「4」は抽出範囲A2:Dの4列目(売上)を意味します。

重複排除(UNIQUEと組み合わせ)

部署名の一覧を作り、重複を消したいならUNIQUEを組み合わせます。

例えば =UNIQUE(FILTER(B2:B, B2:B<>"")) のように書くと、空白を除外した部署リストになります。

このリストをOR条件の候補に使うなど、組み合わせると便利です。

上位N件(SORTNと組み合わせ)

抽出した上で上位5件だけ欲しいなら、SORTNを使います。

例えば =SORTN(FILTER(A2:D, B2:B="営業"), 5, 0, 4, FALSE) のように書けます。

「5」が件数で、「4, FALSE」が売上列の降順という意味です。

エラー対応の前に確認すること(最短チェック順)

FILTERのエラーは、原因がいくつかのパターンに集約されます。

まずは次の順番で確認すると、遠回りを減らせます。

結論としては「範囲サイズ」「条件式」「出力先」の3点を先に潰し、最後に綴りや記号を確認する流れにすると、ほとんどのケースは短時間で復旧できます。

チェック順:範囲サイズ → 条件式 → 出力先 → 綴り/記号

最初に見るべきは範囲サイズです。

抽出範囲と条件範囲の高さや幅が揃っていないと、ほかが正しくても動きません。

特に多いのが「抽出範囲はA2:Dなのに、条件範囲がB:Bになっている」など、開始行がズレているケースです。

見出し行を除外するなら、抽出範囲も条件範囲も同じ行(例:2行目)から始めるのが基本です。

複数条件のときも同様で、条件が増えるほど“どれか1つ”の起点ズレで止まりやすくなります。

迷ったら、抽出範囲と条件範囲(条件1〜条件n)をすべて同じ開始行に統一します。

次に条件式がTRUE/FALSEになっているかを確認します。

ここでのコツは「FILTERに入れる前に、条件式単体で正しく判定できているか」を見ることです。

条件が想定より厳しすぎて全部FALSEになっていないか、逆に緩すぎてほぼ全部TRUEになっていないかをチェックします。

その次に、出力先に値が入っていないか、結合セルがないかを確認します。

配列結果は右下に展開されるため、開始セルの周辺だけでなく、結果が届きそうな範囲まで含めて空きがあるかを確認します。

結合セル、保護範囲、別の配列数式の結果など、目に見えにくい障害物があると展開できません。

最後に、関数名の綴りやカッコ、ダブルクォーテーション、区切り文字を見直します。

特に " の閉じ忘れやカッコの対応ズレは、式が長くなるほど起こりやすいので、最小式に戻して積み上げ直すのが安全です。

条件式がTRUE/FALSEになっているかの確認方法

条件部分だけを別セルに置いて、結果がTRUE/FALSEの列として出ているかを見ると切り分けができます。

例えば =B2:B="営業" を単独で入力すると、TRUE/FALSEが縦に並ぶはずです。

ここでエラーになったり、意図と違うTRUEが出るなら、条件式側に原因があります。

もう一歩進めるなら、次のような“見落としやすいズレ”も確認しておくと復旧が速いです。

  • 余計なスペースがある:TRIM(B2:B)="営業" で判定が変わるか
  • 日付や数値が文字列になっている:比較演算子(>= など)が全部FALSEになっていないか
  • OR条件の足し算の左右が同じ形:(B2:B="営業")+(B2:B="開発") のように範囲が揃っているか

条件式が正しく見えるのに一致しないときは、条件対象のセルを1つ選び、実際に何が入っているか(スペース・改行・全角など)を疑うと改善することが多いです。

出力先に値/結合セルがないかの確認方法

FILTERの結果は、開始セルから右下に向かって自動的に展開されます。

展開先のどこかに値が入っていると「配列結果は展開されませんでした」系のエラーになります。

一見空に見えても、スペースや見えない文字が入っていることもあるので、範囲を選択してDeleteで消すのが確実です。

結合セルがあると展開できないことがあるため、結合を解除してから試します。

また、同じシート内でUNIQUEやSORTなど別の配列数式が動いていると、範囲がぶつかって展開できないことがあります。

開始セルを少し離れた場所に移して再計算すると、原因の切り分けができます。

エラー別まとめ表(メッセージ/主原因/直し方の要点)

よく見るエラーと、最短の対処を表にまとめます。

エラーメッセージ主な原因最短の直し方
FILTERの範囲サイズが一致しません範囲の高さ/幅が不一致抽出範囲と条件範囲の起点・行数を揃える
一致するものは見つかりません条件一致が0件第3引数で0件時の表示を決める
範囲は単一行か単一列条件範囲の形が不適切条件範囲を1列または1行にする
配列結果は展開されませんでした出力先に値がある展開先を空にする、結合セルを解除
#NAME?関数名/区切り誤り関数名と区切り文字を確認
数式の解析エラーカッコや””の欠落最小式に戻して構文を見直す

表の上から順に潰していくと、ほとんどのトラブルは解決します。

特に「サイズ不一致」と「展開できない」は、データの中身ではなく“範囲や配置の問題”なので、先に見直すと時短になります。

「FILTERの範囲サイズが一致しません」の直し方

このエラーは、FILTERで最もよく出る代表例です。

原因はほぼ「抽出範囲と条件範囲のサイズが揃っていない」に集約されます。

特に、見出し行の扱い(1行目を含めるか除外するか)や、片方だけ列全体指定にしていると起こりやすいので、まずは“範囲の形”だけを疑うのが近道です。

エラーの意味(抽出範囲と条件範囲の行数/列数不一致)

FILTERは、抽出範囲の各行(または各列)に対して、条件がTRUEかどうかを対応付けます。

そのため、抽出範囲と条件範囲のサイズが一致しないと対応付けができず、エラーになります。

縦に抽出する通常の使い方では「行数が揃っているか」が最重要です。

ここでいう“揃う”は、単に列数が同じという意味ではなく、開始行が同じで、同じ行数ぶん評価できる形になっていることを指します。

条件に「空の場合の値」を指定している時の落とし穴

第3引数(空の場合の値)を入れること自体は問題ありません。

ただし、式を組み立てる過程で、次のような形にしてしまうとサイズ不一致の原因になります。

  • 条件側に配列を返す関数を混ぜ、意図せず“複数列”の判定になっている
  • 第3引数に、セル範囲(複数セル)を渡してしまっている

「空の場合の値」は文字列や単一の値にしておくと安全です。

たとえば "該当なし" のように、1セル相当の値で指定します。

0件時の表示だけを整えたいなら、第3引数はシンプルにして、条件式側の形をまず安定させるのがおすすめです。

範囲の起点がズレている典型例(A2:A と B:B など)

もっとも多いパターンは、片方が2行目開始でもう片方が列全体指定になっているケースです。

例えば =FILTER(A2:D, B:B="営業") のように書くと、抽出範囲が2行目開始なのに条件範囲は1行目からになり、サイズがずれます。

この場合は B2:B のように起点を揃えるのが基本です。

逆に抽出範囲を A:A にするなら条件範囲も B:B に揃える必要があります。

また、複数条件のときに「条件1はB2:Bだが、条件2がC:Cのまま」など、条件同士で起点がズレているケースも多いです。

たとえば =FILTER(A2:D, B2:B="営業", C:C>=TODAY()) のように書くと、B2:BとC:Cで開始行が違い、やはりサイズ不一致になりやすいので、C2:C に揃えます。

再発防止:範囲は“同じ高さ/幅”に揃える

迷ったら、抽出範囲と条件範囲を同じ行から始めるのが最も安全です。

見出し行を除外したいなら、両方とも2行目開始に統一します。

複数条件でも同様で、すべての条件範囲の起点を揃えると、サイズ不一致をほぼ防げます。

さらに再発防止としては、「列全体指定を使うなら、抽出範囲も条件範囲も列全体に統一する」「2行目開始にするなら、すべて2行目開始に統一する」のどちらかにルールを決めておくと、後から式を編集しても崩れにくくなります。

最後に、範囲が合っているのに直らない場合は、条件式を単独で入力してTRUE/FALSEが同じ行数で出ているかを確認します。

ここが揃っていれば、少なくとも“サイズ不一致”の原因はほぼ解消できています。

「一致するものは見つかりません」の直し方(0件運用)

このエラーは、条件に合うデータが0件のときに発生します。

実際には「条件が間違っている」場合もあれば、「0件が正常」な場合もあります。

ポイントは、まず「0件があり得る条件なのか」を決めることです。

0件が起こり得るなら、エラーを出しっぱなしにせず、表示や運用のルールまで整えると使いやすくなります。

エラーの意味(条件一致が0件)

FILTERは、1件も一致がない場合に空の表を返すのではなく、エラーとして扱います。

そのため、0件があり得る条件なら、あらかじめ0件時の表示方法を決めておくと運用が安定します。

逆に「本来は必ず1件以上あるはず」なのに0件になる場合は、条件式かデータ側に問題がある可能性が高いので、ここから原因を切り分けます。

条件の見直し(空白・スペース・表記ゆれ)

まずは、条件が厳しすぎないかを確認します。

次に、表記ゆれ(全角半角、スペース、改行、末尾の空白)がないかを疑います。

部署名の表が「営業部」なのに条件が「営業」だと一致しません。

部分一致にすべきか、完全一致にすべきかも、ここで整理します。

もう一段だけチェックするなら、次のような点も見ておくと安心です。

  • 条件列に空白行が混ざっていないか(想定外に空欄が多いと、条件が厳しく感じる)
  • 数値や日付が「文字列」になっていないか(比較演算子で弾かれて全部FALSEになることがある)
  • 余計なスペース対策として TRIM を挟むべきか(TRIM(B2:B)="営業" のように)

0件時は空欄/メッセージにする(第3引数 or IFERROR)

0件が正常に起こり得るなら、第3引数で表示を決めます。

例えば空欄にしたいなら =FILTER(A2:D, B2:B="営業", "") のようにします。

メッセージにしたいなら "該当なし" を入れます。

単に文字を出すだけでなく、用途によっては「条件を見直してください」など行動が分かるメッセージにしておくと親切です。

また、0件時の扱いは「後工程」を意識して決めると失敗しにくいです。

たとえば抽出結果を別の集計に渡すなら空欄の方が扱いやすく、画面で人が見る用途ならメッセージの方が分かりやすい、という違いがあります。

どうしても他のエラーもまとめて扱いたいときはIFERRORを使えますが、原因の見落としが増える点には注意します。

まずは第3引数で0件だけを制御し、それでも必要な場合にだけIFERRORを検討すると安全です。

「単一行/単一列」「展開されませんでした」の直し方

この2つは「条件範囲の形」と「出力先の空き」が原因になりやすいエラーです。

どちらも、式そのものが大きく間違っていないのに出ることがあるため、チェックポイントを覚えておくと速く直せます。

この章では「どこを見れば直るか」を先に決め、同じミスを繰り返さないための考え方もまとめます。

「範囲は単一行か単一列にしてください」(指定範囲/向きの見直し)

条件範囲が2次元(複数行かつ複数列)の形になっていると、このエラーが出ることがあります。

FILTERの条件は、基本的に「1列ぶんのTRUE/FALSE」または「1行ぶんのTRUE/FALSE」を渡す想定です。

そのため、条件として B2:C のように2列を指定してしまうと、意図せず2次元の判定になり、処理できずに止まります。

まずは条件範囲が「縦1列」になっているかを確認し、複数列の条件を作りたい場合は、列ごとに判定してANDで組み合わせます。

例えば「部署が営業」かつ「日付が今日以降」のように、列が違う条件は次のように書きます。

  • =FILTER(A2:D, B2:B="営業", C2:C>=TODAY())

また、OR条件で足し算を使う場合も、足し算の左右が“同じ形(同じ列範囲)”になっているかが重要です。

  • OK:(B2:B="営業")+(B2:B="開発")
  • NG:(B2:B="営業")+(C2:C>=TODAY())(列が違うため意図が崩れやすい)

列が違うOR条件を作りたい場合は、判定式を同じ形に揃える(例えば同じ列で判定できる形に見直す)か、別の設計(候補リスト + MATCHなど)で組むと安全です。

「配列結果は展開されませんでした」(出力先を空ける)

FILTERの結果が展開される範囲に、何かしらの値が入っていると発生します。

見た目が空でも、スペースや数式が入っていることがあります。

展開先は「開始セルの右下方向」に広がるため、開始セルの近くだけでなく、結果が到達しそうな範囲まで含めて確認するのがコツです。

まずは展開予定の右下方向を広めに選択して削除し、結合セルがあれば解除してから再計算します。

他の数式や手入力の表と重ならない位置に結果を置くのも、安定運用のコツです。

とくに、同じシート内で別の配列数式(UNIQUEやSORTなど)を使っている場合、結果範囲がぶつかって気づきにくいので注意します。

ありがちな原因:既存の値、結合セル、保護範囲 など

既存の値は、1セルでも残っていると展開が止まります。

結合セルは、展開の形と合わないとエラーになりやすいです。

結合が残っていると「空きがあるのに展開できない」状態になることがあります。

また、保護範囲で編集できないセルが展開先に含まれている場合も、結果が置けずにエラーになることがあります。

共有シートや権限が分かれているシートでは、保護範囲が原因のことも多いです。

最後に、見落としやすいのが「見た目は空でも値がある」ケースです。

スペース、空文字(""を返す数式)、非表示の文字などが入っていると展開を邪魔します。

迷ったら、展開先になりそうな範囲を選択して一度クリアし、結果が置ける“まっさらな領域”に式を移動して動作確認すると、原因の切り分けが一気に進みます。

「#NAME?」「数式の解析エラー」の直し方

この2つは「入力ミス」や「設定差」が原因で出やすいエラーです。

特に、FILTER自体のロジックが正しくても「文字の種類」「区切り」「カッコの対応」だけで止まるため、落ち着いて“構文だけ”を確認すると早く直せます。

基本は、いったん最小式に戻して、段階的に戻す方法が最短です。

「#NAME?」(関数名・区切り文字・言語/ロケール)

#NAME? は、関数名を認識できないときに出ます。

まずは「FILTERの綴り」が正しいかを確認します。

全角になっていたり、余計な文字が混じっていたり、コピー時に不可視文字が入っていると認識されないことがあります。

次に見落としやすいのが、区切り文字(引数の区切り)です。

環境によって区切りがカンマ,ではなくセミコロン;になる場合があります。

自分のシートで他の関数(例:SUMやIF)がどの区切りで動いているかを確認し、FILTERも同じ区切りに揃えます。

また、関数名が英語表記のままでも動くことが多い一方で、ロケール設定の影響で「小数点」「日付」「区切り」がズレて別エラーに繋がることがあります。

区切りを直しても解消しない場合は、いったん次のような最小式で動作確認をします。

  • =FILTER(A2:D, B2:B<>"")(または =FILTER(A2:D; B2:B<>"")

これが動けば、関数名や区切りは問題なしと判断でき、次は条件式側のミスに絞れます。

「数式の解析エラー」(カッコ/ダブルクォーテーション/区切りの漏れ)

解析エラーは、カッコの閉じ忘れ、ダブルクォーテーションの漏れ、区切りの不足などで起こります。

複数条件にしたときや、OR条件で足し算・MATCH・REGEXMATCHなどを組み合わせたときに、カッコの対応が崩れるケースが多いです。

まずは =FILTER(A2:D, B2:B<>"") のような最小式に戻し、そこから1つずつ要素を足していきます。

たとえば次のように「1条件で動く」→「2条件にする」→「式を複雑化する」の順に進めると、どこで壊れたかが分かります。

  • 1条件:=FILTER(A2:D, B2:B="営業")
  • 2条件:=FILTER(A2:D, B2:B="営業", D2:D>=100000)
  • OR条件:=FILTER(A2:D, (B2:B="営業")+(B2:B="開発"))

エラーが出たら、まず確認するのは次のポイントです。

  • ダブルクォーテーションが左右セットになっているか("営業" の閉じ忘れがないか)
  • カッコが開いた分だけ閉じているか(特にOR条件やMATCHを挟んだとき)
  • 引数の区切りが環境に合っているか(,;
  • 比較演算子の左右が正しいか(>= の前後に余計な文字がないか)

式が長い場合は、条件を別セルで作ってTRUE/FALSEの列として確認してから合体するとミスが減ります。

例えば、G列に =B2:B="営業"、H列に =D2:D>=100000 を置いてから、FILTER側ではその結果を使う発想にすると、構文の壊れた場所が特定しやすくなります。

どうしても直らないときは、式の一部を一時的に削って「どこまでなら解析できるか」を確認し、最後に削った部分だけを見直すのが近道です。

まとめ:最短で直すチェックリスト

FILTER関数は便利ですが、エラーの多くは「範囲サイズ」「条件式」「出力先」の3点に集約されます。

まずは抽出範囲と条件範囲の起点とサイズを揃え、次に条件がTRUE/FALSEになっているかを確認します。

その上で、展開先が空いているか、最後に綴りや記号を見直せば、ほとんどのケースは短時間で解決できます。

特に最初の「範囲サイズ」は、1行だけズレていても止まるため、迷ったら抽出範囲と条件範囲を同じ開始行(例:どちらも2行目開始)に揃えるのが安全です。

次の「条件式」は、条件部分だけを単独で入力してTRUE/FALSEが並ぶかを確認すると切り分けができます。

想定外に全部FALSEになる場合は、表記ゆれやスペース、全角半角、日付の型(文字列になっていないか)も合わせてチェックします。

「出力先」は見落としがちで、1セルでも値が残っていると展開できません。

右下方向に十分な空きがあるか、結合セルが混ざっていないか、保護範囲にぶつかっていないかも確認しておくと安心です。

0件が起こり得る抽出では、第3引数で表示を整えると運用が安定します。

空欄にするのか、"該当なし" のようなメッセージにするのかを決めておけば、ユーザー側も「条件が間違っているのか、0件が正常なのか」を判断しやすくなります。

最後に、式は一度テンプレとして保存しておくと、別シートや別案件でも使い回せます。

AND/OR、日付条件、部分一致なども同じ考え方で応用できるので、まずは「最小式が動く状態」から少しずつ拡張する流れを習慣にすると、FILTERで詰まる回数が一気に減ります。

スポンサーリンク
記事URLをコピーしました