Tri liste ordre alphabetique

SAMWRC

XLDnaute Occasionnel
Bonjour le forum,

Voici mon problème :
J'ai une liste de noms dont je veux me servir comme base de données. Cette liste sera donc automatiquement mise à jour et stockée dans un onglet. Je veux utiliser cette liste de noms dans plusieurs autres onglets. Pour des questions pratiques, je souhaiterais que cette liste soit triée par ordre alphabétique lorsqu'elle est "recopiée" dans les autres onglets.

Après des recherches très intéressantes dans le forum, j'ai réussi à élaborer la solution en pj qui fonctionne a priori très bien. Cependant, elle fait appel à 2 colonnes intermédiaires (Classement ordre alphabétique / Index) dont j'aimerais bien me passer si possible.

Pour résumer, je souhaite trouver une formule qui, à partir de la liste "noms", me donne la liste "noms tries".

Merci d'avance pour votre aide.

Sam
 

Pièces jointes

  • Tri liste ordre alphabetique.xls
    16 KB · Affichages: 515

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Tri liste ordre alphabetique

Bonjour,

Remarque sur l'écriture des formules matricielles (tri matriciel)

Cas1: La formule matricielle est écrite une seule fois dans un champ

-Sélectionner D2:D500
=INDEX(champ;EQUIV(GRANDE.VALEUR(NB.SI(champ;">="&champ);LIGNE(INDIRECT("1:"&LIGNES(champ))));NB.SI(champ;">="&champ);0))
-Valider avec Maj+ctrl+entrée

-Si on modifie une cellule, temps recalcul < 1sec

Cas2:La formule est écrite dans une cellule puis recopiée

=SI(LIGNES($1:1)<=NBVAL(champ);INDEX(champ;EQUIV(PETITE.VALEUR(NB.SI(champ;"<"&champ);LIGNES($1:1));NB.SI(champ;"<"&champ);0));"")
-Valider avec Maj+ctrl+entrée

Si on modifie une cellule: temps recalcul >10 sec


Dans le cas où la formule est écrite une seule fois dans un champ, il y a également un gain de place mémoire.


JB
 

Pièces jointes

  • TriMatJB.xls
    75.5 KB · Affichages: 68
  • TriMatDavid84.xls
    135.5 KB · Affichages: 60
Dernière édition:

david84

XLDnaute Barbatruc
Re : Tri liste ordre alphabetique

Bonjour,
Je trouve les tests de Jacques très intéressants et importants car la vitesse de traitement est un frein non négligeable à l'utilisation des matricielles sur des plages importantes !

De plus, dans le cadre des différentes formules utilisées pour les tris sans doublons, c'est une différence importante à signaler entre l'utilisation de PETITE.VALEUR ou GRANDE.VALEUR (donc comportant l'argument k) et celle de MIN couplée à NB.SI où l'on ne peut sélectionner une plage de cellules pour obtenir le résultat adéquat (et donc le temps de traitement entre les 2 fonctions sur des plages importantes n'est pas comparable).

Ci-joint un essai de tri sans doublon sur le fiche de Jacques.
Le temps de traitement est également < à 1 seconde sur une plage de 500 valeurs.

Pour ceux qui ne veulent pas utiliser de fonction personnalisées dont la vitesse de traitement est encore bien plus rapide, c'est une alternative vraiment intéressante (cf. ici sur le site de Jacques).
A+

Edit : la formule proposée dans le fichier peut être légèrement raccourcie :
Code:
=INDEX(champ;EQUIV(PETITE.VALEUR(SI(champ<>"";SI(EQUIV(champ;champ;0)=LIGNE(INDIRECT("1:"&LIGNES(champ)));NB.SI(champ;"<"&champ)));LIGNE(INDIRECT("1:"&LIGNES(champ))));SI(champ<>"";NB.SI(champ;"<"&champ));0))
 

Pièces jointes

  • TriMatJB (2).xlsx
    28.1 KB · Affichages: 83
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 438
Messages
2 088 411
Membres
103 847
dernier inscrit
Girardon