Rechercher des valeurs avec VLOOKUP
Si tu omets le dernier argument de VLOOKUP, Excel comme Google Sheets font une correspondance approximative. Google recommande de taper FALSE.
Une liste de prix avec des codes
Un magasin range ses prix dans un petit tableau : les codes en A2:A5, les noms des articles en B2:B5, les prix en C2:C5. À la caisse, quelqu'un tape un code et veut le prix. C'est le travail de VLOOKUP. Elle trouve une valeur dans la première colonne d'un tableau et renvoie un élément de la même ligne. Microsoft énumère les quatre éléments dont elle a besoin : la valeur à rechercher, la plage où elle se trouve, le numéro de la colonne de cette plage qui contient la réponse, et si tu veux une correspondance approximative (TRUE) ou exacte (FALSE). =VLOOKUP(104, A2:C5, 3, FALSE) trouve 104 dans la colonne A et renvoie le prix de la troisième colonne de la plage.
Deux règles causent la plupart des problèmes. D'abord, la valeur doit être dans la première colonne de la plage, et la réponse doit être à sa droite. VLOOKUP ne regarde jamais à gauche : si les codes sont en colonne B, la plage doit commencer en B. Ensuite, le numéro de colonne se compte à partir de la première colonne de la plage, pas de la colonne A de la feuille ; dans B2:D9, B vaut 1, C vaut 2 et D vaut 3. Les deux pages d'aide donnent aussi le même conseil pour les formules recopiées. Rends la plage absolue, comme $A$2:$C$5, pour qu'elle ne glisse pas quand tu recopies vers le bas.
Quand le code n'est pas dans la liste
Avec FALSE, VLOOKUP cherche exactement la valeur donnée et renvoie la première ligne qui correspond. S'il n'y a aucune correspondance, on obtient #N/A. Un numéro de colonne plus grand que le nombre de colonnes de la plage donne #REF!, et un numéro inférieur à 1 donne #VALUE!. Les recherches de texte ignorent la casse mais pas les espaces : l'aide de Google fait remarquer que " Apple", "Apple " et "Apple" sont trois valeurs différentes. Un nombre enregistré comme texte diffère aussi du nombre : un code tapé '104 n'est pas trouvé par 104.
Avec la correspondance exacte, les caractères génériques ? et * marchent dans les deux logiciels. ? remplace un caractère quelconque et * une suite quelconque de caractères, donc "Ora*" trouve Orange. Quand #N/A est un résultat normal, par exemple un code qui n'est pas encore dans la liste de prix, enveloppe la recherche dans IFNA, présente dans les deux logiciels : =IFNA(VLOOKUP(E2, $A$2:$C$5, 3, FALSE), "not found"). IFERROR marche aussi. Mais elle cache toutes les sortes d'erreurs, y compris un mauvais numéro de colonne que tu voudrais voir, et la page de Microsoft sur #VALUE! met en garde contre IFERROR pour la même raison.
Fais glisser pour tourner. Fais défiler ou pince pour zoomer.
Rechercher une tranche au lieu d'un code exact
TRUE, ou l'absence de quatrième argument, donne une correspondance approximative, le choix par défaut dans les deux logiciels. L'aide de Google décrit la recherche : elle descend la première colonne jusqu'à trouver une valeur plus grande que la clé de recherche, puis s'arrête sur la ligne précédente. Cela convient aux tranches. Dans une table de notes avec 0, 60, 70, 80 et 90 en première colonne, une note de 85 dépasse 80, rencontre 90 et renvoie le B de la ligne 80. La première colonne doit être triée du plus petit au plus grand, et une valeur inférieure à la première ligne renvoie #N/A. Sur une colonne non triée, la réponse n'est pas fiable : c'est pourquoi Google recommande FALSE, sauf si tu cherches vraiment une tranche.
Fais glisser pour tourner. Fais défiler ou pince pour zoomer.
| Microsoft Excel | Google Sheets | |
|---|---|---|
| Nom du 4e argument | range_lookup | is_sorted |
| Valeur par défaut si omis | TRUE (approximative) | TRUE (approximative) |
| Conseil de la page d'aide | trier la première colonne, ou utiliser FALSE | FALSE est recommandé |
| XLOOKUP | Microsoft 365 et Excel 2021 ou plus récent ; absent de 2016 et 2019 | disponible |
| Formule illisible | refusée avec un message | #ERROR! |
| Référence circulaire | avertissement, puis 0 ou la dernière valeur | #REF! |
| ROUND sans chiffres | refusé | arrondit à l'entier |
| Arguments par fonction | jusqu'à 255 | autant qu'on veut |
Les deux logiciels ont aussi maintenant XLOOKUP. Elle prend une plage de recherche et une plage de résultats séparée, donc la réponse peut se trouver à gauche, et elle fait une correspondance exacte sauf indication contraire. Microsoft précise que XLOOKUP n'existe pas dans Excel 2016 ni dans Excel 2019 : un fichier qui doit s'ouvrir dans ces versions doit donc garder VLOOKUP. Le tableau ci-dessus rassemble les différences entre les deux logiciels rencontrées dans ce cours.
- Oublier FALSE en recherchant un code. Par défaut, la correspondance est approximative : un code absent de la liste peut renvoyer le prix de la ligne du dessus au lieu de #N/A.
- Compter le numéro de colonne à partir de la colonne A de la feuille. On compte à partir de la première colonne de la plage. Avec C2:F20, la colonne E porte le numéro 3, pas 5.
- Recopier une recherche vers le bas sans $ sur la plage. A2:C5 glisse en A3:C6, A4:C7 et ainsi de suite, et les lignes du bas ne trouvent plus les codes situés en haut de la table.
- Envelopper chaque recherche dans IFERROR. Cela cache un #REF! dû à un mauvais numéro de colonne en plus du #N/A attendu. IFNA ne cache que #N/A.
- Codes 101, 103, 104, 107 avec les articles Apple, Banana, Orange, Pear en A2:B5. Que renvoie =VLOOKUP(103, A2:B5, 2, FALSE) ?
- Même table. Que renvoie =VLOOKUP(102, A2:B5, 2, FALSE) ?
- #N/A
- Apple
- Banana
- #REF!
- Même table. Que renvoie =VLOOKUP(102, A2:B5, 2, TRUE) ?
- Même table. Que renvoie =VLOOKUP(103, A2:B5, 3, FALSE) ?
- #REF!
- #N/A
- #VALUE!
- Banana
- La plage est C2:F20. Quel numéro de colonne renvoie les valeurs de la colonne E ?
- Table de notes : 0 F, 60 D, 70 C, 80 B, 90 A. Que renvoie une VLOOKUP approximative pour 85 ?
- Même table. Que renvoie-t-elle pour exactement 90 ?
- Que se passe-t-il si on omet le quatrième argument ?
- Correspondance approximative dans les deux logiciels
- Correspondance exacte dans les deux logiciels
- Exacte dans Excel, approximative dans Sheets
- Une erreur
- Pourquoi écrire la plage de la table $A$2:$C$5 ?
- Pour qu'elle ne glisse pas quand on recopie la formule vers le bas
- Pour trier la table
- Pour ne trouver que les majuscules
- Pour renvoyer du texte
- Les articles sont en B2:B5 et les prix en C2:C5. Que renvoie =IFNA(VLOOKUP("Pencil", B2:C5, 2, FALSE), "not found") ?
- Quelles versions d'Excel n'ont pas XLOOKUP ?
- Excel 2016 et Excel 2019
- Microsoft 365
- Excel pour le web
- Excel 2021
- VLOOKUP(valeur, plage, numéro de colonne, FALSE) pour une correspondance exacte.
- La valeur doit être dans la première colonne ; le numéro de colonne se compte à partir de la plage.
- TRUE (ou rien) donne une correspondance approximative : la première colonne doit être triée, et la fonction renvoie la dernière ligne qui n'est pas plus grande que la valeur.
- Utilise une plage absolue, IFNA pour un #N/A attendu, et FALSE sauf si tu cherches des tranches.
Sources de ce cours (19)
- Microsoft Support, "Switch between relative, absolute, and mixed references" (support.microsoft.com/en-us/office/dfec08cd-ae65-4f56-839e-5f0d8d0baca9: $ before column and row, F4 to switch, copying two down and two right: $A$1 stays, A$1 to C$1, $A1 to $A3, A1 to C3)
- Microsoft Support, "AVERAGE function" (support.microsoft.com/en-us/office/047bac88-d466-426c-a32b-8f33eb960cf6: text, logical values and empty cells in a reference ignored, zeros included; 10, 7, 9, 27, 2 gives 11, with 5 gives 10; mean 5, median 4, mode 3 for 2 3 3 5 7 10)
- Microsoft Support, "COUNT function" (support.microsoft.com/en-us/office/a59cd7fc-b623-4d93-87a4-d23bf411294c: only numbers counted, dates count, errors and text do not)
- Microsoft Support, "ROUND function" (support.microsoft.com/en-us/office/c018c5d8-40fb-4053-90b1-b3e7f61a213c: num_digits required; 2.15 to 2.2, -1.475 to -1.48, 626.3 to 1000, 1.98 to 0, -50.55 to -100)
- Microsoft Support, "IF function" (support.microsoft.com/en-us/office/69aed7c9-4e8a-4755-a9bc-aa8bbff73be2: value_if_false optional, text in quotes except TRUE and FALSE, 0 and #NAME? problems)
- Microsoft Support, "VLOOKUP function" (support.microsoft.com/en-us/office/0bbc8083-26fe-4963-8ab8-93a18ad188a1: range_lookup TRUE by default, sorted first column, #N/A, #REF!, #VALUE!, absolute table range, wildcards with FALSE)
- Microsoft Support, "XLOOKUP function" (support.microsoft.com/en-us/office/b7fd680e-6d10-43e6-84f9-88eae8bf5929: not in Excel 2016 and Excel 2019, exact match by default)
- Microsoft Support, "How to correct a #VALUE! error" (support.microsoft.com/en-us/office/15e1b616-fbf2-4147-9c0b-0a11a20e409e: + and * may not calculate cells with text, use SUM instead, IFERROR hides all errors)
- Microsoft Support, "Excel specifications and limits" (15 digits, 64 nested levels, 255 arguments)
- Google Docs Editors Help, "VLOOKUP" (support.google.com/docs/answer/3093318: is_sorted TRUE by default, FALSE recommended, search down to a larger value, " Apple" and "Apple " differ, wildcards, IFNA, absolute range)
- Google Docs Editors Help, "XLOOKUP" (support.google.com/docs/answer/12405947)
- Google Docs Editors Help, "ROUND" (support.google.com/docs/answer/3093440: places optional, 0 by default, rounding by magnitude)
- Google Docs Editors Help, "IF" (support.google.com/docs/answer/3093364: order of the answers is the most common problem, IFS)
- Google Docs Editors Help, "AVERAGE" (support.google.com/docs/answer/3093615: text ignored, any number of arguments)
- Google Docs Editors Help, "COUNTA" (support.google.com/docs/answer/3093991: zero-length strings and spaces count)
- Google Docs Editors Help, "Keyboard shortcuts for Google Sheets" (support.google.com/docs/answer/181110: F4 and Fn+F4 while entering a formula, F4 as Redo)
- Pryor Learning and Exceljet (F4 cycle A1, $A$1, A$1, $A1; = comparison not case-sensitive)
- Ablebits (IF without value_if_false returns FALSE)
- Spreadsheet Class (Sheets circular dependency shows #REF!)
Consulté le: 2026-10-19