L'erreur #N/A
C'est l'erreur des recherches : RECHERCHEV, RECHERCHEX, EQUIV ou INDEX n'ont pas trouvé la valeur demandée. Neuf fois sur dix, la valeur est bien là, mais écrite un peu autrement.
Ce qu'elle veut dire
#N/A signifie « non disponible » (not available). Une fonction de recherche a parcouru la plage sans trouver la valeur, et le dit plutôt que de rendre un résultat faux.
C'est la plus utile des erreurs : elle signale un vrai trou dans les données. La masquer sans comprendre, c'est perdre l'information.
D'où elle vient
- Des espaces en trop : « Dupont » et « Dupont » (avec un espace à la fin) ne sont pas la même valeur. Les exports de logiciels en sont pleins, espaces insécables compris.
- Un nombre stocké en texte d'un côté : le code 1024 est un nombre dans un fichier et un texte dans l'autre (petit triangle vert). Pour Excel, ils sont différents.
- La plage de recherche a glissé : la formule a été recopiée vers le bas sans
$, etB2:E50est devenuB40:E88. Les premières valeurs ne sont plus dans la plage. - La valeur est vraiment absente : un client nouveau, un code mal saisi.
- Une correspondance approchée sur une liste non triée : RECHERCHEV sans quatrième argument cherche une valeur approchée et peut renvoyer #N/A (ou pire, un faux résultat).
- La fonction NA() écrite volontairement, souvent pour qu'un graphique ignore un point.
La corriger
- Terminer RECHERCHEV par
;FAUXpour une recherche exacte :=RECHERCHEV(A2;Clients!$A:$C;3;FAUX). - Nettoyer les deux colonnes comparées :
=SUPPRESPACE(A2), ou Nettoyer le texte sur tout le fichier. - Mettre les deux côtés dans le même type : Convertir le texte en nombres, ou
=CNUM(A2)dans la formule. - Figer la plage de recherche avec des
$avant de recopier :$B$2:$E$50. - Vérifier que la valeur existe :
=NB.SI(Clients!A:A;A2)rend 0 si elle est absente.
La masquer, quand elle est attendue
Quand l'absence est normale (un produit sans remise, un client sans commande), =SI.NON.DISP(RECHERCHEV(…);"") affiche une cellule vide. SI.NON.DISP ne masque que #N/A ; SIERREUR masquerait aussi une faute de frappe ou une plage cassée.
Avec RECHERCHEX, le quatrième argument dit quoi rendre : =RECHERCHEX(A2;Clients!A:A;Clients!C:C;"Inconnu").
Les outils qui aident
- Croiser deux fichiers : le RECHERCHEV entre deux fichiers, sans formule, qui neutralise espaces, casse et nombres en texte, et liste les clés introuvables.
- Expliquer une formule : signale la correspondance approchée et la plage qui glisse.
- Trouver la bonne formule : la recherche écrite pour vous, plages figées comprises.
Questions fréquentes
- Pourquoi RECHERCHEV renvoie #N/A alors que la valeur existe ?
- Presque toujours à cause d'une différence invisible : un espace en trop, un nombre stocké en texte d'un côté seulement, ou une plage de recherche qui a glissé à la recopie faute de
$. - Faut-il utiliser SIERREUR ou SI.NON.DISP ?
- SI.NON.DISP autour d'une recherche : il ne masque que « introuvable ». SIERREUR masque toutes les erreurs, y compris celles qui signalent une formule cassée.