Re
prenons l'exemple de 5BORDEAUX en E16 (de ton fichier test):
les decaler(), c'est pour rendre les plages dynamiques.
sans decaler(), ça donne :
=SIERREUR(INDEX(Données!G4:G25;SOMMEPROD((Données!A4:A25=$B16)*(Données!D4:D25=SOMME.SI(Données!A4:A25;Maquette!$B16;Données!D4:D25))*LIGNE($1:$22)));"")
SOMMEPROD((Données!A4:A25=$B16)*(Données!D4:D25=SOMME.SI(Données!A4:A25;Maquette!$B16;Données!D4:D25))*LIGNE($1:$22)));"")
je regarde dans les colonnes des noms et D, les lignes (LIGNE($1:$22), c'est a dire l'équivalence qui correspond a DUPONT et 5 ==>11
donc on a maintenant :
=SIERREUR(INDEX(Données!G4:G25;11);"")==>Bordeaux
J'ai refait la formule sans matricielle :
=SI(SOMMEPROD((DECALER(Données!$A$2;0;0;nblignes;1)=$B16)*(DECALER(Données!B$2;0;0;nblignes;1)))=0;"";SOMMEPROD((DECALER(Données!$A$2;0;0;nblignes;1)=$B16)*(DECALER(Données!B$2;0;0;nblignes;1))))&SIERREUR(INDEX(DECALER(Données!$G$2;0;0;nblignes;1);SOMMEPROD((DECALER(Données!$A$2;0;0;nblignes;1)=$B16)*(DECALER(Données!B$2;0;0;nblignes;1)=SOMME.SI(Données!$A:$A;Maquette!$B16;Données!B:B))*LIGNE(INDIRECT("$1:$"&nblignes))));"")
on utilise sommeprod() pour les chiffres.
La formule est grande parceque
1 il faut éliminer les resultats 0
2 les plages sont dynamiques
Si tu veux plus concis, donne un nom aux plages
je te mets une version "plus réfléchie"