_xlfn._xlws.FILTERで使えない原因と直し方|Excelの対応版・エラー別確認

数式バーに_xlfn._xlws.FILTERが出て使えない場合は、まず実際に開いているExcelがFILTERに対応する製品か確認します。接頭辞の一括削除やOfficeの再インストールを始める前に、ブックを複製し、セルのエラーと製品名を記録してください。#NAME?、#SPILL!、#CALC!、#REF!は、それぞれ確認する内容が違います。

FILTER関数そのものに対応しているのは、Microsoftの現行資料ではExcel for Microsoft 365、Excel 2024、Excel 2021のWindows版・Mac版などです。Excel 2019以前で_xlfnが付く場合、修復で新しい関数が追加されるわけではありません。対応製品で開くか、要件に合う別の抽出方法を選びます。

数式の接頭辞を消してもExcelの製品対応は変わらないため、まず、そのブックを開いているアプリの製品名を確認します。

目次

_xlfn._xlws.FILTERが付く意味と、先に見る場所

MicrosoftのExcelファイル形式の仕様 には、_xlfn._xlws.FILTERが拡張された関数名として載っています。文字列があるだけで、ファイルが壊れた、ウイルスが入ったという意味ではありません。Excelの数式バーでこの表示になり、計算も失敗する場合は、利用している製品と関数の対応を照合します。

Excel 2019等の非対応製品で接頭辞だけを消して=FILTER(...)に直しても、その製品にFILTERを追加したことにはなりません。対応版で同じ複製を開き、通常のFILTER式と最小例が評価できるかを先に確認します。接頭辞をブック全体で置換する操作は、別の新しい関数も巻き込むため避けてください。

確認すること確認場所・判断
Windowsで実際に起動した製品ファイル→アカウント→製品情報。必要ならExcelのバージョン情報でビルドも記録
Macで実際に起動した製品Excelメニュー→Excelについて。バージョンとライセンスの種類を記録
契約を変更した後Webの契約名だけでなく、今ブックを開いているアプリの製品名を確認
別PCでは正常正常側と失敗側の製品名・ビルド・同じファイルかを比較

確認画面はMicrosoftのOffice製品・バージョン確認を参照してください。Microsoft 365を契約していても、それだけで、現在起動した古いExcelが対応製品へ切り替わったと判断しないでください。対応アプリを起動してから「開く」で対象の複製を選ぶと、ダブルクリック時とは違うアプリを使っていないか比較できます。

症状から最初の確認場所を決める

表示・症状主な確認対象最初に行うこと
#NAME?関数名、定義名、引用符、範囲記号、対応製品数式バーで綴りと構文を確認する
_xlfn._xlws.FILTERそのExcelでFILTERを利用できるか[ファイル]→[アカウント]で製品名を確認する
#SPILL!結果を展開する範囲の障害物、テーブル内の式予定スピル範囲を確認し、式を空白領域へ移す
#CALC!抽出結果が0件、第3引数の省略FILTERの[if_empty]を指定する
#REF!閉じた別ブックへの動的配列参照参照元と参照先を両方開く
式はあるが値が変わらない計算方法、参照範囲、元データ自動計算と参照先を確認する

同じ「使えない」でも、関数を認識していない状態と、認識はしているが結果を置けない状態では対処が逆になります。エラーを見ずにOffice修復、古い形式への保存、数式の削除を行うと、原因を増やしてしまいます。

FILTER関数の対応製品と基本構文

基本構文は=FILTER(array,include,[if_empty])です。arrayには抽出対象、includeには各行または各列を含めるかどうかを返す条件、if_emptyには一致が0件のときの表示を指定します。結果は1セルだけでなく必要な範囲へ自動展開され、この動作をスピルと呼びます。

たとえばA2:C100のうちC列が「完了」の行を抽出するなら、空白領域に=FILTER(A2:C100,C2:C100="完了","該当なし")と入力します。地域設定によって関数の引数区切りがカンマではなくセミコロンになる場合があります。Excelが入力途中に示す構文候補に合わせてください。

元データをExcelテーブルにすることは有効です。構造化参照なら行の追加・削除に追従できます。ただし、スピルするFILTER式そのものをテーブルの列内へ置くことはサポートされません。元データはテーブル、抽出結果はテーブル外の十分な空白領域、という配置に分けます。

FILTERは認識するが、条件範囲の大きさが違う場合

行を抽出する式では、A2:C100とC2:C100のように対象と条件を同じ行数へそろえます。A2:C100に対して条件だけC2:C99を指定すると、対応製品でも正しい形の条件配列になりません。列を抽出するときは列数を照合します。FILTERの公式構文では、includeの高さまたは幅をarrayに一致させる必要があります。

データを壊さない復旧手順

  1. 原本を保護する。問題のブックを閉じて複製し、複製側で調査します。OneDriveまたはSharePoint上のブックならバージョン履歴も確認します。古いExcel形式へ上書き保存しないでください。
  2. エラー文字列を正確に記録する。セルの表示だけでなく数式バーを見て、FILTERの前に_xlfn._xlws.が付くか、先頭にアポストロフィがないか、関数名や引用符が欠けていないかを確認します。
  3. 製品とライセンスを確認する。[ファイル]→[アカウント]→[製品情報]を開きます。Microsoft 365、Excel 2024、Excel 2021のいずれかか、タイトルバーに「ライセンスのない製品」に相当する表示がないかを確認します。
  4. 新規ブックで最小テストを行う。A1:A3へ1、2、3、B1:B3へ1、0、1を入力し、空のD1へ=FILTER(A1:A3,B1:B3=1,"")を入力します。D1に1、D2に3が出るのがこの例の期待結果です。動けば本体のFILTER対応より、対象ブックの式・配置・参照を重点的に確認します。
  5. エラー別の分岐へ進む。#NAME?なら構文、_xlfnなら製品対応、#SPILL!なら展開範囲、#CALC!なら0件時の値、#REF!なら外部参照を直します。
  6. 更新は切り分け後に行う。対応製品なのに最小テストも失敗するときは、[ファイル]→[アカウント]→[更新オプション]→[今すぐ更新]を実行します。組織管理で項目がない場合は管理者へ依頼します。
  7. 最後に修復を検討する。更新後も新規ブックで再現するときだけ、Windowsのインストール済みアプリからMicrosoft 365またはOfficeの[変更]を開き、クイック修復、必要ならオンライン修復の順で進めます。

#NAME?と_xlfn._xlws.FILTERの直し方

#NAME?は「FILTER非対応」と同義ではありません。Microsoftは、関数名のタイプミス、未定義の名前、文字列を囲む二重引用符の不足、範囲のコロン不足、必要なアドインが無効といった原因を挙げています。まず、数式を手で打ち直す前に数式バーでFILTERの綴り、括弧の数、区切り記号、条件文字列の引用符を確認します。

例として、=FILTER(A2:C100,C2:C100=完了)では「完了」が文字列として囲まれていません。正しくは=FILTER(A2:C100,C2:C100="完了","該当なし")です。名前の管理で定義した名称を使っている場合は、[数式]→[名前の管理]で参照先と適用範囲も確認します。原因が残ったままIFERRORで包むと表示だけが隠れ、Microsoftが推奨する構文修正ができません。

_xlfn._xlws.FILTERが数式バーに見える場合、そのExcelでは関数を評価できない可能性が高い状態です。対応版Excelで同じ複製ブックを開いて確認します。永続ライセンスのExcel 2019を最新パッチへ更新してもExcel 2021や2024へ製品世代が上がるわけではないため、「更新したのに直らない」のは故障ではありません。

#SPILL!を安全に解消する

#SPILL!は、複数の結果をシートへ返せないときのエラーです。空白でない展開先だけでなく、テーブル内の式、結合セル、シートの端、配列サイズが安定しない場合等も確認します。空白でない範囲が原因なら、エラーセルから予定範囲と障害セルを確認してください。必要な業務データを消す前に、式を別の空白領域へ移します。詳しい原因はMicrosoftの#SPILL!エラー説明を参照できます。

テーブルの列へFILTER式を入力している場合、式をテーブル外へ移します。元データはTable1のままにし、たとえばテーブル外へ=FILTER(Table1,Table1[状態]="完了","該当なし")と置けば、元テーブルの増減に追従しながら結果をスピルできます。列名とテーブル名は実際のブックに合わせてください。

#CALC!と#REF!の分岐

条件に一致する行が0件で第3引数を省略すると、FILTERは空の配列を返せず#CALC!になることがあります。0件を異常としない運用なら"該当なし"や空文字列を第3引数に指定します。一方、include側に#N/Aや#VALUE!が含まれる場合はFILTER全体もエラーになるため、条件列の元エラーを先に直します。

別ブックを参照した動的配列は、Microsoftの資料上、参照元と参照先の両方が開いている場合に限ってサポートされます。参照元を閉じた状態で更新して#REF!になったら、両方を開いて再計算します。定期処理で参照元を閉じる必要があるなら、Power Queryなど別の取り込み設計を検討し、閉じた外部ブックをFILTERで直接参照し続けない構成にします。

ライセンス・更新・Office修復が必要な条件

Microsoft 365のライセンスに問題がある場合、通常は「ライセンスのない製品」の表示や、文書を開いて印刷はできても編集・新規作成ができない機能制限として現れます。FILTERだけが突然別名へ置換された、と決めつけないでください。正しいアカウントでサインインしているか、サブスクリプションが有効か、複数のOfficeが競合していないかをMicrosoftのライセンス認証手順に沿って確認します。

Office修復は、対応製品である、新規ブックの最小式でも失敗する、更新を適用しても変わらない、という条件がそろってから行います。クイック修復は主に破損ファイルを検出・置換し、オンライン修復はより広くスイート全体を修復します。オンライン修復ではインターネット接続、再認証、再起動が必要になる場合があるため、業務時間と同期状態を確認して実施します。

Macでは、Windowsの更新・修復画面を探さない

Macの製品確認はExcelについて、Microsoftから入れたアプリの更新はヘルプ→更新プログラムのチェックで行います。Mac App Store版の公式説明 によると、App Storeから入れたOfficeの更新はApp Storeを使います。Windowsのクイック修復・オンライン修復と同じ入口ではありません。

FILTERだけの式エラーと、Office全体で編集・保存できない状態は区別します。後者がMacで起きる場合、Microsoftの2026年7月13日以降の機能制限と更新案内も確認します。OS・アプリ・利用製品に応じた対処で、Excel 2019がFILTER対応版になるわけではありません。管理される端末は更新の配布状況を管理者へ確認してください。

非対応版で急ぎの作業を続ける方法

代替手段は「何を得たいか」で選びます。抽出された行そのものが必要なら、データタブのフィルターや詳細設定フィルターを使い、結果を別の場所へコピーします。合計だけが必要ならSUMIFS、件数だけならCOUNTIFS、分類別の集計ならピボットテーブルが候補です。SUMIFSは行一覧を返さないため、FILTERの完全な置き換えとは説明しません。

共同作業では、FILTERを含むブックを開く最低製品をチームで決めます。対応していない利用者が古い形式へ保存しないよう、ファイル名に互換性要件を含め、重要ブックはOneDriveまたはSharePointのバージョン履歴を利用します。値だけを配布する必要がある場合は、原本を残した複製へ値貼り付けした配布版を作ります。

値だけを配布するなら、正常に計算した結果を使う

非対応のExcelで#NAME?になっているセルを値へ貼り付けても、抽出された正常な行一覧には戻りません。対応製品で原本を計算し、元データと抽出件数を確認した後、複製した配布用ブックへ結果を値として保存します。配布版は自動更新しないことと、抽出日時・条件も添えてください。

再発を防ぐための運用

ブックの先頭シートへ、利用可能なExcel製品、更新日、外部参照の有無、FILTER式を置いたシートを記録します。共同編集者が非対応版で開いた場合に何が起きるかも短く明記します。数式を変更したときは、条件に一致する例、一致しない例、条件列にエラーがある例をテストし、抽出行数と元データ件数を照合します。

重要な抽出結果を後続処理が利用する場合は、「該当なし」という文字列を数値列へ混ぜない、空文字列を0として集計しないなど、0件時の仕様を決めます。外部ブック参照は両方を開く必要があるため、無人処理ではPower Queryや承認済みのデータ取り込みへ変更し、利用者の手操作に依存しない設計を検討します。

失敗しやすい対処と注意点

  • エラーの種類を見ずにOfficeをアンインストールしない。対象ブックだけの問題なら効果がなく、再認証の手間が増えます。
  • 古いExcel形式へ原本を上書きしない。互換性チェックで重大な機能損失が示された場合は、別ファイルとして保存します。
  • #NAME?をIFERRORで隠さない。構文・製品・定義名の問題を直します。
  • #SPILL!の障害物を一括クリアしない。予定範囲に必要なデータがあるか確認してから、式を移動します。
  • 閉じた外部ブックを参照する動的配列を、無人処理の前提にしない。公式の制限を踏まえて取り込み方式を見直します。

よくある質問

Excel 2019を更新すればFILTERは使えますか

通常は使えません。セキュリティ更新と、製品世代で提供される関数は別です。FILTERの公式対象製品でブックを開くか、目的に合う代替機能を利用します。

FILTERをテーブル内へ入れると#SPILL!になります

スピル配列数式はテーブル内でサポートされません。元データのテーブルは維持し、FILTER式だけをテーブル外へ移してください。構造化参照を使えば元テーブルの増減へ追従できます。

一致がないとき空白にできますか

第3引数へ空文字列を指定します。例は=FILTER(A2:C100,C2:C100="完了","")です。ただし、本当に0件なのか条件列にエラーがあるのかは分けて確認してください。

別のPCだけ_xlfnになります

そのPCのExcel製品、サインイン中のアカウント、更新チャネルを比較します。片方がExcel 2019以前なら製品差が原因です。対応版なのに最小式も失敗する場合だけ更新と修復へ進みます。

数式を値へ変換すれば直りますか

表示結果を固定して配布する目的には使えますが、元データ変更への追従を失います。原本の数式を残し、複製した配布版だけを値へ変換してください。

公式資料

まとめ

FILTER関数の復旧は、エラー名の確認、製品の確認、新規ブックの最小テスト、エラー別修正、更新、修復の順で進めます。_xlfnは対応製品、#SPILL!は展開場所、#CALC!は0件時の指定、#REF!は外部ブックを重点的に確認します。原本への上書きや一括削除を避ければ、原因を見失わず安全に作業を戻せます。最後に正常だったExcel製品、式、確認日を記録しておくと、別端末で再発した際も製品差とブック差を短時間で比較できます。テスト結果もブックの変更履歴へ残しましょう。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次