Bonjour cher forum,
Mon projet évolue et je coince encore...
J'ai 4 listes de choix possibles dont 1 ou toutes les possibilités peuvent être séléctionnées.
En fonction des choix exprimés dans la ou les listes précédentes la liste de choix change évidemment.
Jusque là pas de problème, ça marche...
Les résultats apparaissent dans une colonne (ici la colonne C) gràce à une formule matricielle étendue sur une plage de 2000 lignes:
{=SI(Choix1="ALL EUROPE";
SI(Choix4="";
SF_ACCOUNTNAME;
SI(LIGNE(Calculs!$F$4:$F$2000)>LIGNE(Calculs!$F$4);"";RECHERCHEV(Choix4;SF_ACCOUNTNAME;1;VRAI)));
SI(Choix1="Country";
SI(Choix4="";
INDEX(SF_ACCOUNTNAME;EQUIV(PETITE.VALEUR(SI(SI(Feuil1!$I$6<>"";(SF_ACCOUNT_COUNT=Feuil1!$I$4)*(SF_ACCOUNT_TIER=Feuil1!$I$6);SF_ACCOUNT_COUNT=Feuil1!$I$4);NB.SI(SF_ACCOUNTNAME;"<"&SF_ACCOUNTNAME));LIGNE(INDIRECT("1:"&LIGNES(SF_ACCOUNT_COUNT))));NB.SI(SF_ACCOUNTNAME;"<"&SF_ACCOUNTNAME);0));
SI(LIGNE(Calculs!$F$4:$F$2000)>LIGNE(Calculs!$F$4);"";RECHERCHEV(Choix4;SF_ACCOUNTNAME;1;VRAI)));
SI(Choix1="Account Manager";
SI(Choix4="";
INDEX(SF_ACCOUNTNAME;EQUIV(PETITE.VALEUR(SI(SI(Feuil1!$I$6<>"";(SF_ACCOUNT_MANAGER=Feuil1!$I$4)*(SF_ACCOUNT_TIER=Feuil1!$I$6);SF_ACCOUNT_MANAGER=Feuil1!$I$4);NB.SI(SF_ACCOUNTNAME;"<"&SF_ACCOUNTNAME));LIGNE(INDIRECT("1:"&LIGNES(SF_ACCOUNT_MANAGER))));NB.SI(SF_ACCOUNTNAME;"<"&SF_ACCOUNTNAME);0));
SI(LIGNE(Calculs!$F$4:$F$2000)>LIGNE(Calculs!$F$4);"";RECHERCHEV(Choix4;SF_ACCOUNTNAME;1;VRAI)));
"aucune sélection en I2, la cellule doit être vide")))}
Bref... mon fichier joint réexplique tout.
Toute simplification et idées seront aussi les bienvenues!
Merci encore pour votre aide
Philippe
Mon projet évolue et je coince encore...
J'ai 4 listes de choix possibles dont 1 ou toutes les possibilités peuvent être séléctionnées.
En fonction des choix exprimés dans la ou les listes précédentes la liste de choix change évidemment.
Jusque là pas de problème, ça marche...
Les résultats apparaissent dans une colonne (ici la colonne C) gràce à une formule matricielle étendue sur une plage de 2000 lignes:
{=SI(Choix1="ALL EUROPE";
SI(Choix4="";
SF_ACCOUNTNAME;
SI(LIGNE(Calculs!$F$4:$F$2000)>LIGNE(Calculs!$F$4);"";RECHERCHEV(Choix4;SF_ACCOUNTNAME;1;VRAI)));
SI(Choix1="Country";
SI(Choix4="";
INDEX(SF_ACCOUNTNAME;EQUIV(PETITE.VALEUR(SI(SI(Feuil1!$I$6<>"";(SF_ACCOUNT_COUNT=Feuil1!$I$4)*(SF_ACCOUNT_TIER=Feuil1!$I$6);SF_ACCOUNT_COUNT=Feuil1!$I$4);NB.SI(SF_ACCOUNTNAME;"<"&SF_ACCOUNTNAME));LIGNE(INDIRECT("1:"&LIGNES(SF_ACCOUNT_COUNT))));NB.SI(SF_ACCOUNTNAME;"<"&SF_ACCOUNTNAME);0));
SI(LIGNE(Calculs!$F$4:$F$2000)>LIGNE(Calculs!$F$4);"";RECHERCHEV(Choix4;SF_ACCOUNTNAME;1;VRAI)));
SI(Choix1="Account Manager";
SI(Choix4="";
INDEX(SF_ACCOUNTNAME;EQUIV(PETITE.VALEUR(SI(SI(Feuil1!$I$6<>"";(SF_ACCOUNT_MANAGER=Feuil1!$I$4)*(SF_ACCOUNT_TIER=Feuil1!$I$6);SF_ACCOUNT_MANAGER=Feuil1!$I$4);NB.SI(SF_ACCOUNTNAME;"<"&SF_ACCOUNTNAME));LIGNE(INDIRECT("1:"&LIGNES(SF_ACCOUNT_MANAGER))));NB.SI(SF_ACCOUNTNAME;"<"&SF_ACCOUNTNAME);0));
SI(LIGNE(Calculs!$F$4:$F$2000)>LIGNE(Calculs!$F$4);"";RECHERCHEV(Choix4;SF_ACCOUNTNAME;1;VRAI)));
"aucune sélection en I2, la cellule doit être vide")))}
Bref... mon fichier joint réexplique tout.
Toute simplification et idées seront aussi les bienvenues!
Merci encore pour votre aide
Philippe