XL 2016 Ajout d'un 3e critère pour un index

baba16

XLDnaute Nouveau
Bonjour à tous,

Je prépare actuellement un document qui utilise la formule index, equiv et recherchev (onglet figures)

Pour le moment, la formule marche uniquement pour aller chercher le titre (ex: number point of sales) et la ville associé (ex city of Paris), via un EQUIV Recherchev dans l'onglet traduction.

=INDEX(Data!$A$1:$T$11;EQUIV(RECHERCHEV($J$4;Traduction!$I$6:$J$13;2;0);Data!$A$1:$A$11;0);EQUIV(RECHERCHEV(J6;Traduction!$B$4:$C$25;2;0);Data!$A$1:$AT$1;0))

Je souhaiterai rajouter un 3e critère de date, de sorte que lorsque que je modifie la date en C2, l'index puisse aller chercher la donnée correspondante titre/ville/date

J'ai tenté plusieurs formules comme l'ajout de & ou + EQUIV mais rien ne semble marcher...

Le document est en pièce jointe si jamais vous voulez y jeter un coup d’œil

Merci d'avance!

Baba
 

Pièces jointes

  • Doc test.xlsx
    38.8 KB · Affichages: 19

vgendron

XLDnaute Barbatruc
Hello
voir PJ pour un exemple juste sur la partie C6:C27 de ta feuille "Figures"

1) nommer des zones:
TabData (qui contient le tableau de la feuille Data)
TabTrad (qui contient le tableau de conversion de la feuille Traduction)
ensuite. formule :)

=SIERREUR(INDEX(Tabdata;SOMMEPROD((INDEX(Tabdata;;1)="Paris")*(INDEX(Tabdata;;2)=$C$4)*(LIGNE(INDEX(Tabdata;;1))));EQUIV(INDEX(TabTrad;EQUIV(B6;INDEX(TabTrad;;1);0);2);Data!$1:$1;0));"")

Sierreur (formule;"") ==> permet de ne rien mettre au lieu des N/A

==>
INDEX(Tabdata;SOMMEPROD((INDEX(Tabdata;;1)="Paris")*(INDEX(Tabdata;;2)=$C$4)*(LIGNE(INDEX(Tabdata;;1))));EQUIV(INDEX(TabTrad;EQUIV(B6;INDEX(TabTrad;;1);0);2);Data!$1:$1;0))

Index (Tabdata, ligne, colonne)

le numéro de ligne avec un sommeprod
SOMMEPROD((INDEX(Tabdata;;1)="Paris")*(INDEX(Tabdata;;2)=$C$4)*(LIGNE(INDEX(Tabdata;;1))))

il faut que :
la première colonne du tabdata (index(TabData;;1) contienne "Paris" "à revoir pour extraire la ville de la cellule B4
ET la colonne 2 du tabdata INDEX(Tabdata;;2) soit égale à la date C4
et ca renvoie le numéro de la ligne (LIGNE(INDEX(Tabdata;;1))


pour le numéro de colonne:
EQUIV(INDEX(TabTrad;EQUIV(B6;INDEX(TabTrad;;1);0);2);Data!$1:$1;0))

on cherche l'intitulé B6 dans la première colonne du tabtrad ==>numéro de ligne: EQUIV(B6;INDEX(TabTrad;;1);0)
on récupère sa traduction dans la seconde colonne du tableau TabTrad: INDEX(TabTrad;EQUIV(B6;INDEX(TabTrad;;1);0);2)
on cherche l'intitulé abrégé dans la ligne 1 de la feuille Data= ce qui retourne le numéro de colonne..

Voila :-D
 

Pièces jointes

  • Doc test.xlsx
    40 KB · Affichages: 11

Statistiques des forums

Discussions
312 424
Messages
2 088 286
Membres
103 807
dernier inscrit
Mythofou