Table des matières
Ce tutoriel montre comment vous pouvez corriger rapidement les erreurs courantes de VLOOKUP et surmonter ses principales limitations.
Dans quelques articles précédents, nous avons exploré différents aspects de la fonction VLOOKUP d'Excel. Si vous nous avez suivis de près, vous devriez maintenant être un expert dans ce domaine :)
Cependant, ce n'est pas sans raison que de nombreux spécialistes d'Excel considèrent VLOOKUP comme l'une des fonctions Excel les plus complexes, car elle présente une multitude de limitations qui sont à l'origine de divers problèmes et erreurs.
Dans cet article, vous trouverez des explications simples sur les principales causes d'erreurs VLOOKUP telles que #N/A, #NAME et #VALUE, ainsi que leurs solutions et correctifs. Nous commencerons par les raisons les plus évidentes pour lesquelles VLOOKUP ne fonctionne pas, il serait donc judicieux de consulter les étapes de dépannage ci-dessous dans l'ordre.
Correction de l'erreur #N/A dans VLOOKUP
Dans les formules VLOOKUP, le message d'erreur #N/A (signifiant "non disponible") s'affiche lorsqu'Excel ne trouve pas une valeur de référence. Plusieurs raisons peuvent expliquer ce phénomène.
1. la valeur de la recherche est mal orthographiée
Il est toujours bon de vérifier d'abord la chose la plus évidente : ) Les erreurs d'impression se produisent fréquemment lorsque vous travaillez avec de très grands ensembles de données composés de milliers de lignes, ou lorsqu'une valeur de consultation est saisie directement dans la formule.
2. #N/A en correspondance approximative VLOOKUP
Si votre formule recherche la correspondance la plus proche, ( recherche de plage défini à TRUE ou omis), l'erreur #N/A peut apparaître dans deux cas :
- La valeur de référence est plus petite que la plus petite valeur du tableau de référence.
- La colonne de consultation n'est pas triée par ordre croissant.
3. #N/A en correspondance exacte VLOOKUP
Si vous recherchez une correspondance exacte ( recherche de plage défini sur FALSE), l'erreur #N/A se produit lorsqu'une valeur exactement égale à la valeur de recherche n'est pas trouvée. Pour plus d'informations, voir VLOOKUP correspondance exacte vs. correspondance approximative.
4. la colonne de recherche n'est pas la colonne la plus à gauche du tableau.
L'une des limitations les plus importantes du VLOOKUP d'Excel est qu'il ne peut pas regarder à sa gauche. Par conséquent, une colonne de consultation doit toujours être le colonne la plus à gauche Dans la pratique, nous l'oublions souvent et nous nous retrouvons avec des erreurs #N/A.
Solution : S'il n'est pas possible de restructurer vos données de manière à ce que la colonne de recherche soit la colonne la plus à gauche, vous pouvez utiliser les fonctions INDEX et MATCH ensemble comme alternative à VLOOKUP. Voici un exemple de formule : INDEX MATCH formule pour rechercher les valeurs à gauche.
5. les nombres sont formatés comme du texte
Une autre source fréquente d'erreurs #N/A dans les formules VLOOKUP est constituée par les chiffres formatés en tant que texte, que ce soit dans la table principale ou dans la table de consultation.
Cela se produit généralement lorsque vous importez des données à partir d'une base de données externe ou si vous avez tapé une apostrophe devant un nombre pour afficher les zéros de tête.
Voici les indicateurs les plus évidents des chiffres formatés en tant que texte :
Solution : Sélectionnez tous les numéros problématiques, cliquez sur l'icône d'erreur et choisissez Convertir en nombre Pour plus d'informations, veuillez consulter Comment convertir du texte en nombre dans Excel.
6. espaces de tête ou de queue
Il s'agit de la cause la moins évidente de l'erreur VLOOKUP #N/A car l'œil humain peut difficilement repérer ces espaces supplémentaires, surtout lorsqu'on travaille avec de grands ensembles de données où la plupart des entrées se trouvent en dessous du curseur.
Solution 1 : Espaces supplémentaires dans la valeur de recherche
Pour garantir le bon fonctionnement de votre formule VLOOKUP, enveloppez la valeur de consultation dans la fonction TRIM :
=VLOOKUP(TRIM(E1), A2:C10, 2, FALSE)
Solution 2 : Espaces supplémentaires dans la colonne de recherche
Si des espaces supplémentaires apparaissent dans la colonne de consultation, il n'existe pas de moyen simple d'éviter les erreurs #N/A dans VLOOKUP. Au lieu de cela, vous pouvez utiliser une combinaison des fonctions INDEX, MATCH et TRIM comme formule de tableau :
=INDEX(B2:B10, MATCH(TRUE, TRIM(A$2:A$10)=TRIM(E1), 0))
Comme il s'agit d'une formule de tableau, n'oubliez pas d'appuyer sur les touches Ctrl + Shift + Enter pour la compléter correctement (dans Excel 365 et Excel 2021, où les tableaux sont natifs, cette formule fonctionne également comme une formule ordinaire).
Conseil : une alternative rapide consiste à utiliser l'outil Trim Spaces qui éliminera les espaces superflus dans les tables de consultation et principale en quelques secondes, ce qui rendra vos formules VLOOKUP sans erreur.
Erreur #VALUE ! dans les formules VLOOKUP
En général, Microsoft Excel affiche l'erreur #VALUE ! si une valeur utilisée dans la formule est d'un type de données incorrect. En ce qui concerne le VLOOKUP, il existe deux sources courantes d'erreur VALUE !
1. la valeur de la recherche dépasse 255 caractères
Veuillez noter que VLOOKUP ne peut pas rechercher des valeurs contenant plus de 255 caractères. Si vos valeurs de recherche dépassent cette limite, une erreur #VALUE ! s'affichera :
Solution : Utilisez plutôt une formule INDEX MATCH. Dans notre cas, cette formule fonctionne parfaitement :
=INDEX(B2:B7, MATCH(TRUE, INDEX(A2:A7= E1, 0), 0))
2. le chemin complet du classeur de recherche n'est pas fourni
Si vous extrayez des données d'un autre classeur, vous devez indiquer le chemin d'accès complet à celui-ci. Plus précisément, vous devez placer le nom du classeur, y compris l'extension, entre [crochets] et spécifier le nom de la feuille suivi d'un point d'exclamation. Si le nom du classeur ou de la feuille, ou les deux, contiennent des espaces ou des caractères non alphabétiques, le chemin d'accès doit être placé entre guillemets simples.
Voici la structure de la tableau_réseau à Vlookup à partir d'un autre classeur :
'[nom du classeur]nom de la feuille'!plage
Une formule réelle pourrait ressembler à ceci :
=VLOOKUP($A$2,'[New Prices.xls]Sheet1'!$B:$D, 3, FALSE)
La formule ci-dessus recherchera la valeur de A2 dans la colonne B de la feuille 1 dans la base de données de l'entreprise. Nouveaux prix et renvoie une valeur correspondante de la colonne D.
Si un élément du chemin d'accès est manquant, votre formule VLOOKUP ne fonctionnera pas et renverra l'erreur #VALUE (sauf si le classeur de consultation est ouvert).
Pour plus d'informations, veuillez consulter :
- Comment faire référence à une autre feuille ou un autre classeur dans Excel ?
- Comment faire un Vlookup à partir d'un autre classeur ?
3. l'argument col_index_num est inférieur à 1
Il est difficile d'imaginer une situation où quelqu'un entrerait intentionnellement un nombre inférieur à 1 pour spécifier la colonne à partir de laquelle renvoyer les valeurs. Mais cela peut arriver si cet argument est renvoyé par une autre fonction imbriquée dans votre formule VLOOKUP.
Donc, si le col_index_num est supérieur à 1, votre formule renverra également l'erreur #VALEUR !
Si col_index_num est supérieur au nombre de colonnes du tableau, VLOOKUP produit l'erreur #REF !
Résolution de l'erreur VLOOKUP #NAME
C'est le cas le plus simple - l'erreur #NAME ? apparaît si vous avez accidentellement mal orthographié le nom de la fonction.
La solution est évidente - vérifiez l'orthographe :)
Les principales causes d'erreurs dans Excel VLOOKUP
En plus d'avoir une syntaxe assez compliquée, VLOOKUP a sans doute plus de limites que toute autre fonction Excel. En raison de ces limites, une formule apparemment correcte peut souvent donner des résultats différents de ceux que vous attendiez. Vous trouverez ci-dessous des solutions pour quelques scénarios typiques où VLOOKUP échoue.
VLOOKUP est insensible à la casse
La fonction VLOOKUP ne distingue pas la casse des lettres et traite les caractères minuscules et majuscules comme identiques.
Solution : Utilisez VLOOKUP, XLOOKUP ou INDEX MATCH en combinaison avec la fonction EXACT qui peut faire la distinction entre les majuscules et les minuscules. Vous trouverez des explications détaillées et des exemples de formules dans ce tutoriel : 5 façons d'effectuer un Vlookup sensible à la casse dans Excel.
Une nouvelle colonne a été insérée ou supprimée de la table
Malheureusement, les formules VLOOKUP cessent de fonctionner chaque fois qu'une nouvelle colonne est supprimée ou ajoutée au tableau de consultation. Cela se produit parce que la syntaxe de la fonction VLOOKUP nécessite de définir le numéro d'index de la colonne de retour. Lorsqu'une nouvelle colonne est ajoutée ou supprimée du tableau de consultation, ce numéro d'index change évidemment.
Solution La formule INDEX MATCH vient à nouveau à la rescousse : ) Avec INDEX MATCH, vous spécifiez les plages de recherche et de retour séparément, ce qui vous permet de supprimer ou d'insérer autant de colonnes que vous le souhaitez sans vous soucier de mettre à jour chaque formule associée.
Les références des cellules changent lors de la copie de la formule dans d'autres cellules
L'intitulé donne une explication exhaustive du problème, n'est-ce pas ?
Solution : Utilisez toujours des références absolues (avec le signe $) pour les tableau_réseau par exemple $A$2:$C$100 ou $A:$C. Vous pouvez rapidement passer d'un type de référence à un autre en appuyant sur la touche F4.
VLOOKUP retourne la première valeur trouvée
Comme vous le savez déjà, le VLOOKUP d'Excel renvoie la première valeur qu'il trouve. Cependant, vous pouvez le forcer à renvoyer la 2ème, 3ème, 4ème ou toute autre occurrence que vous souhaitez. Il existe également un moyen d'obtenir la dernière correspondance ou toutes les correspondances trouvées.
Solutions : Des exemples de formules sont disponibles ici :
- VLOOKUP et retour de la Nième occurrence
- VLOOKUP valeurs multiples
- Formule XLOOKUP pour obtenir la dernière correspondance
Pourquoi mon VLOOKUP fonctionne-t-il pour certaines cellules mais pas pour d'autres ?
Lorsque votre formule VLOOKUP renvoie des données correctes dans certaines cellules et des erreurs #N/A dans d'autres, plusieurs raisons peuvent expliquer ce phénomène.
1. le tableau de la table n'est pas verrouillé
Supposons que vous ayez cette formule à la ligne 2 (disons en E2), ce qui fonctionne bien :
=VLOOKUP(D2, A2:B10, 2, FALSE)
Lorsqu'elle est copiée sur la ligne 3, la formule devient la suivante :
=VLOOKUP(D3, A3:B11, 2, FALSE)
Parce qu'une référence relative est utilisée pour tableau_réseau il change en fonction de la position relative de la ligne où la formule est copiée, dans notre cas de A2:B10 à A3:B11. Donc, si la correspondance se trouve à la ligne 2, elle ne sera pas trouvée !
Solution : Lorsque vous utilisez une formule VLOOKUP pour plusieurs cellules, il faut toujours verrouiller le tableau de la table référence avec le signe $ comme $A$2:$B$10.
2. les valeurs de texte ou les types de données ne correspondent pas
Une autre raison fréquente de l'échec d'un VLOOKUP est la différence entre votre valeur de consultation et une valeur similaire dans la colonne de consultation. Dans certains cas, la différence est si subtile qu'elle est difficile à repérer visuellement.
Solution Lorsque VLOOKUP renvoie une erreur #N/A alors que vous pouvez clairement voir la valeur de la consultation dans la colonne de consultation, et qu'apparemment les deux s'écrivent exactement de la même façon, la première chose à faire est de déterminer la cause du problème - la formule ou les données sources.
Pour voir si les deux valeurs sont identiques ou différentes, effectuez une comparaison directe de cette manière :
=E1=A4
Où E1 est votre valeur de référence et A4 est une valeur identique dans la colonne de référence.
Si la formule renvoie un résultat FAUX, cela signifie que les valeurs diffèrent d'une manière ou d'une autre, bien qu'elles soient absolument identiques.
En cas de valeurs numériques La raison la plus probable est que les chiffres sont formatés comme du texte.
En cas de valeurs du texte Pour vérifier cela, déterminez la longueur totale des deux chaînes de caractères à l'aide de la fonction LEN :
=LEN(E1)
=LEN(A4)
Si les chiffres obtenus sont différents (comme dans la capture d'écran ci-dessous), vous avez trouvé le coupable : les espaces supplémentaires :
Pour résoudre ce problème, il faut soit supprimer les espaces supplémentaires, soit utiliser cette formule INDEX MATCH TRIM comme solution de rechange.
Pourquoi mon VLOOKUP affiche-t-il des données erronées ?
Il peut y avoir encore d'autres raisons pour lesquelles votre VLOOKUP renvoie une valeur erronée :
- Mode de recherche incorrect Si vous souhaitez une correspondance exacte, veillez à définir l'option recherche de plage La valeur par défaut est TRUE, donc si vous omettez cet argument, VLOOKUP supposera que vous recherchez une correspondance approximative et cherchera la valeur la plus proche qui est plus petite que la valeur de recherche.
- La colonne de consultation n'est pas triée Pour une correspondance approximative VLOOKUP ( recherche de plage défini à TRUE) pour fonctionner correctement, la première colonne du tableau doit être triée dans l'ordre croissant, du plus petit au plus grand.
- Duplicatas dans la colonne de recherche Si la colonne de recherche contient deux ou plusieurs valeurs en double, VLOOKUP renvoie la première correspondance trouvée, qui peut ne pas être celle que vous attendez.
- Colonne de retour incorrecte Vérifiez le numéro d'index dans le 3ème argument :)
VLOOKUP ne fonctionne pas entre deux feuilles
Tout d'abord, il convient de noter que les raisons courantes des erreurs #N/A, #VALUE et #REF évoquées ci-dessus peuvent causer les mêmes problèmes lors de la consultation d'une autre feuille. Si ce n'est pas le cas, vérifiez les points suivants :
- Assurez-vous que la référence externe à une autre feuille ou à un classeur différent est correcte.
- Lorsque l'on effectue un Vlookup à partir d'un autre classeur qui est fermé pour le moment, vérifiez que votre formule contient le chemin complet du classeur fermé.
- Si VLOOKUP Impossible de sélectionner un tableau dans une autre feuille de calcul (c'est-à-dire que lorsque vous mettez en surbrillance une plage dans la feuille de consultation, rien n'apparaît dans la fenêtre d'aperçu). tableau_réseau dans la formule ou dans le champ correspondant de l'assistant de formule), il est fort probable que les deux feuilles soient ouvertes dans des instances distinctes d'Excel et qu'elles ne puissent pas communiquer entre elles. Pour plus d'informations, voir Comment déterminer quels fichiers Excel se trouvent dans quelle instance. Pour résoudre ce problème, il suffit de fermer toutes les fenêtres Excel, puis de rouvrir les feuilles/cahiers de travail dans la même instance (comportement par défaut).
Comment faire un Vlookup sans erreur dans Excel
Si vous ne souhaitez pas intimider vos utilisateurs avec les notations d'erreur standard d'Excel, vous pouvez afficher votre propre texte convivial à la place ou renvoyer une cellule vierge si rien n'est trouvé, en utilisant VLOOKUP avec la fonction IFERROR ou IFNA.
Capturez toutes les erreurs
Dans Excel 2007 et les versions ultérieures, vous pouvez utiliser la fonction IFERROR pour vérifier l'absence d'erreurs dans une formule VLOOKUP et renvoyer votre propre texte (ou une chaîne vide) dans les cas suivants toute erreur est détecté.
Par exemple :
=IFERROR(VLOOKUP(E1, A2:B10, 2, FALSE), "Oops, something went wrong")
Dans Excel 2003 et antérieur, vous pouvez utiliser la formule IF ISERROR dans le même but :
=IF(ISERROR(VLOOKUP(E1, A2:B10, 2, FALSE)), "Oops, something went wrong", VLOOKUP(E1, A2:B10, 2, FALSE))
Pour plus de détails, veuillez consulter la section Utilisation de IFERROR avec VLOOKUP dans Excel.
Traiter les erreurs #N/A
Pour piéger uniquement les erreurs #N/A en ignorant tous les autres types d'erreurs, utilisez la fonction IFNA (dans Excel 2013 et supérieur) ou la formule IF ISNA (dans toutes les versions).
Par exemple :
=IFNA(VLOOKUP(E1, A2:B10, 2, FALSE), "Oops, no match is found. Please try again !")
=IF(ISNA(VLOOKUP(E1, A2:B10, 2, FALSE)), "Oops, no match is found. Please try again !", VLOOKUP(E1, A2:B10, 2, FALSE))
C'est tout pour aujourd'hui. Nous espérons que ce tutoriel vous aidera à vous débarrasser des erreurs VLOOKUP et à faire fonctionner vos formules comme vous le souhaitez.