INDEX et MATCH sur plusieurs colonnes
Pour rechercher une valeur en effectuant une correspondance sur plusieurs colonnes, une formule matricielle basée sur les fonctions INDEX et MATCH qui incorpore MMULT, TRANSPOSE, et COLONNE vous sera utile.
Comment rechercher une valeur en effectuant une correspondance sur plusieurs colonnes ?
Pour remplir la classe correspondante de chaque étudiant comme indiqué dans le tableau ci-dessus, où les informations sont réparties sur plusieurs colonnes, vous pouvez d'abord utiliser l'astuce des fonctions MMULT, TRANSPOSE et COLONNE pour produire un tableau matriciel. Ensuite, la fonction MATCH vous donnera la position de votre valeur de recherche, qui sera transmise à INDEX pour récupérer la valeur que vous recherchez dans le tableau.
Syntaxe générique
=INDEX(plage_retour,(MATCH(1,MMULT(--(tableau_recherche=valeur_recherche),TRANSPOSE(COLONNE(tableau_recherche)^0)),0)))
√ Remarque : Il s'agit d'une formule matricielle qui nécessite d'être validée avec Ctrl + Maj + Entrée.
- plage_retour : La plage où vous souhaitez que la formule retourne les informations de classe. Ici, cela fait référence à la plage de classes.
- valeur_recherche : La valeur utilisée par la formule pour trouver les informations de classe correspondantes. Ici, cela fait référence au nom donné.
- tableau_recherche : La plage de cellules où la valeur_recherche est listée ; la plage contenant les valeurs à comparer avec la valeur_recherche. Ici, cela fait référence à la plage des noms.
- type_correspondance 0 : Force MATCH à trouver la première valeur exactement égale à la valeur_recherche.
Pour trouver la classe de Jimmy, veuillez copier ou saisir la formule ci-dessous dans la cellule H5, puis appuyez sur Ctrl + Maj + Entrée pour obtenir le résultat :
=INDEX($B$5:$B$7,(MATCH(1,MMULT(--($C$5:$E$7=G5),TRANSPOSE(COLONNE($C$5:$E$7)^0)),0)))
√ Remarque : Les signes dollar ($) ci-dessus indiquent des références absolues, ce qui signifie que les plages de noms et de classes dans la formule ne changeront pas lorsque vous déplacez ou copiez la formule vers d'autres cellules. Notez que vous ne devez pas ajouter de signes dollar à la référence de cellule représentant la valeur de recherche, car vous voulez qu'elle soit relative lorsque vous la copiez dans d'autres cellules. Après avoir saisi la formule, faites glisser la poignée de recopie vers le bas pour appliquer la formule aux cellules situées en dessous.
Explication de la formule
=INDEX($B$5:$B$7,(MATCH(1,MMULT(--($C$5:$E$7=G5),TRANSPOSE(COLONNE($C$5:$E$7)^0)),0)))
- --($C$5:$E$7=G5) : Ce segment vérifie chaque valeur dans la plage $C$5:$E$7 si elles sont égales à la valeur dans la cellule G5, et génère un tableau VRAI et FAUX comme ceci :
{TRUE,FALSE,FALSE;FALSE,FALSE,FALSE;FALSE,FALSE,FALSE}.
Le double négatif convertira ensuite les VRAI et FAUX en 1 et 0 pour produire un tableau comme ceci :
{1,0,0;0,0,0;0,0,0}. - COLONNE($C$5:$E$7): La fonction COLONNE renvoie les numéros de colonne pour la plage $C$5:$E$7 dans un tableau comme ceci : {3,4,5}.
- TRANSPOSE(TRANSPOSE(COLONNE($C$5:$E$7)^0)^0) = TRANSPOSE(TRANSPOSE({3,4,5}^0)^0): Après avoir élevé à la puissance 0, tous les nombres du tableau {3,4,5} seront convertis en 1 : {1,1,1}. La fonction TRANSPOSE convertit ensuite le tableau de colonnes en un tableau de lignes comme ceci : {1;1;1}.
- MMULT(MMULT(--($C$5:$E$7=G5),,TRANSPOSE(COLONNE($C$5:$E$7)^0))) = MMULT(MMULT({1,0,0;0,0,0;0,0,0},,{1;1;1})): La fonction MMULT renvoie le produit matriciel des deux tableaux comme ceci : {1;0;0}.
- MATCH(1,MATCH(1,MMULT(--($C$5:$E$7=G5),TRANSPOSE(COLONNE($C$5:$E$7)^0)),0),0) = MATCH(1,MATCH(1,{1;0;0},0),0): Le type_correspondance 0 force la fonction MATCH à retourner la position de la première correspondance de 1 dans le tableau {1;0;0}, qui est 1.
- INDEX($B$5:$B$7$B$5:$B$7,,,(MATCH(1,MMULT(--($C$5:$E$7=G5),,,TRANSPOSE(COLONNE($C$5:$E$7)^0)),0))) = INDEX($B$5:$B$7$B$5:$B$7,,,1) : La fonction INDEX retourne la première valeur dans la plage de classes $B$5:$B$7, qui est A.
Pour rechercher facilement une valeur en effectuant une correspondance sur plusieurs colonnes, vous pouvez également utiliser notre add-in Excel professionnel Kutools pour Excel. Consultez les instructions ici pour accomplir cette mission.
Fonctions connexes
La fonction INDEX Excel renvoie la valeur affichée en fonction d'une position donnée dans une plage ou un tableau.
La fonction MATCH Excel recherche une valeur spécifique dans une plage de cellules et retourne la position relative de cette valeur.
La fonction MMULT Excel renvoie le produit matriciel de deux tableaux. Le résultat du tableau a le même nombre de lignes que tableau1 et le même nombre de colonnes que tableau2.
La fonction TRANSPOSE Excel modifie l'orientation d'une plage ou d'un tableau. Par exemple, elle peut faire pivoter un tableau disposé horizontalement en lignes pour le disposer verticalement en colonnes ou vice versa.
La fonction COLONNE renvoie le numéro de colonne où la formule apparaît ou retourne le numéro de colonne de la référence donnée. Par exemple, la formule =COLONNE(BD) retourne 56.
Formules connexes
Recherche multicritères avec INDEX et MATCH
Lorsque vous travaillez avec une grande base de données dans une feuille de calcul Excel comportant plusieurs colonnes et légendes de ligne, il est toujours difficile de trouver quelque chose qui répond à plusieurs critères. Dans ce cas, vous pouvez utiliser une formule matricielle avec les fonctions INDEX et MATCH.
Recherche bidirectionnelle avec INDEX et MATCH
Pour rechercher quelque chose à la fois dans les lignes et les colonnes dans Excel, ou nous dirions pour rechercher une valeur à l'intersection d'une ligne et d'une colonne spécifiques, nous pouvons utiliser l'aide des fonctions INDEX et MATCH.
Recherche de la valeur correspondante la plus proche avec plusieurs critères
Dans certains cas, vous devrez peut-être rechercher la valeur correspondante la plus proche ou approximative sur la base de plusieurs critères. Avec la combinaison des fonctions INDEX, MATCH et SI, vous pouvez rapidement y parvenir dans Excel.
Les meilleurs outils de productivité pour Office
Kutools pour Excel - Vous aide à vous démarquer de la foule
Kutools pour Excel compte plus de 300 fonctionnalités, garantissant que ce dont vous avez besoin n'est qu'à un clic...
Office Tab - Active la lecture et l'édition par onglets dans Microsoft Office (y compris Excel)
- Une seconde pour basculer entre des dizaines de documents ouverts !
- Réduit des centaines de clics de souris pour vous chaque jour, dites adieu à la main de la souris.
- Augmente votre productivité de 50 % lors de la consultation et de l'édition de plusieurs documents.
- Apporte des onglets efficaces à Office (y compris Excel), tout comme Chrome, Edge et Firefox.