このトピックでは、"#N/A エラー" が表示される最も一般的な理由は、 INDEX 関数または MATCH 関数の結果であるものについて説明します。
注
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 では、数式が中かっこ {}で自動的に囲まれます。 自分で角かっこを入力しようとすると、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 技術コミュニティの専門家にいつでも質問するか、コミュニティでサポートを受けることができます。