Aller au contenu
Klargrid

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 $, et B2:E50 est devenu B40: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 ;FAUX pour 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

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.