Aller au contenu principal
Mis à jour le

Comprendre et corriger l'erreur #N/A dans Excel

L'erreur #N/A est le code qu'Excel affiche quand une fonction de recherche ne trouve pas la valeur demandée, presque toujours au bout d'une RECHERCHEV, d'un INDEX/EQUIV ou d'une RECHERCHEX sans correspondance. Elle signifie « valeur non disponible » et signale une absence, pas une formule cassée. Son libellé reste #N/A en français, et la fonction NA() la renvoie même volontairement.

Cellule Excel affichant l'erreur #N/A avec le triangle vert d'alerte, renvoyée par une fonction de recherche dont la valeur est introuvable
L'erreur #N/A indique qu'une fonction de recherche n'a pas trouvé la valeur demandée dans sa plage.

Que signifie l'erreur #N/A dans Excel

L'erreur #N/A répond littéralement à « valeur non disponible », de l'anglais « Not Available ». C'est la signature des fonctions de recherche. RECHERCHEV, EQUIV ou RECHERCHEX ont balayé toute la plage sans y trouver la clé demandée, alors Excel n'a rien à renvoyer et écrit le code à la place du résultat.

Ce qui la distingue des autres erreurs, c'est qu'elle ne dénonce pas un calcul raté. La formule est correcte, la plage est valide, c'est la valeur qui manque à l'appel. Un #N/A est donc souvent une information plutôt qu'un défaut : il te dit exactement quelles lignes n'ont pas de correspondance entre deux tableaux.

Cette absence a pourtant deux visages qu'il faut séparer tout de suite. Tantôt la valeur cherchée n'existe vraiment nulle part, et le #N/A est une donnée manquante à assumer. Tantôt elle existe bel et bien, mais sous une forme qu'Excel ne reconnaît pas comme identique, et là c'est un faux négatif à corriger.

Le conseil du pro
Un #N/A dans des données brutes est souvent une information : il pointe une ligne sans correspondance. Le même #N/A dans un tableau de reporting est un signal, pas un défaut d'affichage à cacher avant de l'avoir compris.

Comment corriger l'erreur #N/A dans Excel

Corriger un #N/A commence par une question : la valeur existe-t-elle vraiment dans la table de recherche ? Si oui, c'est un problème de forme à nettoyer ; si non, c'est une absence à masquer proprement plutôt qu'à réparer.

  1. 1
    Vérifie d'abord si la valeur figure réellement dans la colonne de recherche. Si tu la vois à l'œil mais qu'Excel la renvoie quand même en #N/A, c'est que le problème vient de sa forme et non de son absence.
  2. 2
    Nettoie la valeur cherchée quand elle existe pourtant : enveloppe-la dans SUPPRESPACE pour retirer les espaces invisibles, et assure-toi qu'un nombre stocké en texte ne fait pas face à un vrai nombre dans la table.
  3. 3
    Contrôle que ta RECHERCHEV se termine bien par FAUX (ou 0) pour une correspondance exacte, et que la valeur cherchée se trouve dans la première colonne de la table. Sans le FAUX, elle renvoie une valeur approchée fausse au lieu de t'alerter.
  4. 4
    Si l'absence est normale et attendue, masque le code avec SI.NON.DISP plutôt que de le laisser à l'écran, ou avec le paramètre [si_non_trouvé] de RECHERCHEX sur Excel 365.
L'astuce en plus
Compter les clés sans correspondanceLa formule =NB.SI(table_source;A2)=0 renvoie VRAI dès qu'une clé de ta liste est absente de la table de recherche. Tirée le long de la colonne, elle compte d'un coup les valeurs orphelines avant que tu ne commences à corriger.

Pourquoi RECHERCHEV renvoie #N/A même quand la valeur existe

Le cas le plus déroutant, c'est un #N/A sur une référence que tu vois pourtant dans la table. Neuf fois sur dix, la valeur cherchée et celle de la table ne sont pas identiques pour Excel, même si elles se ressemblent trait pour trait à l'écran.

L'espace invisible est le premier coupable. Une clé saisie REF001 avec une espace en fin ne correspond pas à REF001, et RECHERCHEV renvoie #N/A alors que les deux paraissent jumelles. Un SUPPRESPACE autour de la valeur cherchée règle ce cas en la débarrassant de ses espaces superflus.

Le second coupable, c'est le nombre stocké en texte. Un code "42" tapé comme texte ne retrouve pas le 42 numérique de la table, parce qu'Excel n'assimile jamais les deux types l'un à l'autre. La casse, en revanche, n'y est pour rien : RECHERCHEV ignore majuscules et minuscules, et ref001 retrouve REF001 sans broncher.

Croisement d'un export de devis et d'un catalogue tarifaire où RECHERCHEV renvoie #N/A pour une référence saisie avec un espace et pour des produits absents du catalogue.
REF001 figure pourtant dans le catalogue mais renvoie #N/A à cause d'une espace en fin de saisie, tandis que REF104 et REF120 sont réellement absents.

Quelle différence entre les erreurs #N/A, #REF! et #VALEUR!

Les trois codes prennent la même place dans la cellule mais racontent des problèmes de nature différente. Le #N/A veut dire que la fonction de recherche a bien cherché sans trouver la valeur : les données sont intactes, c'est la correspondance qui manque.

Le #VALEUR! répond au cas où la formule trouve du texte là où elle attendait un nombre, donc un problème de contenu et non d'absence. Le #REF!, lui, signale une adresse qui n'existe plus, le plus souvent après la suppression d'une ligne ou d'une colonne, donc une référence cassée dans la structure même du classeur.

Cette différence commande la réparation. Un #N/A se traite en nettoyant ou en complétant les données, tout comme un #VALEUR!, alors qu'un #REF! oblige à reconstruire une référence que le fichier ne connaît plus. C'est aussi pourquoi un #N/A peut rester une information utile, là où un #REF! mérite toujours d'être réparé.

Comment remplacer l'erreur #N/A par 0 ou par une cellule vide

Quand l'absence est normale, tu peux remplacer le #N/A par 0, par un tiret ou par une cellule vide. Deux fonctions le font, et le choix entre les deux change tout : SIERREUR attrape n'importe quelle erreur, alors que SI.NON.DISP n'attrape que le #N/A.

C'est cette nuance qui fait pencher pour SI.NON.DISP. Une formule =SI.NON.DISP(RECHERCHEV(...);"") masque l'introuvable mais laisse passer un #VALEUR! ou un #REF!, qui restent visibles pour t'avertir d'un vrai bug. La même chose écrite avec =SIERREUR(...) fait plus court et éteint tout, y compris les erreurs que tu voulais justement voir.

La valeur de remplacement se choisit ensuite selon le message que tu veux faire passer. Une cellule vide se fond dans le tableau, un 0 fausse une somme ou une moyenne posée dessus, un texte comme "Non trouvé" dit clairement qu'il manque une donnée. Sur Excel 365, le paramètre [si_non_trouvé] de RECHERCHEX rend le même service sans ajouter de fonction autour.

Le savais-tu ?
La fonction NA() écrit un #N/A exprès, et c'est parfois exactement ce qu'on veut. Dans un graphique, un point en #N/A est ignoré et la courbe enjambe le trou, là où un 0 creuserait un pic vers le bas.
FAQ

Questions fréquentes sur l'erreur #N/A

Utilise la fonction ESTNA, qui renvoie VRAI uniquement si la cellule affiche un #N/A, et FAUX pour toute autre valeur ou erreur. Tu la combines souvent avec SI, par exemple =SI(ESTNA(A2);"absent";A2), pour traiter le cas introuvable sans toucher aux autres erreurs. C'est plus fin que SIERREUR, qui réagirait à n'importe quelle erreur. ESTNA existe aussi dans sa version générale ESTERREUR, mais celle-ci ne fait plus la distinction entre un #N/A et un vrai bug.