Pourquoi RECHERCHEV renvoie #N/A ?
Corrigez l’erreur #N/A de RECHERCHEV : correspondance exacte, clés absentes, types texte et nombre, espaces, plages et gestion sûre des erreurs.
Cause 1 : la clé diffère par un caractère caché
La cause la plus fréquente est une clé qui semble correcte mais ne l’est pas : une espace finale, une espace insécable issue d’un export web, ou un caractère non imprimable. Si E2 contient "S-20 " avec une espace finale, =VLOOKUP(E2,$A$2:$C$100,2,FALSE) échoue alors que S-20 figure bien dans le tableau. Comparez =LEN(E2) à la longueur attendue pour le confirmer.
Nettoyez la clé dans la recherche : =VLOOKUP(TRIM(E2),$A$2:$C$100,2,FALSE). TRIM supprime les espaces ordinaires ; pour une espace insécable, ajoutez SUBSTITUTE(E2,CHAR(160)," "), et CLEAN pour les caractères non imprimables. Nettoyer une fois la colonne source vaut mieux que d’intégrer des réparations dans chaque recherche.
Cause 2 : les nombres et le texte ne correspondent pas
Le texte "123" et le nombre 123 peuvent paraître identiques tout en échouant à une recherche exacte. Diagnostiquez avec ISNUMBER et ISTEXT, puis convertissez le côté dont le type de stockage est erroné : VALUE transforme du texte numérique en nombre, et la concaténation &"" transforme un nombre en texte. Ne convertissez pas les codes qui exigent des zéros de tête. La colonne du tableau et la valeur cherchée doivent avoir le même type.
Cause 3 : correspondance approximative et plage qui dérive
Si le quatrième argument vaut TRUE ou est omis, VLOOKUP suppose que la première colonne est triée par ordre croissant et renvoie la dernière valeur inférieure ou égale à la clé. Sur des données correctement triées, elle ne renvoie #N/A que si la clé est plus petite que le premier élément. Sinon, elle peut renvoyer silencieusement une mauvaise ligne pour une clé qui n’est pas du tout dans le tableau. Utilisez FALSE pour les identifiants, les noms et les codes.
Un #N/A apparenté vient de la plage. Sans signes dollar, A2:C100 devient A3:C101 à la ligne suivante et abandonne peu à peu des enregistrements valides. VLOOKUP ne cherche en outre que dans la première colonne de table_array : une clé située en colonne B exige donc un autre début de tableau, XLOOKUP, ou INDEX avec MATCH.
Toutes les erreurs ne sont pas #N/A
Un indice de colonne supérieur à la largeur du tableau renvoie #REF!, pas #N/A : avec un tableau de trois colonnes, l’indice 4 échoue. Un indice inférieur à 1 renvoie #VALUE! (#VALEUR! dans Excel en français). Distinguer ces erreurs fait gagner du temps, car #N/A pointe vers la clé ou le type de correspondance, tandis que #REF! pointe vers l’indice de colonne.
Une fois la cause connue, =IFNA(VLOOKUP(TRIM(E2),$A$2:$C$100,2,FALSE),"Not found") ne remplace que #N/A, ce qui convient à une clé manquante attendue. IFERROR masque aussi les références cassées et les indices invalides. =XLOOKUP(E2,A2:A100,B2:B100,"Not found") dispose d’un argument « introuvable » explicite, mais les clés absentes ou incohérentes doivent tout de même être corrigées.
À vous de jouer
E2 contient un SKU copié depuis un export, avec une espace finale parasite : une VLOOKUP simple renvoie donc #N/A. En F2, renvoyez l’article avec une VLOOKUP exacte, en appliquant TRIM à la clé.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | SKU | Item | Price | Find SKU | Item | |
| 2 | S-10 | Notebook | 6 | S-20 | ||
| 3 | S-20 | Marker | 3 | |||
| 4 | S-30 | Folder | 5 | |||
| 5 | S-40 | Tape | 4 |
Réponse : =VLOOKUP(TRIM(E2),A2:C5,2,FALSE)
Exemple vérifié
E2 contient « S-20 » avec une espace finale. La première formule échoue ; les lignes suivantes montrent la correction et trois échecs apparentés.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | SKU | Item | Price | Find SKU | |
| 2 | S-10 | Notebook | 6 | S-20 | |
| 3 | S-20 | Marker | 3 | ||
| 4 | S-30 | Folder | 5 | ||
| 5 | S-40 | Tape | 4 |
| Formule | Résultat |
|---|---|
=VLOOKUP(E2,A2:C5,2,FALSE) | #N/A |
=LEN(E2)-LEN(TRIM(E2)) | 1 |
=VLOOKUP(TRIM(E2),A2:C5,2,FALSE) | "Marker" |
=IFNA(VLOOKUP(E2,A2:C5,2,FALSE),"Not found") | "Not found" |
=VLOOKUP("S-25",A2:C5,2,TRUE) | "Marker" |
=VLOOKUP("S-05",A2:C5,2,TRUE) | #N/A |
=VLOOKUP("S-20",A2:C5,4,FALSE) | #REF! |
Erreurs fréquentes
- Omettre FALSE pour une recherche exacte d’identifiant.
- Chercher dans une colonne qui n’est pas la première de table_array.
- Envelopper la formule dans
IFERRORavant d’avoir trouvé la cause.
Questions fréquentes
#N/A signifie-t-il que la formule est cassée ?
Pas toujours. Cela signifie souvent que la clé exacte demandée est absente, ce qui peut être une situation de données tout à fait valide.
Pourquoi 123 ne correspond-il pas à 123 ?
L’un est peut-être numérique et l’autre du texte, ou l’un contient des caractères cachés.
Dois-je utiliser IFERROR ?
Préférez IFNA pour une correspondance manquante attendue. N’utilisez IFERROR que si intercepter toutes les erreurs est voulu.
RECHERCHEX résoudrait-elle le problème de #N/A ?
Elle améliore la syntaxe et le libellé des erreurs, mais les clés absentes ou incohérentes doivent tout de même être corrigées.
Mettre la compétence en pratique
Poursuivez avec une leçon FormulaCamp vérifiée (en anglais) : The VLOOKUP Function (en anglais) Gratuit
Ouvrir la leçon gratuite (en anglais)