Table des matières
Lorsque vous devez trouver dans votre feuille les données qui correspondent à un certain enregistrement clé, c'est généralement vers le VLOOKUP de Google Sheets que vous vous tournez. Mais voilà, le VLOOKUP vous impose des limites presque immédiatement. C'est pourquoi vous feriez mieux d'augmenter les ressources pour la tâche en apprenant le INDEX MATCH.
INDEX MATCH dans Google Sheets est une combinaison de deux fonctions : INDEX et MATCH. Lorsqu'elles sont utilisées en tandem, elles constituent une meilleure alternative au VLOOKUP de Google Sheets. Découvrons ensemble leurs capacités dans cet article de blog. Mais d'abord, j'aimerais vous donner un aperçu de leurs rôles respectifs dans les feuilles de calcul.
Fonction MATCH de Google Sheets
J'aimerais commencer par la fonction MATCH de Google Sheets, car elle est très simple. Elle analyse vos données à la recherche d'une valeur spécifique et renvoie sa position :
=MATCH(search_key, range, [search_type])- Clé de recherche est le disque que vous cherchez. Requis.
- gamme est soit une ligne ou une colonne à regarder. Requis.
Remarque : MATCH n'accepte que les tableaux unidimensionnels : ligne ou colonne.
- type de recherche est facultative et définit si la correspondance doit être exacte ou approximative. Si elle est omise, elle est égale à 1 par défaut :
- 1 signifie que la plage est triée dans l'ordre croissant. La fonction obtient la plus grande valeur inférieure ou égale à votre Clé de recherche .
- 0 permettra à la fonction de rechercher la correspondance exacte au cas où votre plage ne serait pas triée.
- -1 indique que les enregistrements sont classés en utilisant un tri descendant. Dans ce cas, la fonction obtient la plus petite valeur supérieure ou égale à votre Clé de recherche .
Voici un exemple : pour obtenir la position d'une certaine baie dans la liste de toutes les baies, j'ai besoin de la formule MATCH suivante dans mes Google Sheets :
=MATCH("Myrtille", A1:A10, 0)
Fonction INDEX de Google Sheets
Alors que MATCH indique où rechercher votre valeur (son emplacement dans la plage), la fonction INDEX de Google Sheets récupère la valeur elle-même en fonction de ses décalages de ligne et de colonne :
=INDEX(référence, [ligne], [colonne])- référence est la gamme à regarder. Requis.
- rangée est le nombre de lignes à décaler à partir de la toute première cellule de votre plage. Facultatif, 0 si omis.
- colonne tout comme rangée est le nombre de colonnes de décalage, également optionnel, également 0 si omis.
Si vous spécifiez les deux arguments facultatifs (ligne et colonne), Google Sheets INDEX renverra un enregistrement à partir d'une cellule de destination :
=INDEX(A1:C10, 7, 1)
Sautez l'un de ces arguments et la fonction vous donnera la ligne ou la colonne entière correspondante :
=INDEX(A1:C10, 7)
Comment utiliser INDEX MATCH dans Google Sheets - exemples de formules
Lorsque INDEX et MATCH sont utilisés ensemble dans les feuilles de calcul, ils sont à leur meilleur. Ils peuvent absolument remplacer le VLOOKUP de Google Sheets et récupérer l'enregistrement requis dans une table sur la base de votre valeur clé.
Créez votre première formule INDEX MATCH pour Google Sheets
Supposons que vous souhaitiez obtenir les informations sur les stocks de canneberge à partir du même tableau que celui que j'ai utilisé ci-dessus. J'ai seulement interverti les colonnes B et C (vous découvrirez pourquoi un peu plus tard).
- Maintenant, toutes les baies sont répertoriées dans la colonne C. La fonction MATCH de Google Sheets vous aidera à localiser la ligne exacte de la canneberge : 8
=MATCH("Canneberge", C1:C10, 0)
- Mettez toute cette formule MATCH à un rangée dans la fonction INDEX :
=INDEX(A1:C10, MATCH("Canneberge", C1:C10, 0))
Celui-ci renverra toute la rangée avec la canneberge dedans.
- Mais puisque vous n'avez besoin que des informations sur les actions, indiquez également le numéro de la colonne de consultation : 3
=INDEX(A1:C10, MATCH("Canneberge", C1:C10,0), 2)
- Voilà !
- Vous pouvez aller plus loin et abandonner le dernier indicateur de colonne ( 2 Vous n'en aurez pas besoin du tout si vous utilisez uniquement la colonne de recherche ( B1:B10 ) plutôt que le tableau entier ( A1:C10 ) comme premier argument :
=INDEX(B1:B10, MATCH("Canneberge", C1:C10, 0))
Conseil. Une façon plus pratique de vérifier la disponibilité de diverses baies serait de les placer dans une liste déroulante ( E2 ) et faites référence à votre fonction MATCH dans la cellule contenant cette liste :
=INDEX(B1:B10, MATCH(E2, C1:C10, 0))
Une fois que vous aurez sélectionné la baie, la valeur correspondante sera modifiée en conséquence :
Pourquoi INDEX MATCH dans Google Sheets est meilleur que VLOOKUP ?
Vous savez déjà que la fonction INDEX MATCH de Google Sheets recherche votre valeur dans un tableau et renvoie un autre enregistrement correspondant de la même ligne. Et vous savez que la fonction VLOOKUP de Google Sheets fait exactement la même chose. Alors pourquoi s'embêter ?
Le truc c'est que, MATCH INDEX a quelques avantages majeurs sur VLOOKUP :
- La recherche à gauche est possible J'ai changé l'emplacement des colonnes plus tôt pour illustrer ce point : la fonction INDEX MATCH de Google Sheets peut chercher et cherche effectivement à gauche de la colonne de recherche. VLOOKUP cherche toujours la toute première colonne de la plage et cherche des correspondances à sa droite - sinon, il n'obtient que des erreurs #N/A :
- Plus de références erronées lors de l'ajout de nouvelles colonnes et du déplacement de colonnes existantes. Si vous ajoutez ou déplacez des colonnes, INDEX MATCH reflète automatiquement les modifications sans intervenir dans le résultat. Comme vous utilisez des références de colonnes, celles-ci sont instantanément ajustées par Google Sheets :
Essayez de faire cela avec VLOOKUP : il requiert le numéro de commande plutôt que les références de cellule pour une colonne de consultation. Ainsi, vous finirez par obtenir la mauvaise valeur parce qu'une autre colonne prend la même place - colonne 2 dans mon exemple :
- Considère le cas du texte si nécessaire (nous y reviendrons plus loin).
- Peut être utilisé pour une recherche verticale basée sur des critères multiples.
Je vous invite à examiner en détail les deux derniers points ci-dessous.
Recherche en v sensible à la casse avec INDEX MATCH dans Google Sheets
INDEX MATCH est une solution de choix lorsqu'il s'agit de respecter la casse.
Supposons que toutes les baies sont vendues de deux façons : en vrac (pesées au comptoir) et emballées dans des boîtes. Il y a donc deux occurrences de chaque baie écrite dans des cas différents dans la liste, chacune avec son propre identifiant qui varie également selon les cas :
Comment trouver les informations sur les stocks d'une baie vendue d'une certaine manière ? VLOOKUP renvoie le premier nom qu'il trouve, quelle que soit sa casse.
Heureusement, INDEX MATCH pour Google Sheets peut le faire correctement. Vous devrez simplement utiliser une fonction supplémentaire - FIND ou EXACT.
Exemple 1 : FIND pour Vlookup sensible à la casse
FIND est une fonction sensible à la casse dans Google Sheets, ce qui la rend idéale pour la recherche verticale sensible à la casse :
=ArrayFormula(INDEX(B2:B19, MATCH(1, FIND(E2, C2:C19)), 0))
Voyons ce qui se passe dans cette formule :
- FIND balaie la colonne C ( C2:C19 ) pour l'enregistrement de E2 ( cerise Une fois localisée, la formule "marque" cette cellule d'un chiffre (-). 1 .
- MATCH recherche cette marque - 1 - dans la même colonne ( C ) et transmet le numéro de sa ligne à INDEX.
- INDEX descend à cette ligne dans la colonne B ( B2:B19 ) et récupère l'enregistrement requis pour vous.
- Lorsque vous avez fini de construire la formule, appuyez sur Ctrl+Shift+Enter pour ajouter ArrayFormula au début. C'est nécessaire car sans cela FIND ne sera pas en mesure de rechercher dans les tableaux (dans plus d'une cellule). Ou vous pouvez taper ' Formule de tableau de votre clavier.
Exemple 2 : EXACT pour Vlookup sensible à la casse
Si vous remplacez FIND par EXACT, ce dernier recherchera les enregistrements contenant exactement les mêmes caractères, y compris leur casse.
La seule différence est qu'EXACT "marque" une correspondance avec VRAI plutôt que le nombre 1 Par conséquent, le premier argument de MATCH doit être VRAI :
=ArrayFormula(INDEX(B2:B19, MATCH(TRUE, EXACT(E2, C2:C19), 0))))
Google Sheets INDEX MATCH avec plusieurs critères
Que faire s'il y a plusieurs conditions sur la base desquelles vous souhaitez récupérer l'enregistrement ?
Vérifions le prix de la cerise qui est vendu dans Seaux en PP et est déjà la fuite :
J'ai disposé tous les critères dans les listes déroulantes de la colonne F. Et c'est Google Sheets INDEX MATCH qui prend en charge les critères multiples, pas VLOOKUP. Voici la formule que vous devrez utiliser :
=ArrayFormula(INDEX(B2:B24, MATCH(CONCATENATE(F2:F4), A2:A24&C2:C24&D2:D24, 0),))
Pas de panique :) Sa logique est en fait assez simple :
- CONCATÉNER(F2:F4) combine les trois enregistrements des cellules avec des critères en une seule chaîne, comme ceci :
CherryPP bucketRunning out
Il s'agit d'un Clé de recherche pour MATCH, ou, en d'autres termes, ce que vous recherchez dans le tableau.
- A2:A24&C2:C24&D2:D24 constituent un gamme pour la recherche de la fonction MATCH. Comme les trois critères se trouvent dans trois colonnes distinctes, vous les combinez en quelque sorte :
CerisePlateau en cartonEn stock
CeriseEmballage filméSortie de stock
CherryPP bucketRunning out
etc.
- Le dernier argument dans MATCH - 0 - permet de trouver la correspondance exacte pour CherryPP bucketRunning out parmi toutes ces rangées de colonnes combinées. Comme vous pouvez le voir, c'est dans la 3ème rangée.
- Puis INDEX fait son travail : il va chercher l'enregistrement de la troisième ligne de la colonne B.
- ArrayFormula est utilisé pour permettre à d'autres fonctions de travailler avec des tableaux.
Astuce : si votre formule ne trouve pas de correspondance, elle renvoie une erreur. Pour éviter cela, vous pouvez envelopper cette formule entière dans IFERROR (en faire le premier argument) et entrer ce que vous voulez voir dans une cellule au lieu des erreurs comme deuxième argument :
=IFERROR(ArrayFormula(INDEX(B2:B27, MATCH(CONCATENATE(F2:F4), A2:A27&C2:C27&D2:D27, 0),)), "Not found")
Meilleure alternative à INDEX MATCH dans Google Sheets - Correspondances VLOOKUP multiples
Quelle que soit la fonction de consultation que vous préférez, VLOOKUP ou INDEX MATCH, il existe une meilleure alternative à ces deux fonctions.
Multiple VLOOKUP Matches est un module complémentaire spécial pour Google Sheets conçu pour :
- recherche sans formules
- recherche dans toutes les directions
- recherche par conditions multiples pour différents types de données : texte, chiffres, dates, heure, etc.
- récupérer plusieurs allumettes, autant que vous en avez besoin (à condition qu'il y en ait autant dans votre table, bien sûr)
L'interface est simple, de sorte que vous n'aurez pas à vous demander si vous faites tout correctement :
- Sélectionnez la gamme de sources.
- Définissez le nombre de correspondances et de colonnes à retourner.
- Affiner les conditions en utilisant les opérateurs prédéfinis ( contient, =, non vide , entre etc.).
Vous serez également en mesure de :
- prévisualiser le résultat
- décider où le placer
- et comment : comme une formule ou juste des valeurs
Ne manquez pas cette occasion de vérifier l'add-on. Allez-y et installez-le à partir de Google Workspace Marketplace. Sa page de tutoriel expliquera chaque option en détail.
Nous avons également préparé une vidéo d'instruction spéciale :
Rendez-vous dans les commentaires ci-dessous ou dans le prochain article ;)