エラー値 #N/A を修正する方法

一般に、エラー値 #N/A は、数式で参照の対象が見つからないことを示しています。

解決方法

#N/A エラーの最も一般的な原因は、数式’で参照値が見つからない場合に XLOOKUP、VLOOKUP、HLOOKUP、LOOKUP、または MATCH 関数を使用することです。 たとえば、参照値がソース データに存在しない場合などです。

参照値が存在しません。  セル E2 の数式は =VLOOKUP(D2,$D$6:$E$8,2,FALSE) です。  値 Banana が見つからないため、数式がエラー値 #N/A を返します。

この例では、ルックアップ テーブルに “Banana” が存在しないため、VLOOKUP がエラー値 #N/A を返します。

解決方法:ソース データに参照値を入力するか、数式に IFERROR などのエラー ハンドラーを使用します。 たとえば、=IFERROR(FORMULA(),0) の場合、次のような意味になります。

  • = IF(数式がエラーと評価された場合は 0、それ以外の場合は数式の結果を表示する)

"" を使用して何も表示しないようにしたり、次のように独自のテキストに置き換えたりできます: =IFERROR(FORMULA(),”ここにエラー メッセージ”)

注: 

  • VLOOKUP や INDEX/MATCH などの特定の関数の#N/A エラーに関するヘルプが必要な場合は、次のいずれかのオプションを選択します。

  • また、XLOOKUPVLOOKUPHLOOKUPLOOKUPMATCHなど、このエラーが発生する一般的な関数について学習すると便利な場合があります。

この時点で何を行うか、どのようなヘルプが必要かわからない場合は、 Microsoft コミュニティで同様の質問を検索したり、独自の質問を投稿したりできます。

Excel コミュニティ フォーラムへのリンク

このエラーの修正に関するヘルプが必要な場合は、次のチェックリストを使用して、数式で問題が発生した可能性のある問題を特定するためのトラブルシューティング手順を示します。

参照値とソース データのデータ型が異なります。 たとえば、VLOOKUP で数値を参照しようとしているが、ソース データが文字列として保存されている場合などです。

値の型が正しくありません。  例は、ルックアップ項目が数値として書式設定されているが、ルックアップ テーブルが文字列として書式設定されているため、エラー値 #N/A を返す VLOOKUP 数式を示しています。

解決方法:データ型が同じになるようにします。 セルまたはセルの範囲を選択して右クリックし、[セルの書式設定]、[表示形式] の順に選択し (または Ctrl キーを押しながら 1 キーを押し)、必要に応じて、数値の書式設定を変更します。

[表示形式] タブと [文字列] オプションが選択された [セルの書式設定] ダイアログ ボックス

ヒント: 強制的に列全体の書式設定を変更する場合は、最初に目的の書式設定を適用して、[データ]、[区切り位置]、[完了] の順に選択します。

TRIM 関数を使って、先頭または末尾のスペースを削除することができます。 次の例では、TRIM をネストした VLOOKUP 関数を使用して、A2:A7 内の名前から余分な先頭のスペースを削除し、部署名を返しています。

配列数式で VLOOKUP と TRIM を使用して、先頭や末尾のスペースを削除します。  セル E3 の数式は {=VLOOKUP(D2,TRIM(A2:B7),2,FALSE)} で、Ctrl + Shift + Enter キーで入力する必要があります。

=VLOOKUP(D2,TRIM(A2:B7),2,FALSE)

注:  動的配列数式 - 現在のバージョンの Microsoft 365 をお持ちで、Insiders Fast リリース チャネルにいる場合、出力範囲の左上のセルに数式を入力し、[Enter] キーを押すと、数式を動的配列数式として確定することができます。 それ以外の場合、最初に出力範囲を選択し、出力範囲の左上のセルに数式を入力し、Ctrl + Shift + Enter キーを押して確定し、従来の配列数式として数式を入力する必要があります。 Excel によって、数式の先頭と末尾に中かっこが挿入されます。 配列数式の詳細については、「配列数式のガイドラインと例」を参照してください。

既定では、テーブル内の情報を検索する関数は、昇順で並べ替える必要があります。 ただし、VLOOKUP および HLOOKUP ワークシート関数には、テーブルが並べ替えされていない場合でも完全一致を検索するように関数に指示する range_lookup 引数が含まれています。 完全一致を検索するには、range_lookup 引数を FALSE に設定します。 TRUE に設定すると、関数が近似一致を検索するため、エラー値 #N/A が返されるだけでなく、次の例のように結果自体もエラーになる場合があります。

TRUE range_lookup 引数により結果がエラーになる可能性がある、VLOOKUP の使用例。

この例では、“Banana” がエラー値 #N/A を返しているだけでなく、“Pear” の価格も正しくありません。 これは、VLOOKUP に完全一致でなく近似一致を検索するように指示する TRUE 引数を使用していることが原因です。 “Banana” に近い一致がなく、アルファベット順で “Pear” が “Peach” よりも前にあります。 この場合、VLOOKUP を FALSE 引数とともに使用すると「[Pear」 には正しい価格を返しますが、やはり 「Banana」 はエラー値 N/A になります。これは参照リストに対応する 「Banana」 がないためです。

MATCH 関数を使っている場合は、match_type 引数の値を変更して、テーブルの並べ替え順序を指定してみてください。 完全一致を検索するには、match_type 引数を 0 (ゼロ) に設定します。

これを修正するには、配列数式で参照されている範囲に、配列数式が入力されたセルの範囲と同じ数の行と列があることを確認するか、配列数式を入力するセルの数を増減して、数式の範囲参照と一致させます。

この例では、セル E2 の参照範囲が一致していません。

範囲の参照が一致しないことが #N/A エラーの原因となっている、配列数式の例。  セル E2 の数式は {=SUM(IF(A2:A11=D2,B2:B5))}。CTRL+SHIFT+ENTER で入力する必要があります。

=SUM(IF(A2:A11=D2,B2:B5))

数式が正しく計算されるようにするには、両方の範囲が行 2-11 を反映するように数式を変更する必要があります。

=SUM(IF(A2:A11=D2,B2:B11))

注:  動的配列数式 - 現在のバージョンの Microsoft 365 をお持ちで、Insiders Fast リリース チャネルにいる場合、出力範囲の左上のセルに数式を入力し、[Enter] キーを押すと、数式を動的配列数式として確定することができます。 それ以外の場合、最初に出力範囲を選択し、出力範囲の左上のセルに数式を入力し、Ctrl + Shift + Enter キーを押して確定し、従来の配列数式として数式を入力する必要があります。 Excel によって、数式の先頭と末尾に中かっこが挿入されます。 配列数式の詳細については、「配列数式のガイドラインと例」を参照してください。

セルに入力された #N/A の例。この場合、SUM 数式で正しい計算が行われません。

この例では、May-December に #N/A の値があるため、Total を計算できず、代わりにエラー値 #N/A を返します。

これを修正するには、使っている関数の数式構文を確認し、エラーを返す数式のすべての必須引数を入力します。 関数を確認するために Visual Basic エディター (VBE) を使用しなければならない場合があります。 VBE には [開発] タブから、または Alt キーを押しながら F11 キーを押してアクセスします。

これを修正するには、ユーザー定義関数を含むブックが開いており、関数が正しく機能していることを確認します。

これを修正するには、関数内で正しい引数が正しい位置に指定されていることを確認します。

これを修正するには、Ctrl キー、Alt キー、F9 キーを同時に押して、シートの再計算を実行します。

適切な引数がわからない場合のために関数ウィザードを使用することができます。 対象の数式を含むセルを選択し、[数式] タブに移動し、[関数の挿入] を押します。

[関数の挿入] ボタン。

ウィザードが自動的に読み込まれます。

数式ウィザードのダイアログの例。

各引数をクリックすると、その引数に適した情報が表示されます。

#N/A は便利な場合もあります。 #N/A はグラフ上にプロットされないため、次のようなグラフのデータを使用する場合に、#N/A はよく使用されます。 0 (ゼロ) を使用したグラフと #N/A を使用したグラフを比較した例を次に示します。

0 (ゼロ) の値をプロットする折れ線グラフの例。

上の例では、0 (ゼロ) の値がプロットされ、グラフの下部に平らな線で表示されていますが、グラフは急上昇して合計を表示しています。 下の例では、0 (ゼロ) の値が #N/A で置き換えられています。

#N/A 値がプロットされない折れ線グラフの例。

Python オブジェクトには、定義された Excel 表現がありません。 Python オブジェクトは Excel に対して不明です。

ページの先頭へ

補足説明

Excel Tech Communityで、いつでも専門家に質問できます。また、コミュニティでは、サポートを受けられます。

関連項目

文字列として保存されている数値を数値形式に変換する

VLOOKUP 関数

HLOOKUP 関数

LOOKUP 関数

MATCH 関数

Excel の数式の概要

壊れた数式のエラーを回避する方法

数式のエラーを検出する

Excel のキーボード ショートカット

すべての Excel 関数 (アルファベット順)

全 Excel 関数 (機能別)

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。