Votre formule VLOOKUP
(ou RECHERCHEV
) vous renvoie une valeur qui ne correspond pas à la ligne ciblée ? Suivez ce guide pour comprendre chaque cause possible et appliquer la bonne correction sans perdre des heures à tâtonner.
Sommaire
Vue d’ensemble du problème
Un utilisateur dispose :
- d’un classeur A (Excel 1) contenant la source des données ;
- d’un classeur B (Excel 2) effectuant la recherche via
VLOOKUP
; - d’une colonne clé (colonne A) dont chaque valeur est unique ;
- de la valeur à retourner placée en colonne G du classeur A.
Pourtant, la formule renvoie tour à tour :
- une valeur incohérente (d’une autre ligne) ;
- parfois
0
alors qu’aucun zéro n’existe dans la source ; - ou encore
#N/A
malgré la présence apparente de la clé. - Trier la colonne A par ordre croissant ;
- ou préférer le mode exact pour ignorer l’ordre.
- lookup_value : la clé à rechercher (ex.
A2
). - table_array : la plage dans laquelle se trouvent la colonne clé et la colonne résultat. Utilisez toujours des références absolues (
$
) pour empêcher les décalages lors du recopiage. - colindexnum : attention au piège « 1 = A, 2 = B … 7 = G ». Comptez chaque colonne même si votre plage commence en C : Excel ne reconduit pas les lettres du classeur.
- range_lookup :
FALSE
(ou0
) pour une correspondance exacte ;TRUE
seulement si vous comprenez parfaitement le tri et les intervalles numériques. - Si la clé devrait être un nombre, convertissez les textes via Données > Convertir ou la formule
=VALUE(A2)
. - Au contraire, si la clé est censée être du texte (ex. des codes commençant par 0), forcez le format Texte (
Ctrl + 1 > Texte
). - Un test rapide : comparez la longueur avec
=LEN(A2)
; des espaces insécables ou non imprimables (char 127) faussent la recherche. - TRIM (ou
SUPPRESPACE
en français) élimine les espaces superflus, mais ne retire pas les caractères non imprimables. - Utilisez
=CLEAN(TRIM(A2))
pour nettoyer la clé avant recherche. - Un copier‑coller manuel depuis un ERP injecte souvent des retours chariot cachés (
CHAR(10)
) invisibles à l’œil nu. - ralentit le recalcul ;
- rend le débogage plus complexe ;
- risque d’inclure des colonnes que vous n’aviez pas anticipées (un collègue insère une colonne et votre
colindexnum
devient caduc). - de comprendre la formule d’un simple coup d’œil ;
- d’éviter les erreurs de décompte de colonnes (vous pouvez combiner avec
COLUMN()
pour calculer dynamiquement l’index). - Vérifiez que le classeur source est ouvert. Si ce n’est pas le cas, Excel recalculera tout de même mais en mode lien, pouvant ralentir la mise à jour.
- Préférez un chemin réseau stable plutôt qu’un lecteur local susceptible d’être renommé (
\\serveur\projets…
vsC:\Utilisateurs\…
). - Documentez la version (2021, 365). Les fonctions disponibles et la taille maximale d’un Tableau diffèrent entre éditions.
- recherche exacte par défaut ;
- pas de calcul de colonne : vous pointez explicitement la plage résultat ;
- argument «
ifnotfound
» pour afficher un message personnalisé (plus propre qu’unIFERROR
externe). - peut aussi chercher horizontalement ou inversement (valeur à gauche).
- indépendance totale de la position relative des colonnes ;
- souvent plus rapide qu’un
VLOOKUP
déclaré sur de très larges plages. - 🔢 Type de donnée homogène ? (Nombre vs Texte)
- ⚙️ Mode de recherche :
FALSE
forcé ? - 📐 Références absolues ? (le
$
manquant décale la plage en copiant) - 📊 Tri involontaire d’une colonne clé ?
- 🗑️ Espaces cachés nettoyés ?
- 🔁 Doublons vérifiés ?
- 🛣️ Lien de fichier valide ?
- ⚡ Plage réduite pour accélérer le recalcul ?
- Documenter chaque formule complexe (commentaires ou zone dédiée) ;
- Versionner les classeurs : datez le nom de fichier ou stockez‑le dans SharePoint ;
- Ajouter des tests automatiques (onglet « Contrôles ») qui comparent la somme des montants clés entre les classeurs ;
- Former l’équipe à
RECHERCHEX
et aux Tableaux structurés pour limiter le recours àVLOOKUP
sur des plages statiques.