Accéder au contenu principal

XLOOKUP() vs. VLOOKUP() : Une comparaison pour les utilisateurs d'Excel

XLOOKUP() effectue des recherches dans toutes les directions, utilise par défaut des correspondances exactes et dispose d'une gestion intégrée des erreurs, tandis que VLOOKUP() n'effectue des recherches qu'à droite et nécessite une indexation manuelle des colonnes.
Actualisé 16 janv. 2025  · 11 min de lecture

Depuis des décennies, VLOOKUP() est la fonction de référence d'Excel pour la recherche de données. C'est un outil fiable mais qui a ses limites. C'est pourquoi en 2019, XLOOKUP(), une nouvelle fonction dotée de capacités avancées, a été introduite. Dans cet article, nous comparerons VLOOKUP() et XLOOKUP() afin de mieux comprendre leurs caractéristiques et leurs différentes utilisations. 

N'oubliez pas que le passage de VLOOKUP() à XLOOKUP() n'est qu'une des nombreuses mises à jour d'Excel. Il est important de se tenir au courant de l'évolution des fonctions d'Excel pour maximiser la productivité. Consultez donc le cursus des compétences d'Excel Fundamentals pour vous assurer que vous utilisez les dernières fonctionnalités.

Faites progresser votre carrière avec Excel

Acquérir les compétences nécessaires pour optimiser Excel - aucune expérience n'est requise.

Commencez aujourd'hui gratuitement

Syntaxe de XLOOKUP() et VLOOKUP()

Maintenant que vous avez une connaissance de base de ces deux fonctions, nous allons comprendre leur syntaxe et comment les utiliser dans des applications réelles. 

Syntaxe de VLOOKUP()

Examinons la syntaxe de VLOOKUP()

=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

Dans la formule ci-dessus :

  • lookup_value est la valeur que vous souhaitez rechercher. Il peut s'agir d'un nombre, d'un texte ou d'une référence à une cellule contenant la valeur recherchée.

  • table_array est la plage de cellules qui contient les données. La première colonne de cette plage doit contenir l'adresse search_key.

  • col_index_num est le numéro de la colonne de l'intervalle dont vous voulez extraire la valeur. 

  • range_lookup est l'endroit où vous entrez une valeur logique (TRUE ou FALSE).

Syntaxe de XLOOKUP()

Examinons maintenant la syntaxe de xlookup(). Comme nous pouvons le constater, XLOOKUP() a plus d'arguments que VLOOKUP().

=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])

Dans la formule ci-dessus :

  • lookup_value est la valeur que vous souhaitez rechercher.

  • lookup_array est la plage de cellules dans laquelle la valeur de référence est recherchée.

  • return_array est la plage de cellules qui contient la valeur que vous souhaitez renvoyer.

  • if_not_found (facultatif) renvoie une valeur si aucune correspondance n'est trouvée. Si la valeur n'est pas spécifiée, il renvoie #N/A.

  • match_mode (facultatif) détermine le type de correspondance à effectuer. 0 correspond à la correspondance exacte (par défaut). -1 correspond à la correspondance exacte ou à l'élément inférieur suivant. 1 correspond à la correspondance exacte ou à l'élément supérieur suivant. 2 correspond à la correspondance par caractères génériques.

  • search_mode (facultatif) détermine le mode de recherche à utiliser. 1 est utilisé pour effectuer une recherche du premier au dernier (par défaut). -1 est utilisé pour effectuer une recherche du dernier au premier. 2 est utilisé pour effectuer une recherche binaire dans l'ordre croissant. -2 est utilisé pour effectuer une recherche binaire dans l'ordre décroissant.

Principales différences : XLOOKUP() vs. VLOOKUP()

Examinons maintenant les principales différences entre les fonctions XLOOKUP() et VLOOKUP().

Mode de correspondance exacte 

XLOOKUP() est par défaut en mode de correspondance exacte, mais VLOOKUP() nécessite de spécifier FALSE pour une correspondance exacte.

XLOOKUP utilise par défaut la correspondance exacte, tandis que VLOOKUP doit spécifier FALSE pour la correspondance exacte.

Différence de correspondance exacte entre XLOOKUP() et VLOOKUP(). Source : Image par l'auteur.

Dans VLOOKUP(), je n'ai pas spécifié la valeur de range_lookup (4e argument), ce qui donne la correspondance la plus proche, ce qui n'est pas le résultat souhaité. XLOOKUP() En revanche, le moteur de recherche de l'ENT, par défaut, renvoie la correspondance exacte.

Direction de recherche

VLOOKUP() est limité à la recherche à droite de la première colonne du tableau sélectionné. Mais XLOOKUP() peut rechercher des valeurs dans n'importe quelle direction.

VLOOKUP ne peut effectuer une recherche qu'à droite de la colonne de recherche, tandis que XLOOKUP peut effectuer une recherche à gauche et à droite du tableau de recherche.

Différence de sens de recherche entre VLOOKUP() et XLOOKUP(). Source : Image par l'auteur.

Ici, VLOOKUP() n'a pas trouvé les notes car il ne peut rechercher que les données situées à droite de lookup_value (nom de l'étudiant). En comparaison, XLOOKUP() trouve les notes pour Robin car il peut effectuer une recherche dans les deux sens (gauche ou droite).

Références aux tableaux

Dans VLOOKUP(), vous devez définir l'ensemble de la plage de données (tableau) et spécifier le numéro de la colonne (indice de colonne) contenant le résultat souhaité (colonne de retour) dans une seule formule. XLOOKUP() est plus souple que cela. Il vous permet de définir des tableaux distincts pour la valeur de la recherche et les données que vous souhaitez renvoyer. 

VLOOKUP a besoin d'une seule plage de données et d'un seul index de colonne, tandis que XLOOKUP permet d'utiliser des tableaux distincts pour les valeurs de recherche et de retour.

Références de tableaux entre VLOOKUP() et XLOOKUP(). Source : Image par l'auteur.

Consultation horizontale

VLOOKUP() ne vous permet pas d'effectuer des recherches horizontales. Si vous souhaitez effectuer une recherche horizontale, vous devez utiliser HLOOKUP(). XLOOKUP() consolide ces deux fonctions car il effectue des recherches verticales et horizontales.

Traitement des lignes horizontales avec VLOOKUP, HLOOKUP, XLOOKUP

Différence de recherche horizontale entre VLOOKUP() et XLOOKUP(). Source : Image par l'auteur.

Gestion des insertions/suppressions de colonnes 

Les changements de colonne affectent VLOOKUP() à cause du code en dur column_index_num. Cependant, XLOOKUP() n'est pas affecté par les changements de colonnes. Il continue à fonctionner sans ajustement de la formule.

XLOOKUP n'est pas affecté par les changements de colonnes, tandis que VLOOKUP échoue en raison des indices de colonnes codés en dur".

XLOOKUP() n'est pas affecté, tandis que VLOOKUP() échoue. Source : Image par l'auteur.

Tri et recherche

Vous pouvez trier VLOOKUP() par ordre croissant, mais cela entraînerait des difficultés lorsque vous traitez des données non triées. Toutefois, XLOOKUP() peut utiliser l'argument search_mode pour effectuer une recherche à la fois par ordre croissant et par ordre décroissant.

XLOOKUP peut effectuer des recherches dans l'ordre croissant et décroissant, tandis que VLOOKUP est limité à l'ordre croissant.

Gestion de l'insertion/suppression dans XLOOKUP() et VLOOKUP(). Source : Image par l'auteur.

Messages d'erreur personnalisés

VLOOKUP() affiche un signe d'erreur #N/A lorsqu'aucune correspondance n'est trouvée. XLOOKUP() dispose d'un paramètre optionnel if_not_found qui vous permet de personnaliser le texte de sortie si une valeur n'est pas trouvée. 

XLOOKUP peut renvoyer un message personnalisé lorsqu'une valeur n'est pas trouvée, alors que VLOOKUP affiche une erreur #N/A.

Personnalisation des messages d'erreur dans XLOOKUP() et VLOOKUP(). Source : Image par l'auteur.

Vous pouvez voir que VLOOKUP() n'a pas trouvé l'étudiant dans sa liste et a affiché une erreur #N/A. De même, la fonction XLOOKUP() n'a pas pu localiser le nom de l'étudiant. Cependant, contrairement à VLOOKUP(), XLOOKUP() renvoie un message spécifique lorsqu'il n'y a pas de correspondance.

Renvoi de plusieurs valeurs

VLOOKUP() ne peut renvoyer qu'une seule valeur à la fois. Mais XLOOKUP() peut extraire des valeurs de plusieurs colonnes simultanément. C'est pourquoi vous pouvez utiliser une formule XLOOKUP() au lieu de plusieurs formules VLOOKUP().

XLOOKUP récupère plusieurs colonnes, alors que VLOOKUP ne peut récupérer qu'une seule colonne.

Renvoi de valeurs multiples avec XLOOKUP() et VLOOKUP(). Source : Image par l'auteur.

Mode de recherche

VLOOKUP() parcourt une liste depuis le début et ne renvoie que la première valeur qui correspond à ce que vous voulez. Mais XLOOKUP() peut parcourir une liste dans les deux sens (de haut en bas ou de bas en haut) et trouver rapidement des éléments dans de longues listes.

Différence entre VLOOKUP() et XLOOKUP(). Source : Image par l'auteur.

Ici, VLOOKUP() récupère la première occurrence, qui est celle du premier semestre. Cependant, avec XLOOKUP(), j'utilise le code de mode de recherche -1 pour effectuer une recherche de bas en haut.

Exemples pratiques et cas d'utilisation

Voyons maintenant quelques exemples pratiques et cas d'utilisation.

Utiliser une recherche sans avoir à réorganiser un tableau

Je dispose d'une liste de noms et de notes d'élèves, et je souhaite trouver la note de chaque élève en fonction de son nom. À cette fin, j'utiliserai les fonctions XLOOKUP() et VLOOKUP() pour vous montrer les différences. 

Lorsque j'utilise XLOOKUP(), j'entre la formule suivante :

=XLOOKUP(D8,B2:B5,A2:A5)

Dans cette formule :

  • D8 contient la valeur de recherche qui est Charlie.

  • B2:B5 contient les noms des étudiants. La fonction XLOOKUP() recherche la valeur de D8 à l'intérieur de cette plage.

  • A2:A5 est l'intervalle qui contient les scores correspondant aux noms des étudiants. 

Lorsque j'utilise VLOOKUP(), j'entre la formule suivante :

=VLOOKUP(D4,A1:B5,1,0)

Dans cette formule :

  • D4 contient la valeur de recherche qui est Charlie.

  • A1:B5 permet d'effectuer des recherches dans toutes les colonnes(notes, nom de l' élève ).

  • 1 renvoie la valeur de la 1ère colonne de l'intervalle (Scores).

  • 0 permet d'obtenir la correspondance exacte.

VLOOKUP renvoie une erreur #N/A pour les recherches à gauche, alors que XLOOKUP le gère parfaitement.

VLOOKUP() renvoie une erreur #N/A mais XLOOKUP() la gère. Source : Image par l'auteur.

Comme vous pouvez le constater, VLOOKUP() affiche une erreur #N/A car il ne peut pas effectuer de recherche vers la gauche.

Création d'une sortie personnalisée lorsqu'une valeur n'est pas trouvée

J'ai une liste d'étudiants avec leurs identifiants, leurs noms et leurs notes. Lors de ma recherche, j'ai accidentellement saisi un numéro d'étudiant qui ne figurait pas sur la liste. Pour gérer un tel cas, je souhaite qu'un message personnalisé s'affiche lorsque l'identifiant de l'étudiant n'est pas trouvé. J'utiliserai les fonctions XLOOKUP() et VLOOKUP() pour vous montrer les différences. 

Lorsque j'utilise XLOOKUP(), j'entre la formule suivante :

(=XLOOKUP(E9, A2:A5, B2:B5, "Student not Found")) 

Dans cette formule :

  • E9 contient la valeur à rechercher. Dans mon cas, il s'agit de 14256.

  • A2:A5 est la plage de cellules contenant la valeur de référence (ID de l'étudiant).

  • B2:B5 recherche le score de la ID 14526.

  • Student not Found s'affiche si le score ne figure pas dans la liste. 

Lorsque j'utilise VLOOKUP(), j'entre la formule suivante :

(=VLOOKUP(E6, A2:C5,2,0)) 

Dans cette formule :

  • E6 renvoie à l'identifiant de l' étudiant, ce qui correspond à ce que je recherche.

  • A2:C5 fait référence à la plage qui contient toutes les données du tableau.

  • 2 indique le numéro de la colonne à partir de laquelle les données seront extraites.

  • 0 permet d'obtenir la correspondance exacte.

XLOOKUP renvoie un message personnalisé alors que VLOOKUP affiche l'erreur #N/A

XLOOKUP() renvoie un message, mais pas VLOOKUP(). Source : Image par l'auteur.

Vous pouvez voir que 14256 n'existe pas dans la plage A2:A5, donc XLOOKUP() renvoie le message personnalisé Student not found . En revanche, VLOOKUP() provoque une erreur #N/A

Recherche à partir de la base

Je veux trouver le salaire de Sarah pour l'année la plus récente. À cette fin, j'utiliserai les fonctions XLOOKUP() et VLOOKUP() pour vous montrer les différences. 

Lorsque j'utilise XLOOKUP(), j'entre la formule suivante :

=XLOOKUP(F8,B2:B10,C2:C10,,,-1)

Dans cette formule :

  • F8 contient la valeur de recherche Sarah.

  • B2:B10 regarde dans le rayon d'action et cherche Sarah.

  • C2:C10 récupère les données.

  • -1 à partir du bas de la colonne. 

Lorsque j'utilise VLOOKUP(), j'entre la formule suivante :

=VLOOKUP(F4, B2:C10,2,0)

Dans cette formule :

  • F4 contient la valeur de recherche Sarah.

  • B2:C10 recherche la valeur de référence à l'intérieur de cette plage.

  • 2 indique le numéro de la colonne Salaire à partir de laquelle les données seront extraites.

  • 0 permet d'obtenir la correspondance exacte.

VLOOKUP renvoie la première correspondance en haut de la liste, tandis que XLOOKUP peut effectuer une recherche dans les deux sens et trouver la correspondance la plus récente

Différence entre VLOOKUP() et XLOOKUP() en mode recherche. Source : Image par l'auteur.

Vous pouvez voir que XLOOKUP() trouve le salaire souhaité pour l'année souhaitée, alors que VLOOKUP() n'affiche que la première valeur correspondante. J'ai pu le faire parce que XLOOKUP() me permet d'effectuer des recherches de bas en haut.

Performance et compatibilité

Comparons maintenant les performances et la compatibilité des deux fonctions. 

Performance dans les grands ensembles de données

VLOOKUP() peut être plus lent lorsqu'il s'agit de grands ensembles de données, en particulier si la colonne de recherche n'est pas triée et que l'argument de recherche d'intervalle est fixé à FALSE pour une correspondance exacte. En effet, VLOOKUP() parcourt l'ensemble des données de manière séquentielle jusqu'à ce qu'il trouve une correspondance, ce qui peut prendre beaucoup de temps pour les tableaux de grande taille. XLOOKUP() offre de meilleures performances avec les grands ensembles de données. Il peut traiter plus efficacement les correspondances exactes et effectuer des recherches horizontales et verticales sans tri. 

Compatibilité avec différentes versions d'Excel

Maintenant, vous devez penser à abandonner VLOOKUP() après avoir vu les avantages de XLOOKUP(). Mais permettez-moi de clarifier les choses : bien que XLOOKUP() soit une fonctionnalité excellente et beaucoup plus rapide, il y a quelques cas où elle n'est pas disponible. En effet, XLOOKUP() est une fonctionnalité plus récente qui ne fonctionne que dans Excel 2021 et Microsoft 365 (à partir de 2019). Si vous collaborez avec des personnes utilisant des versions plus anciennes d'Excel, vous devrez utiliser VLOOKUP() et d'autres fonctions au lieu de XLOOKUP().

Tableau récapitulatif

Créons un tableau récapitulatif pour faciliter la consultation. 

Fonctionnalité VLOOKUP() XLOOKUP()
Mode de correspondance par défaut Il faut spécifier FALSE pour une correspondance exacte. Par défaut, il s'agit d'une correspondance exacte.
Direction de recherche Recherche uniquement à droite de la colonne de recherche. Vous pouvez effectuer une recherche dans n'importe quelle direction (gauche, droite, haut, bas).
Références des tableaux Nécessite la définition de l'ensemble de la plage de données et de l'indice de colonne dans une seule formule. Permet d'avoir des tableaux distincts pour la valeur de recherche et les valeurs de retour.
Consultation horizontale Ne prend pas en charge les recherches horizontales (HLOOKUP() est nécessaire). Prend en charge les recherches verticales et horizontales.
Gestion des changements de colonnes Affecté par les insertions/délétions de colonnes en raison d'indices de colonnes codés en dur. Il n'est pas affecté par les changements de colonnes et continue à fonctionner sans ajustements.
Tri et recherche Limité au tri par ordre croissant. Vous pouvez effectuer une recherche par ordre croissant ou décroissant à l'aide de la fonction search_mode argument.
Messages d'erreur personnalisés Affiche #N/A erreur si aucune correspondance n'est trouvée. Permet de personnaliser le message de sortie lorsqu'aucune correspondance n'est trouvée.
Renvoi de plusieurs valeurs Ne peut renvoyer qu'une seule valeur à la fois. Peut extraire des valeurs de plusieurs colonnes simultanément.
Mode de recherche Effectue une recherche de haut en bas et renvoie la première correspondance. Vous pouvez effectuer des recherches dans les deux sens (de haut en bas ou de bas en haut) pour obtenir des résultats plus rapides dans des listes étendues.
Performance dans les grands ensembles de données Peut être plus lent, en particulier avec des données non triées ou lorsque range_lookup est FALSE. Meilleures performances, traitement efficace des grands ensembles de données et recherche sans tri.
Compatibilité Fonctionne avec toutes les versions d'Excel. Uniquement disponible dans Excel 2021 et Microsoft 365 (à partir de 2019).
Réflexions finales Toujours utile pour les anciennes versions d'Excel ou les tâches de recherche plus simples. Plus puissant et plus souple, il convient mieux aux recherches complexes ou à grande échelle.

Réflexions finales

XLOOKUP() est plus performant que VLOOKUP(), en particulier lorsqu'il s'agit de traiter de grands ensembles de données ou de répondre à des exigences complexes en matière de recherche. Sa flexibilité, notamment la recherche bidirectionnelle, l'extraction de résultats multiples et l'adaptabilité aux changements de données, en fait un outil utile. Cependant, VLOOKUP() conserve sa place, en particulier pour les utilisateurs d'anciennes versions d'Excel ou pour ceux qui préfèrent une approche plus simple des recherches de base. Le meilleur choix dépend en fin de compte de vos besoins spécifiques et de votre version d'Excel.

Si vous êtes novice en matière d'Excel ou si vous souhaitez acquérir des bases solides, notre cours d' introduction à Excel et le cursus de compétences Excel Fundamentals constituent d'excellents points de départ pour maîtriser les notions de base.

Apprendre les bases d'Excel

Acquérir des compétences pour utiliser Excel de manière efficace - aucune expérience n'est requise.

Laiba Siddiqui's photo
Author
Laiba Siddiqui
LinkedIn
Twitter

Je suis un stratège du contenu qui aime simplifier les sujets complexes. J'ai aidé des entreprises comme Splunk, Hackernoon et Tiiny Host à créer un contenu attrayant et informatif pour leur public.

Questions fréquemment posées

XLOOKUP() est-il meilleur que VLOOKUP() ?

Oui, XLOOKUP() est meilleur car il peut effectuer des recherches dans n'importe quelle colonne d'un tableau, renvoyer plusieurs résultats, mieux gérer les erreurs et effectuer des recherches verticales et horizontales.

Quelles sont les limites de VLOOKUP() par rapport à XLOOKUP() ?

VLOOKUP() est limitée à la recherche dans la première colonne d'une plage spécifiée. Et il ne peut renvoyer qu'un seul résultat par consultation.

XLOOKUP() peut-il gérer des opérations sur les tableaux comme SUMIFS() ou COUNTIFS() ?

Oui, XLOOKUP() peut être utilisé avec des fonctions de tableau comme SUMIFS() et COUNTIFS() pour effectuer des calculs plus complexes et des tâches d'analyse de données.

Sujets

Apprenez Excel avec DataCamp

cours

Financial Modeling in Excel

3 hr
11.4K
Learn about Excel financial modeling, including cash flow, scenario analysis, time value, and capital budgeting.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 min

blog

2022-2023 Rapport annuel DataCamp Classrooms

À l'aube de la nouvelle année scolaire, DataCamp Classrooms est plus motivé que jamais pour démocratiser l'apprentissage des données, avec plus de 7 650 nouveaux Classrooms ajoutés au cours des 12 derniers mois.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 min

blog

Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles. Il couvre tous les domaines, garantissant ainsi une stratégie de préparation bien équilibrée.
Zoumana Keita 's photo

Zoumana Keita

30 min

blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates a offert plus de 20k bourses d'études à nos partenaires à but non lucratif au deuxième trimestre 2023. Découvrez comment des apprenants défavorisés et assidus ont transformé ces opportunités en réussites professionnelles qui ont changé leur vie.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Nous avons fait don de bourses DataCamp Premium à un million de personnes, et ce n'est pas fini.

Réparties entre nos deux programmes d'impact social, DataCamp Classrooms et #DCDonates, les bourses offrent un accès illimité à tout ce que DataCamp Premium a à offrir.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Découvrez le parcours inspirant de Saghar Hazinyar, diplômée de Code to Inspire, qui a surmonté les défis en Afghanistan et s'est épanouie grâce à une bourse de DataCamp Donates.
Fereshteh Forough's photo

Fereshteh Forough

4 min

Voir plusVoir plus