Exceller

Joindre des tables avec INDEX et MATCH

Join Tables With Index

Formule Excel : Joindre des tables avec INDEX et MATCHFormule générique |_+_| Sommaire

Pour joindre ou fusionner des tables qui ont un identifiant commun, vous pouvez utiliser les fonctions INDEX et MATCH. Dans l'exemple illustré, la formule en E5 est :





= INDEX (data, MATCH (lookup,ids,0),2)

où « données » est le plage nommée H5:J8 et 'ids' est la plage nommée H5:H8.

Explication

Cette formule extrait le nom et l'état du client de la table des clients dans la table des commandes. La fonction MATCH est utilisée pour localiser le bon client et la fonction INDEX est utilisée pour récupérer les données.





Récupération du nom du client

En travaillant de l'intérieur vers l'extérieur, la fonction MATCH est utilisée pour obtenir un numéro de ligne comme celui-ci :

exceller qu'est-ce qu'un tableau croisé dynamique
 
= INDEX (data, MATCH ($C5,ids,0),2)
  • La valeur de recherche vient de l'identifiant client dans C5, qui est une référence mixte, avec la colonne verrouillée, de sorte que la formule peut être facilement copiée.
  • Le tableau de recherche correspond aux identifiants de plage nommés (H5:H8), la première colonne de la table client.
  • Le type de correspondance est défini sur zéro pour forcer une correspondance exacte.

La fonction MATCH renvoie 2 dans ce cas, qui entre dans INDEX comme numéro de ligne :



 
 MATCH ($C5,ids,0)

Avec le numéro de colonne codé en dur comme 2 (les noms des clients sont dans la colonne 2) et le tableau défini sur la plage nommée « données » (H5:J8), INDEX renvoie : Amy Chang.

Récupération de l'état du client

La formule pour récupérer l'état du client est presque identique. La seule différence est que le numéro de colonne est codé en dur comme 3, car les informations d'état apparaissent dans la 3ème colonne :

 
= INDEX (data,2,2)

Match à double sens dynamique

En ajoutant une autre fonction MATCH à la formule, vous pouvez configurer une correspondance dynamique dans les deux sens. Par exemple, avec la plage nommée 'headers' pour H4:J4, vous pouvez utiliser une formule comme celle-ci :

 
= INDEX (data, MATCH ($C5,ids,0),2) // get name = INDEX (data, MATCH ($C5,ids,0),3) // get state

Ici, une deuxième fonction MATCH a été ajoutée pour obtenir le bon numéro de colonne. MATCH utilise l'en-tête de colonne actuel dans le premier tableau pour localiser le numéro de colonne correct dans le deuxième tableau et renvoie automatiquement ce numéro à INDEX.

Auteur Dave Bruns


^