Accueil › Fonctions Excel › RECHERCHEV › Erreur #N/A
Erreur #N/A dans RECHERCHEV : causes et solutions
#N/A signifie « non disponible » : RECHERCHEV a cherché votre valeur et ne l'a pas trouvée. Parfois, c'est normal, parce que la valeur n'est vraiment pas dans la liste. Mais souvent, la valeur est bien là et RECHERCHEV ne la voit toujours pas. Voici les causes, de la plus à la moins fréquente, et comment corriger chacune.
Dans ce guide
7 raisons pour lesquelles RECHERCHEV renvoie #N/A
| Cause | Comment la repérer | Solution |
|---|---|---|
| 1. La valeur est absente | Cherchez dans la liste avec Ctrl + F. | Ajoutez la valeur, ou affichez votre propre texte avec SI.NON.DISP. |
| 2. Des espaces en trop | « Mangue » suivi d'un espace ressemble à « Mangue ». | Nettoyez les données avec SUPPRESPACE. |
| 3. Un nombre stocké en texte | Un petit triangle vert dans la cellule, ou un nombre aligné à gauche. | Convertissez le texte en nombres. |
| 4. La mauvaise première colonne | La valeur est dans votre tableau, mais pas dans la première colonne de la plage. | Commencez la plage par la colonne dans laquelle vous cherchez. |
| 5. La plage s'est décalée | Les premières lignes fonctionnent, celles du bas donnent #N/A. | Figez la plage avec des signes $. |
| 6. Valeur proche sur des données non triées | Le dernier argument est VRAI ou absent. | Utilisez FAUX pour une correspondance exacte. |
| 7. Valeur proche en dessous de la plus petite valeur | Votre valeur est inférieure à la première ligne du tableau. | Ajoutez une ligne avec 0 en haut du tableau. |
Solution : les espaces en trop
Les données copiées depuis d'autres systèmes ont souvent des espaces au début ou à la fin. Pour vous, « Mangue » et « Mangue » suivi d'un espace sont identiques, mais Excel voit deux valeurs différentes. Vous pouvez vérifier une cellule avec NBCAR : si =NBCAR(A5) donne 7 pour « Mangue », il y a un espace caché.
La solution la plus rapide consiste à nettoyer la valeur cherchée dans la formule :
=RECHERCHEV(SUPPRESPACE(E2); A2:C7; 3; FAUX)Si les espaces sont dans le tableau lui-même, ajoutez une colonne avec SUPPRESPACE, ou nettoyez les données une fois avec Rechercher et remplacer.
Solution : les nombres stockés en texte
Un code comme 1004 peut être stocké comme le nombre 1004 ou comme le texte « 1004 ». RECHERCHEV les traite comme des valeurs différentes. C'est très courant avec les exports d'autres logiciels.
Si le tableau contient des nombres et que votre valeur cherchée est du texte, convertissez la valeur cherchée en nombre :
=RECHERCHEV(CNUM(E2); A2:C7; 3; FAUX)À l'inverse, quand le tableau contient du texte et que vous cherchez un nombre, assemblez-le avec un texte vide : E2&"" transforme 1004 en « 1004 ». Pour une solution permanente, lisez convertir du texte en nombre.
Solution : la mauvaise première colonne ou une plage qui se décale
RECHERCHEV ne cherche que dans la première colonne de la plage que vous lui donnez. Si vous cherchez un nom dans une plage qui commence par la colonne des codes, elle renvoie #N/A même si le nom est dans le tableau. Commencez la plage par la colonne qui contient les valeurs cherchées.
Si la formule fonctionne sur la première ligne mais pas plus bas, la plage s'est décalée en recopiant : A2:C7 est devenu A3:C8, puis A4:C9. Figez-la avec des signes $, comme $A$2:$C$7, pour que chaque copie cherche dans tout le tableau.
Masquer #N/A avec SI.NON.DISP ou SIERREUR
Parfois, #N/A est la bonne réponse : un nouveau code produit qui n'est pas encore dans votre liste. Vous ne voulez alors pas d'erreur dans votre rapport, mais un message clair. Entourez RECHERCHEV de SI.NON.DISP :
=SI.NON.DISP(RECHERCHEV(D2; A2:B6; 2; FAUX); "Code inconnu")SI.NON.DISP n'intercepte que #N/A. SIERREUR intercepte toutes les erreurs, y compris le #REF! d'un mauvais numéro de colonne : elle peut donc masquer des erreurs dans votre formule. C'est pourquoi SI.NON.DISP est le choix le plus sûr pour les recherches. Utilisez SIERREUR si vous travaillez aussi avec Excel 2010 ou une version plus ancienne, où SI.NON.DISP n'existe pas.
Exercice : affichez votre propre texte au lieu de #N/A
Le code en D2 n'est pas dans la liste des produits. Construisez une RECHERCHEV dans SI.NON.DISP pour que la cellule affiche « Code inconnu » au lieu de #N/A.
Exercice : dans la cellule E2, tapez =SI.NON.DISP(RECHERCHEV(D2;A2:B6;2;FAUX);"Code inconnu") pour afficher votre propre message. Activez JavaScript pour le faire de façon interactive.
Autres erreurs de RECHERCHEV
- #REF! : le numéro de colonne dépasse le nombre de colonnes de votre plage. Une plage A2:C7 a 3 colonnes : un 4 donne donc #REF!.
- #VALEUR! : le numéro de colonne est inférieur à 1, ou la valeur cherchée dépasse 255 caractères.
- #NOM? : le nom de la fonction est mal écrit, ou un texte de la formule n'est pas entre guillemets.
- Une mauvaise valeur sans erreur : le dernier argument manque, RECHERCHEV utilise donc une valeur proche. Ajoutez FAUX.
Pour toutes les erreurs d'Excel au même endroit, lisez les erreurs de formules Excel et comment les corriger.
Plus de guides sur RECHERCHEV
Questions fréquentes
Pourquoi RECHERCHEV renvoie-t-elle #N/A alors que la valeur existe ?
Les valeurs semblent identiques mais ne le sont pas : il y a un espace en trop, l'une est un nombre et l'autre du texte, ou la valeur n'est pas dans la première colonne de votre plage. Vérifiez avec NBCAR et ESTNUM sur les deux cellules.
Comment remplacer #N/A par 0 ou par une cellule vide ?
Entourez la formule de SI.NON.DISP et mettez le remplacement en second argument : 0 pour zéro, ou deux guillemets ("") pour une cellule qui semble vide.
SI.NON.DISP ou SIERREUR avec RECHERCHEV ?
SI.NON.DISP, chaque fois que possible. Elle ne masque que « introuvable » : les vraies erreurs, comme un mauvais numéro de colonne, restent visibles. SIERREUR masque toutes les erreurs.
Pourquoi RECHERCHEV fonctionne-t-elle sur une ligne et donne #N/A sur la suivante ?
En général, la plage du tableau s'est décalée en recopiant la formule vers le bas. Figez-la avec des signes $, comme $A$2:$C$7.