Tri par ordre alphabétique plutôt que sur des valeurs dans une formule matricielle

premion

XLDnaute Junior
Bonjour cher forum,

Je vous joins un fichier exemple où j'explique tout.

Ma formule matricielle (résultat d'une aide du forum il y a 2 ans!) me permet de sortir une liste qui trie par ordre décroissant des noms d'une liste en fonction de valeurs situées dans une colonne limitrophe.
Je voudrais que le tri se fasse uniquement sur les noms et non sur les valeurs...

Je sais... Je suis pas doué...

En prime, si quelqu'un pouvait m'aider à percer le secret de cette formule ce serait top!

Merci d'avance pour votre aide

Philippe
 

Pièces jointes

  • Tri alphabétique formulematricielle.xlsm
    10 KB · Affichages: 130
  • Tri alphabétique formulematricielle.xlsm
    10 KB · Affichages: 150
  • Tri alphabétique formulematricielle.xlsm
    10 KB · Affichages: 148

R@chid

XLDnaute Barbatruc
Re : Tri par ordre alphabétique plutôt que sur des valeurs dans une formule matriciel

Bonjour,
Pas sur d'avoir bien compris sans voir les résultats souhaités...
en B7,
Code:
=SIERREUR(INDEX(Name_Customer;EQUIV(PETITE.VALEUR(SI(Country_Customer=B$2;NB.SI(Name_Customer;"<"&Name_Customer));LIGNES($7:7));NB.SI(Name_Customer;"<"&Name_Customer);0));"")
@ valider par Ctrl+Maj+Entree
@ tirer vers le bas
@ micalement
 

premion

XLDnaute Junior
Re : Tri par ordre alphabétique plutôt que sur des valeurs dans une formule matriciel

Bonsoir Rachid,

Merci beaucoup, c'est parfait!

Puis-je me permettre d'être un peu boulet en te demandant une petite explication à savoir comment fonctionne la formule? J'ai beau essayer de me creuser la tête, je ne comprends pas.

Merci encore beaucoup!

Philippe
 

premion

XLDnaute Junior
Re : Tri par ordre alphabétique plutôt que sur des valeurs dans une formule matriciel

Re-bonsoir,

Alors en effet ça marche très bien sur mon fichier exemple qui compte une dizaine de lignes. Lorsque je l'intègre à mon fichier qui compte plusieurs centaines de noms, ce n'est plus du tout la même histoire, le calcul prend facilement 10 minutes!!! Et je comptais sur 3 sous recherche de ce type imbriquées.
Pensez-vous que mon projet ne peut pas être implémenté sous Excel car trop de lignes? Et je n'ai pas encore lancé les calculs!!

merci pour vos éclairages!

Bonne soirée

Philippe
 

david84

XLDnaute Barbatruc
Re : Tri par ordre alphabétique plutôt que sur des valeurs dans une formule matriciel

Bonjour,
Lorsque je l'intègre à mon fichier qui compte plusieurs centaines de noms, ce n'est plus du tout la même histoire, le calcul prend facilement 10 minutes!!!
Pour abaisser notoirement le temps de calcul d'une formule matricielle de ce type :
- sélectionner dans une colonne une plage comportant le même nombre de lignes que la plage à traiter
- rentrer dans cette plage la formule ci-dessous :
Code:
=INDEX(Name_Customer;EQUIV(PETITE.VALEUR(SI(Country_Customer=A$3;NB.SI(Name_Customer;"<"&Name_Customer));LIGNE(INDIRECT("1:"&LIGNES(Country_Customer))));NB.SI(Name_Customer;"<"&Name_Customer);0))
- valider en matriciel
- cacher les valeurs d'erreurs en utilisant une mise en forme conditionnelle.
A+
 

Pièces jointes

  • Tri alphabétique formulematricielle.xlsm
    11.1 KB · Affichages: 103
  • Tri alphabétique formulematricielle.xlsm
    11.1 KB · Affichages: 119
  • Tri alphabétique formulematricielle.xlsm
    11.1 KB · Affichages: 119

premion

XLDnaute Junior
Re : Tri par ordre alphabétique plutôt que sur des valeurs dans une formule matriciel

Bonjour David84, bonjour le forum,

Merci beaucoup pour cette réponse. En effet, le gain de temps est vraiment important.
Pour poursuivre mon projet, je dois rajouter une condition supplémentaire qui se trouve toujours dans l'autre feuille. j'ai donc tout logiquement modifié ma formule avec un SI() complémentaire. Dans le fichier Excel exemple cela marche encore bien, mais quand je l'ai appliqué à mon fichier projet, une fois de plus je me suis retrouvé avec un traitement hyper long. Je ne suis pas allé jusqu'au bout, les résultats qui commençaient à tomber étaient des N/A de ttes façons.
Est-ce que ma formule est bonne? Pourrait-elle être optimisée?

En matricielle bien sûr sur toute la plage:
=SI(Feuil1!B4="";INDEX(Name_Customer;EQUIV(PETITE.VALEUR(SI(Country_Customer=A$3;NB.SI(Name_Customer;"<"&Name_Customer));LIGNE(INDIRECT("1:"&LIGNES(Country_Customer))));NB.SI(Name_Customer;"<"&Name_Customer);0));INDEX(Name_Customer;EQUIV(PETITE.VALEUR(SI((Country_Customer=A$3)*(TIERS=Feuil1!$B$4);NB.SI(Name_Customer;"<"&Name_Customer));LIGNE(INDIRECT("1:"&LIGNES(Country_Customer))));NB.SI(Name_Customer;"<"&Name_Customer);0)))

Merci encore beaucoup pour votre aide et bon Dimanche à tous!

Philippe
 

Pièces jointes

  • Tri alphabétique formulematricielle.xlsm
    10.9 KB · Affichages: 60
  • Tri alphabétique formulematricielle.xlsm
    10.9 KB · Affichages: 72
  • Tri alphabétique formulematricielle.xlsm
    10.9 KB · Affichages: 77

R@chid

XLDnaute Barbatruc
Re : Tri par ordre alphabétique plutôt que sur des valeurs dans une formule matriciel

Bonjour,
Tu peux l'optimiser comme suite,
Code:
=INDEX(Name_Customer;EQUIV(PETITE.VALEUR(SI(SI(Feuil1!B4<>"";(Country_Customer=A$3)*(TIERS=Feuil1!$B$4);Country_Customer=A$3);NB.SI(Name_Customer;"<"&Name_Customer));LIGNE(INDIRECT("1:"&LIGNES(Country_Customer))));NB.SI(Name_Customer;"<"&Name_Customer);0))
Amicalement
 

premion

XLDnaute Junior
Re : Tri par ordre alphabétique plutôt que sur des valeurs dans une formule matriciel

Bonjour R@chid, bonjour le forum!

Mille mercis, la formule fonctionne très bien en effet. Je ne comprends pas malheureusement, et c'est très frustrant...

Pourriez-vous m'expliquer comment comprendre ces deux parties:
NB.SI(SF_ACCOUNTNAME;"<"&SF_ACCOUNTNAME)
et
LIGNE(INDIRECT("1:"&LIGNES(SF_ACCOUNT_COUNT)))

Ca me permettrait vraiment de progresser.

Merci encore beaucoup!

Philippe
 

R@chid

XLDnaute Barbatruc
Re : Tri par ordre alphabétique plutôt que sur des valeurs dans une formule matriciel

Bonjour @ tous,
Pourriez-vous m'expliquer comment comprendre ces deux parties:
NB.SI(SF_ACCOUNTNAME;"<"&SF_ACCOUNTNAME)
et
LIGNE(INDIRECT("1:"&LIGNES(SF_ACCOUNT_COUNT)))
Voir PJ, j’espère être clair sur les explications...
Amicalement
 

Pièces jointes

  • tri_Alpha.xlsm
    14.5 KB · Affichages: 101

premion

XLDnaute Junior
Re : Tri par ordre alphabétique plutôt que sur des valeurs dans une formule matriciel

Bonjour R@chid et bonjour le forum,

Merci pour les explications, mais j'avoue toujours avoir du mal. Dans la globalité, je comprends, mais là où je me rends compte que je n'ai rien pigé c'est quand je veux refaire l'exercice.
En fait dans mon projet, j'ai encore un 3ème cas où je dois pouvoir sortir la liste entière (soit sans critère), une liste avec le critère pays, et enfin une liste avec les 3 critères...
Je suis désolé, mais je coince encore. Je vous joins un fichier exemple où j'ai retiré les quelques 3000 lignes de données... Une fois de plus je vous remercie pour votre aide à tous.
Bonne journée
Philippe
 

Pièces jointes

  • Mon.xlsm
    93.6 KB · Affichages: 60
  • Mon.xlsm
    93.6 KB · Affichages: 87
  • Mon.xlsm
    93.6 KB · Affichages: 70

premion

XLDnaute Junior
Re : Tri par ordre alphabétique plutôt que sur des valeurs dans une formule matriciel

Bonjour à tous,

Si éventuellement il y a un lien vers un site qui montre les 3 possibilités de formules matricielles, éventuellement je suis preneur aussi.

Merci beaucoup à R@chid et à David84 pour votre aide jusque là et à R@chid pour les explications.

Philippe
 

Pièces jointes

  • Mon.xlsm
    93.6 KB · Affichages: 62
  • Mon.xlsm
    93.6 KB · Affichages: 67
  • Mon.xlsm
    93.6 KB · Affichages: 70

premion

XLDnaute Junior
Re : Tri par ordre alphabétique plutôt que sur des valeurs dans une formule matriciel

Re-Bonjour,

Cette fois j'ai avancé! j'ai trouvé comment afficher tous les clients pour la zone (c'était évident, il suffisait de renseigner juste la plage dans la formule matricielle...)

Toutefois, j'ai toujours le problème que si je rentre un choix dans ma liste déroulante ma formule matricielle me recopie le choix sur toutes les lignes...

Mon fichier joint avec les dernières modifications.

Ma formule étant devenue trop longue j'ai créé des noms pour ces formules, ce qui les rend plus visibles pour moi.

J'ai encore besoin de vous! Merci mille fois pour votre aide.

Cdt

Philippe
 

Pièces jointes

  • Mon.xlsm
    93.6 KB · Affichages: 81
  • Mon.xlsm
    93.6 KB · Affichages: 91
  • Mon.xlsm
    93.6 KB · Affichages: 98

Discussions similaires