Formule Excel: recherche et transposition multicritères -

Table des matières

Formule générique

(=INDEX(rng1,MATCH(1,($A1=rng2)*(B$1=rng3),0)))

Sommaire

Pour effectuer une recherche multicritères et transposer les résultats dans une table, vous pouvez utiliser une formule matricielle basée sur INDEX et MATCH. Dans l'exemple illustré, la formule en G5 est:

(=INDEX(amount,MATCH(1,($F5=location)*(G$4=date),0)))

Notez que cette formule est une formule matricielle et doit être entrée avec Ctrl + Maj + Entrée.

Cette formule utilise également trois plages nommées: emplacement = B5: B13, montant = D5: D13, date = C5: C13

Explication

Le noyau de cette formule est INDEX, qui récupère une valeur de la plage nommée «montant» (B5: B13):

=INDEX(amount,row_num)

où row_num est élaboré avec la fonction MATCH et une logique booléenne:

MATCH(1,($F5=location)*(G$4=date),0)

Dans cet extrait de code, l'emplacement dans F5 est comparé à tous les emplacements et la date dans G4 est comparée à toutes les dates. Le résultat dans chaque cas est un tableau de valeurs TRUE et FALSE. Lorsque ces tableaux sont multipliés ensemble, l'opération mathématique contraint les valeurs TRUE et FALSE à un et à des zéros, de sorte que le tableau de recherche entrant dans MATCH ressemble à ceci:

(1;0;0;0;0;0;0;0;0)

MATCH est configuré pour correspondre à 1 comme correspondance exacte et renvoie la position à INDEX sous forme de numéro de ligne. Le nombre 1 fonctionne pour la valeur de recherche car le tableau ne contient désormais que des 1 et des 0, comme indiqué ci-dessus.

F5 et G4 sont saisis en tant que références mixtes afin que la formule puisse être copiée dans le tableau sans modification.

Transposer avec pâte spéciale

Si vous avez juste besoin de transposer un tableau une seule fois, n'oubliez pas que vous pouvez utiliser coller spécial.

Articles intéressants...