Formule Excel: Joindre des tables avec INDEX et MATCH -

Table des matières

Formule générique

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

Sommaire

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

=INDEX(data,MATCH($C5,ids,0),2)

où "data" est la 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:

MATCH($C5,ids,0)

  • La valeur de recherche provient de l'ID 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 ID 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:

=INDEX(data,2,2)

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 "data" (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,MATCH($C5,ids,0),2) // get name =INDEX(data,MATCH($C5,ids,0),3) // get state

Match bidirectionnel dynamique

En ajoutant une autre fonction MATCH à la formule, vous pouvez configurer une correspondance bidirectionnelle dynamique. Par exemple, avec la plage nommée "en-têtes" pour H4: J4, vous pouvez utiliser une formule comme celle-ci:

=INDEX(data,MATCH($C5,ids,0),MATCH(E$4,headers,0))

Ici, une deuxième fonction MATCH a été ajoutée pour obtenir le numéro de colonne correct. 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 nombre à INDEX.

Articles intéressants...