📊つかえる関数.com

セルに#NAME?エラーが出て、数式バーに `_xlfn.` が表示されるのはなぜ?

結論

使用しているExcelバージョンが関数に対応していないことが原因です。_xlfn.XLOOKUP、_xlfn.FILTERなど関数ごとに必要バージョンが異なります。

数式・計算初級·

詳しい解説

`_xlfn.`プレフィックスは「このExcelバージョンが対応していない関数」を示す内部識別子です。Excel 2021/365で作成されたファイルを古いExcel 2016/2019で開いた場合に、認識できない関数名の前に自動的に付加されます。

主な発生パターンと対応関数: - `_xlfn.XLOOKUP` → Excel 2021以降が必要(代替:VLOOKUP/INDEX+MATCH) - `_xlfn.FILTER` / `_xlfn.SORT` / `_xlfn.UNIQUE` → Excel 2021以降が必要(代替:オートフィルター、SUMPRODUCT+IF) - `_xlfn.IFS` / `_xlfn.SWITCH` → Excel 2019以降が必要(代替:ネストIF) - `_xlfn.TEXTJOIN` / `_xlfn.CONCAT` → Excel 2019以降が必要(代替:CONCATENATE/&演算子) - `_xlfn._xlws.SORT` → ワークシート関数版SORT(Excel 365特有) - `_xlfn.LET` → Excel 2021以降が必要(代替:ヘルパーセル)

対処法は3つあります。①対応バージョンのExcelで開く、②代替関数に書き換える、③「互換性チェック」機能(ファイル→情報→問題のチェック→互換性チェック)で事前に確認する。

よくあるエラーと対処法

_xlfn.XLOOKUP が表示される

原因: XLOOKUP関数はExcel 2021以降専用です。Excel 2016/2019では認識されません。

対処: =VLOOKUP(検索値, 範囲, 列番号, FALSE) または =INDEX(戻り範囲, MATCH(検索値, 検索範囲, 0)) に書き換えてください。

_xlfn.FILTER / _xlfn.SORT / _xlfn.UNIQUE が表示される

原因: 動的配列関数はExcel 2021以降専用です。Excel 2019以前では使えません。

対処: フィルタリングはオートフィルター機能、集計はSUMPRODUCT関数、重複除外は「重複の削除」機能で代替してください。

_xlfn.IFS / _xlfn.SWITCH が表示される

原因: IFS関数・SWITCH関数はExcel 2019以降が必要です。Excel 2016では使えません。

対処: ネストしたIF関数に書き換えてください。例:=IF(条件1, 値1, IF(条件2, 値2, その他))

_xlfn.TEXTJOIN / _xlfn.CONCAT が表示される

原因: TEXTJOIN関数・CONCAT関数はExcel 2019以降が必要です。Excel 2016では使えません。

対処: CONCATENATE関数または&演算子に書き換えてください。例:=A2&", "&B2&", "&C2

執筆・検証:田中 けんた|Excel歴15年・MOS資格保持

バージョン対応

バージョン対応状況
Excel 2016Excel 2019Excel 2021Excel 2024Microsoft 365
全バージョン共通のトラブル全バージョン共通のトラブル全バージョン共通のトラブル対応全バージョン共通のトラブル

実務での使用例

他社からもらったファイルでエラーが出る場合

取引先がExcel 365で作ったXLOOKUP入りの請求書を、自分のExcel 2019で開くと#NAME?が出る。数式バーに`_xlfn.XLOOKUP`と表示されたら、=VLOOKUP(...)か=INDEX(MATCH(...))に書き換えて対応する

互換性チェックで事前確認する

ファイルを送る前に「ファイル→情報→問題のチェック→互換性チェック」を実行すると、古いバージョンで動作しない関数や機能の一覧が表示されます。