Fonctions Index Equiv

Bonjour,

Dans le cadre de la réalisation d'un tableau de bord, je m'exerce avec les fonctions INDEX et EQUIV afin de rechercher des données selon un ou plusieurs critères. Dans mon exemple, le tableau comporte 5 colonnes et l'objectif étant de d'afficher le nombre de points selon le lieu et l'année. En naviguant sur le forum, j'ai réussi à obtenir le résultat souhaité en utilisant deux syntaxes différentes :

La première :

=INDEX(B4:F13;EQUIV(I3;C4:C13;0);EQUIV(1;(B2:F2=I4)*(B3:F3=H7);0))

La seconde :

=INDEX(B4:F13;EQUIV(I3;C4:C13;0);EQUIV(I4;B2:F2;0)+EQUIV(H7;B3:F3;0)-1)

Dans un soucis de de compréhension, pourriez-vous m'expliquer la raison pour laquelle un 1 figure dans la fonction EQUIV (EQUIV(1;) dans la première formule et la raison pour laquelle un -1 figure à la fin de la seconde formule.

Enfin, lorsque je mets en forme les données en mode tableau ces deux formules ne fonctionnent plus. Pour quelle raison ? J'ai cru comprendre que c'était lié au fait que les titres du tableau sont en format texte.

En vous remerciant par avance pour votre retour,

Bonne soirée,

12test-2.xlsx (19.81 Ko)

Bonsoir à tous !

Une proposition ?

Bonsoir,

JFL bonsoir,

Pour la présence du 1 dans EQUIV(1;(B2:F2=I4)*(B3:F3=H7);0) :
(B2:F2=I4)*(B3:F3=H7) ici on multiplie des plages en fonction de tests.
Sous Excel un test qui est "bon" renvoie VRAI et VRAI est considéré comme 1.
Si le test est "Mauvais" ou "Faux" il renvoie FAUX et FAUX peut être considéré comme 0.

Si on multiplie les tests entre eux alors au résultat on aura 1 (VRAI) ou 0 (FAUX).

Le premier argument d'EQUIV est donc 1, on recherche donc la condition VRAI à la multiplication !
pour que ce soit vrai il faut que B2:F2=I4 ET B3:F3=H7, si ce n'est pas le cas alors EQUIV ne trouve pas 1.

Pour la deuxième formule, nul besoin de l'expliquer elle est fausse !

Pour ce qui est de la mise en tableau en effet les entêtes de colonnes sont en String !
Donc deux possibilités : soit vous les transformez en nombre dans la formule avec *1 : =INDEX(B3:F13;EQUIV(I3;C4:C13;0);EQUIV(1;((B2:F2)*1=I4)*(B3:F3=H7);0))
Soit comme JFL vous transformez la valeur en I4 en String : =INDEX(B3:F13;EQUIV(I3;C4:C13;0);EQUIV(1;(B2:F2=CTXT(I4;0;1))*(B3:F3=H7);0))

@ bientôt

LouReeD

Bonjour,

JFL merci pour ta proposition qui fonctionne.

LouReeD merci beaucoup pour cette explication. Je te remercie également pour ta proposition qui fonctionne parfaitement.

Bonne journée à tous les deux.

Bonjour à tous !

Bien....

Je vous remercie de ce retour.

Rechercher des sujets similaires à "fonctions index equiv"