このトピックでは、 INDEX関数または MATCH 関数の結果として"#N/A エラー" が表示される最も一般的な理由について説明します。
注: INDEX 関数または MATCH 関数で、#N/A ではなく意味のある値を返す場合は、IFERROR 関数を使用し、その関数内で INDEX 関数と MATCH 関数を入れ子にします。 #N/A を独自の値に置き換えると、エラーのみが識別されますが、解決されません。 そのため、 IFERROR を使用する前に、数式が意図したとおりに正しく動作していることを確認することが非常に重要です。
問題:一致するデータがありません
MATCH 関数は、ルックアップ配列にルックアップ値が見つからない場合、#N/A エラーを返します。
スプレッドシートにデータが存在すると思われるが、 MATCH が見つからない場合は、次の理由が考えられます。
-
セルに予期しない文字や非表示のスペースがある。
-
セルが適切なデータ型として書式設定されていない。 たとえば、セルに数値がありますが、文字列として書式設定されている場合があります。
解決策: 予期しない文字または非表示のスペースを削除するには、 それぞれ CLEAN 関数または TRIM 関数を使用します。 また、セルが正しいデータ型として書式設定されているかどうかを確認します。
Ctrl + Shift + Enter キーを押さずに、配列数式を使用している
INDEX、MATCH、またはその 2 つの関数の組み合わせで配列を使用する場合は、キーボードで Ctrl + Shift + Enter キーを押す必要があります。 Excel では、数式が中かっこ {} 内に自動的に囲まれます。 自分で角かっこを入力しようとすると、数式がテキストとして表示されます。
注: 現在のバージョンの Microsoft 365 がある場合は、出力セルに数式を入力するだけで、 Enter キーを押して、数式を動的配列数式として確認できます。 それ以外の場合は、最初に出力範囲を選択し、出力セルに数式を入力し、 Ctrl + Shift + Enter キー を押して確認することで、数式をレガシ配列数式として入力する必要があります。 Excel によって、数式の先頭と末尾に中かっこが挿入されます。 配列数式の詳細については、「配列数式のガイドラインと例」を参照してください。
問題:一致の種類とデータの並べ替え順序に不整合がある
MATCH を使用する場合、match_type引数の値とルックアップ配列内の値の並べ替え順序の間に一貫性が必要です。 構文が次のルールと異なる場合、#N/A エラーが表示されます。
-
match_type が 1 であるか、指定されていない場合、lookup_arrayの値は昇順にする必要があります。 たとえば、-2、-1、0、1、2…、A、B、C…、FALSE、TRUE などです。
-
match_type が -1 の場合、lookup_arrayの値は降順にする必要があります。
次の例では、 MATCH 関数は
=MATCH(40,B2:B10,-1)
構文の match_type 引数は -1 に設定されています。つまり、B2:B10 の値の順序は、数式が機能するために降順である必要があります。 ただし、値は昇順であり、#N/A エラーが発生します。
解決: match_type 引数を 1 に変更するか、テーブルを降順で並べ替えます。 その後、もう一度お試しください。
補足説明
Excel Tech Communityで、いつでも専門家に質問できます。また、コミュニティでは、サポートを受けられます。