Erreur #N/A avec RECHERCHEV : pourquoi, et comment la corriger
#N/A veut dire « non disponible » : RECHERCHEV n’a pas trouvé la valeur cherchée dans la première colonne de la table. Dans la plupart des cas, c’est un espace en trop, un nombre stocké en texte, ou le FAUX oublié à la fin de la formule.
Ce que #N/A veut dire
RECHERCHEV cherche une valeur dans la première colonne d’une table, puis renvoie ce qui se trouve sur la même ligne, dans la colonne que vous indiquez :
=RECHERCHEV(valeur_cherchée; table; numéro_de_colonne; FAUX)
#N/A n’est pas un bug : c’est Excel qui dit « je n’ai pas trouvé ». La formule est juste, c’est la recherche qui échoue. Il reste à comprendre pourquoi.
Cause 1 : la valeur n’est pas dans la première colonne de la table
RECHERCHEV ne cherche que dans la première colonne de la plage que vous lui donnez. Si votre table est B2:E100 et que le code cherché est en colonne D, elle ne le verra jamais.
Deux corrections : soit vous faites commencer la table par la colonne qui contient la valeur cherchée, soit vous passez à INDEX + EQUIV, qui n’ont pas cette contrainte (voir plus bas).
Cause 2 : des espaces, ou un nombre stocké en texte
C’est la cause la plus fréquente, et la plus sournoise : les deux valeurs ont l’air identiques.
- Un espace en fin de cellule (« 1042 » et « 1042 ») suffit. Vérifiez avec
=NBCAR(A2): si la longueur dépasse ce que vous voyez, il y a un espace. Nettoyez avec=SUPPRESPACE(A2). - Un nombre stocké en texte d’un côté, un vrai nombre de l’autre. Pour Excel, le texte « 1042 » et le nombre 1042 sont deux choses différentes. Testez avec
=ESTTEXTE(A2), convertissez avec=CNUM(A2), ou multipliez par 1.
Une formule robuste combine les deux :
=RECHERCHEV(CNUM(SUPPRESPACE(A2)); table; 3; FAUX)
Cause 3 : le FAUX oublié, ou VRAI par erreur
Le quatrième argument décide du mode de recherche. FAUX = correspondance exacte, ce que vous voulez presque toujours. Sans lui, ou avec VRAI, Excel fait une recherche approchée qui suppose la première colonne triée par ordre croissant. Sur une table non triée, le résultat est #N/A ou, pire, une valeur fausse sans aucune erreur.
Prenez l’habitude d’écrire le FAUX à chaque fois.
Cause 4 : la table bouge quand vous recopiez la formule
Vous écrivez la formule en ligne 2, elle marche. Vous la recopiez vers le bas, et #N/A apparaît à partir d’une certaine ligne. La table a glissé avec la recopie : B2:E100 est devenu B3:E101, puis B4:E102, et les dernières lignes sortent de la plage.
Figez la table avec des $ :
=RECHERCHEV(A2; $B$2:$E$100; 3; FAUX)
Le raccourci F4 dans la barre de formule pose les $ sur la référence sélectionnée.
Cacher #N/A proprement avec SIERREUR
Quand l’absence est normale (un client sans commande, un produit sans prix), on ne veut pas de #N/A dans le tableau. SIERREUR remplace l’erreur par ce que vous voulez :
=SIERREUR(RECHERCHEV(A2; $B$2:$E$100; 3; FAUX); "Introuvable")
À utiliser après avoir compris la cause, pas avant : SIERREUR cache aussi les vraies erreurs.
Aller plus loin : INDEX + EQUIV
INDEX + EQUIV fait la même chose que RECHERCHEV, sans ses deux limites : la colonne cherchée peut être n’importe où, et insérer une colonne dans la table ne casse pas la formule.
=INDEX($D$2:$D$100; EQUIV(A2; $B$2:$B$100; 0))
Lecture : dans D2:D100, prendre la ligne où B2:B100 vaut A2. Le 0 final joue le rôle du FAUX.