Formule tri croissant du contenu d'un cellule, possible ? (sans VBA)

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Staple1600

XLDnaute Barbatruc
Bonsoir à tous


Comment faire pour trier (ordre croissant) le contenu de d'une cellule.
en utilisant une formule? (pas de VBA)


Exemple:


9432 -> 2349


Pour le moment j'en suis là

En A1
9432

en B1:E1 =STXT($A$1;COLONNE()-1;1)*1
en B2:E2 =PETITE.VALEUR($B$1:$E$1;COLONNE()-1)
en A2 =(B2&C2&D2&E2)*1

Comment faire en utilisant qu'une seule formule, et sans utiliser de cellules complémentaires?
 
Re : Formule tri croissant du contenu d'un cellule, possible ? (sans VBA)

Bonsoir à vous
Je vous propose :​
Code:
=CONCATENER(SI(ESTERR(CHERCHE(0;$A$1));"";STXT($A$1;CHERCHE(0;$A$1);1));
SI(ESTERR(CHERCHE(1;$A$1));"";STXT($A$1;CHERCHE(1;$A$1);1));
SI(ESTERR(CHERCHE(2;$A$1));"";STXT($A$1;CHERCHE(2;$A$1);1));
SI(ESTERR(CHERCHE(3;$A$1));"";STXT($A$1;CHERCHE(3;$A$1);1));
SI(ESTERR(CHERCHE(4;$A$1));"";STXT($A$1;CHERCHE(4;$A$1);1));
SI(ESTERR(CHERCHE(5;$A$1));"";STXT($A$1;CHERCHE(5;$A$1);1));
SI(ESTERR(CHERCHE(6;$A$1));"";STXT($A$1;CHERCHE(6;$A$1);1));
SI(ESTERR(CHERCHE(7;$A$1));"";STXT($A$1;CHERCHE(7;$A$1);1));
SI(ESTERR(CHERCHE(8;$A$1));"";STXT($A$1;CHERCHE(8;$A$1);1));
SI(ESTERR(CHERCHE(9;$A$1));"";STXT($A$1;CHERCHE(9;$A$1);1)))
qui n'est pas mieux : le cas des chiffres répétés n'est pas traité (i.e. 1001 renvoie 01).​
Tant pis...​
Bonne nuit !
ROGER2327
 
Dernière édition:
Re : Formule tri croissant du contenu d'un cellule, possible ? (sans VBA)

Bonjour,

Autre possibilité par formules nommées, voir sous la pièce jointe.

abcd

Edition :
Même remarque que Roger, les doublons ne sont pas traités.
Fichier corrigé, la formule traite aussi les triplettes.
 

Pièces jointes

Dernière édition:
Re : Formule tri croissant du contenu d'un cellule, possible ? (sans VBA)

Bonjour,

Jusqu’à 10 chiffres

=SI(NBCAR(A1)<1;"";PETITE.VALEUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1;1))&SI(NBCAR(A1)<2;"";PETITE.VALEUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1;2))&SI(NBCAR(A1)<3;"";PETITE.VALEUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1;3))&SI(NBCAR(A1)<4;"";PETITE.VALEUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1;4))&SI(NBCAR(A1)<5;"";PETITE.VALEUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1;5))&SI(NBCAR(A1)<6;"";PETITE.VALEUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1;6))&SI(NBCAR(A1)<7;"";PETITE.VALEUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1;7))&SI(NBCAR(A1)<8;"";PETITE.VALEUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1;8))&SI(NBCAR(A1)<9;"";PETITE.VALEUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1;9))&SI(NBCAR(A1)<10;"";PETITE.VALEUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1;10))
 
Re : Formule tri croissant du contenu d'un cellule, possible ? (sans VBA)

Coucou tout le monde,

Monique, arrêteuuuuuuuuuuuuuu, moi je vais sauter par la fenêtreuuuuuuu si tu continues... à concurrencer Tibo... C@thy a commencé aussi à faire des formules à rallonge...

Non je rigole, et je dis chapeau bas. Mais tu imagines : je suis en train de l'apprendre par coeur, j'ai pas fini.

Bisous, à bientôt où tu sais.

Et chapeau bas à tout le monde pour relever les défis fous de Mister Agrafe. Même moi je vais finir par dire : vive vba, à nous dégoûter des formules !!
 
Re : Formule tri croissant du contenu d'un cellule, possible ? (sans VBA)

Bonjour Monique,

Belle formule, mais pour ceux qui l'essaierait, il faut :
- supprimer les espaces inutiles (la formule doit faire 815 caractères)
- il faut la valider en matricielle (Ctrl+Maj+Entrée).

Pour le cas qui concerne Staple, ceci suffit :
=(PETITE.VALEUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1;1)&PETITE.VALEUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1;2)&PETITE.VALEUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1;3)&PETITE.VALEUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1;4))*1
à valider en matricielle (et supprimer les espaces inutiles).
Le *1 final transforme le résultat en valeur numérique.

abcd
 
Re : Formule tri croissant du contenu d'un cellule, possible ? (sans VBA)

Ouf, c déjà plus court, merci abcd. Et bravo à toi aussi !

Petite astuce (faut bien que je serve à qqchse) : lorsqu'une formule, une fois postée, affiche des espaces inutiles, éditer son post et mettre en couleurs qq caractères et avant le fameux espace en trop, et hop le tour est joué... L'essayer, c'est l'adopter (sauf que moi ca me sert, forcément, pas bien souvent).

Et en plusss, ca fait réfléchir les lecteurs : pourquoi a t'il (elle) mis de la couleur à cet endroit, hi hi...

Bon dimanche abcd.
 
Re : Formule tri croissant du contenu d'un cellule, possible ? (sans VBA)

Re,

S'il s'agit toujours d'un nombre de 4 chiffres, jamais plus de 4, jamais moins de 4 :

Code:
[FONT=Verdana][FONT=Verdana]=(MIN(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1)&PETITE.VALEUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1;2)&PETITE.VALEUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1;3)&MAX(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1))*1[/FONT]
[/FONT]
C'est plus court

Pour avoir aussi les 0 :

Code:
=MIN(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1)&PETITE.VALEUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1;2)&PETITE.VALEUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1;3)&MAX(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1)

ou bien utiliser un format de nombre donnant 4 chiffres
 
Re : Formule tri croissant du contenu d'un cellule, possible ? (sans VBA)

Bonjour à tous
Je vois qu'il y a de l'imagination.​
Petite astuce (faut bien que je serve à qqchse) : lorsqu'une formule, une fois postée, affiche des espaces inutiles, éditer son post et mettre en couleurs qq caractères et avant le fameux espace en trop, et hop le tour est joué... L'essayer, c'est l'adopter (sauf que moi ca me sert, forcément, pas bien souvent).
...ou encore, éditer comme du code : c'est rapide et ça fait propre.​
À bientôt,
ROGER2327
 
Re : Formule tri croissant du contenu d'un cellule, possible ? (sans VBA)

Bonjour à tous

Content de voir d'émérites formulistes fréquenter ce fil.

Merci à tous.

Je vais tester vos solutions.


PS: pour info, cette question est en rapport avec The 24 game
(dans le but de vérifier l'utilisation des 4 chiffres de la combinaison sortie
dans l'expression à calculer)
 
Re : Formule tri croissant du contenu d'un cellule, possible ? (sans VBA)

Bonsoir à tous
PS: pour info, cette question est en rapport avec The 24 game (dans le but de vérifier l'utilisation des 4 chiffres de la combinaison sortie dans l'expression à calculer)
Par conséquent, pas de risque de chiffre en double et toutes les formules précédentes conviennent.​
Ce n'est pas pour vendre ma salade, mais ma formule s'adapte aussi au traitement de données alphanumériques (sans répétition) en la compétant comme suit :​
Code:
=CONCATENER(SI(ESTERR(CHERCHE(0;$A$1));"";
STXT($A$1;CHERCHE(0;$A$1);1));SI(ESTERR(CHERCHE(1;$A$1));"";
STXT($A$1;CHERCHE(1;$A$1);1));SI(ESTERR(CHERCHE(2;$A$1));"";
STXT($A$1;CHERCHE(2;$A$1);1));SI(ESTERR(CHERCHE(3;$A$1));"";
STXT($A$1;CHERCHE(3;$A$1);1));SI(ESTERR(CHERCHE(4;$A$1));"";
STXT($A$1;CHERCHE(4;$A$1);1));SI(ESTERR(CHERCHE(5;$A$1));"";
STXT($A$1;CHERCHE(5;$A$1);1));SI(ESTERR(CHERCHE(6;$A$1));"";
STXT($A$1;CHERCHE(6;$A$1);1));SI(ESTERR(CHERCHE(7;$A$1));"";
STXT($A$1;CHERCHE(7;$A$1);1));SI(ESTERR(CHERCHE(8;$A$1));"";
STXT($A$1;CHERCHE(8;$A$1);1));SI(ESTERR(CHERCHE(9;$A$1));"";
STXT($A$1;CHERCHE(9;$A$1);1));SI(ESTERR(CHERCHE("A";$A$1));"";
STXT($A$1;CHERCHE("A";$A$1);1));SI(ESTERR(CHERCHE("B";$A$1));"";
STXT($A$1;CHERCHE("B";$A$1);1));SI(ESTERR(CHERCHE("C";$A$1));"";
STXT($A$1;CHERCHE("C";$A$1);1));SI(ESTERR(CHERCHE("D";$A$1));"";
STXT($A$1;CHERCHE("D";$A$1);1));SI(ESTERR(CHERCHE("E";$A$1));"";
STXT($A$1;CHERCHE("E";$A$1);1));SI(ESTERR(CHERCHE("F";$A$1));"";
STXT($A$1;CHERCHE("F";$A$1);1)))
Ça ne sert à rien, mais ça fait plaisir.​
Bonne nuit !
ROGER2327
 
Re : Formule tri croissant du contenu d'un cellule, possible ? (sans VBA)

Bonsoir


Merci Roger, merci à tous

Ce problème de tri croissant est résolu.


Reste le plus dur à faire:
Vérifier la validité d'une expression mathématique.

(Cette formule de tri croissant me permettant juste de vérifier
que les chiffres sont les bons et ne sont employés qu'une fois)

Mais cela fera l'objet (peut-être) d'un autre post.


Bonne fin de week-end à tous.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour