Excel 2007 tri alpha numérique
jmst1 Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
Bonjour, un petit souci avec un tri alpha numérique
F1
F10
F11
F12
F13
F14
F15
F16
F17
F18
F19
F2
F20
F22
F23
F3
F4
F5
F6
F7
F8
F9
T1
T10
T100
Comment trier pour avoir
F1
F2
ect
F9
F10
F11
avec mes remerciements
,
Windows / Chrome 132.0.0.0
- Excel 2007 tri alpha numérique
- Comment faire un tri personnalisé sur excel - Guide
- Save as pdf office 2007 - Télécharger - Bureautique
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Pavé numérique bloqué - Guide
11 réponses
Bonjour,
Admis vos données en colonne A .
Une solution avec une colonne supplémentaire avec en B1 cette formule
=DROITE(A1;NBCAR(A1)-1)*1
La tirer vers le bas et ensuite vous réalisez le tri en choisissant cette colonne
Bonjour,
Salutations Le Pingou
Une variante pour éviter la mauvaise place dans le tri de T1, T10 et T100
en colonne B =GAUCHE(A1;1)&TEXTE(DROITE(A1;NBCAR(A1)-1)*1;"000")
et faire le tri par rapport à la colonne B après sélection des deux colonnes
Cordialement
Bonjour à tous,
En supposant, pour rire, qu'il y ait plusieurs lettres et non une seule :
1. en B1, à recopier vers le bas :
=GAUCHE(A1;AGREGAT(15;6;DANSLIGNE(CHERCHE({1;2;3;4;5;6;7;8;9;0};A1));1)-1)
2. En C1, à recopier vers le bas :
=CNUM(STXT(A1;AGREGAT(15;6;DANSLIGNE(CHERCHE({1;2;3;4;5;6;7;8;9;0};A1));1);9^9))
Tri personnalisé sur la colonne B et la colonne C.
Daniel
Bonjour,
Salutations danielc0 bien vu l'histoire du nombre de lettres à extraire.
Ça ne fonctionne pas sur mon Excel 2013 (pas de fonction DANSLIGNE()) ; donc à fortiori pas non plus sur le 2007 de jmst1 qui n'a pas non plus la fonction AGREGAT()
Comme j'ai gardé quelques exemples ; je propose d'extraire d'abord les nombres avec cette formule : en C1 à recopier vers le bas
=CNUM(STXT(A1;TROUVE("!";SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;1;"!");2;"!");3;"!");4;"!");5;"!");6;"!");7;"!");8;"!");9;"!");0;"!"));99))
Puis les lettres : en B1 à recopier vers le bas
=STXT(A1;1;NBCAR(A1)-NBCAR(C1))
Faire le tri de l'ensemble en fonction des colonnes B & C
Cordialement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionBonjour à tous,
@PapyLuc :
Quand les données sont sur une seule colonne, comme ici, on peut remplacer DANSLIGNE par TRANSPOSE.
Daniel
OK pour moi ça fonctionne avec TRANSPOSE mais pour l'Excel 2007 par quoi remplacer AGREGAT ?
Cordialement
Oups, c'est vrai. Essaie :
=GAUCHE(A1;MIN(SI(ESTERR(CHERCHE({1;2;3;4;5;6;7;8;9;0};A1));9^9;CHERCHE({1;2;3;4;5;6;7;8;9;0};A1)))-1)
Daniel
OK ça fonctionne sans valider en matricielle, en tout cas sur mon Excel 2013, à confirmer par jmst1.
Les formules qu'on a données ne vont plus aller avec la surprise de jmst1 dans cette réponse où l'alpha numérotation peut être du type "T128P8".
@jmst1 StatutMembre bien vouloir fournir une copie de ton tableau, sans les données confidentielles et en expliquant ce que tu cherches à obtenir avant le tri.
Cordialement
Re-bonjour PapyLuc51,
Je n'ai pas de tableau actuellement avec cette surprise (sauf un cas:T128P8)
Mais ce que je sais, si la progression continue, elle sera
T128P8, T128P16, T128P24,T128P32 etc. ceci aussi avec F1P8, F1P16, F2P8, F3P8 etc.
Pour l'instant je n'ai que deux lettres F et T et le max que j'ai c'est T140.
Donc dans le tri j'ai T126, T127, T128, T129 etc. et le T128P8 n'est pas à la suite de T128, mais après T139-> T128P8.
Je suppose qu'il vaudras une troisième extraction pour isoler ce P.
P.S les mails fonctionnent
En supposant qu'il y a une seule lettre au début de la chaîne et potentiellement une seule autre lettre dans la chaîne :
Pour la partie gauche, en ligne 1 à recopier vers le bas :
=SIERREUR(GAUCHE(A1;EQUIV(FAUX;STXT(A1;LIGNE(INDIRECT(NBCAR(A1)&":2"));1)<="9";0)+1);GAUCHE(A1;1))
Pour la partie droite, en ligne 1 à recopier vers le bas :
=SIERREUR(CNUM(DROITE(A1;NBCAR(SUBSTITUE(A1;GAUCHE(A1;EQUIV(FAUX;STXT(A1;LIGNE(INDIRECT(NBCAR(A1)&":2"));1)<="9";0)+1);""))));CNUM(STXT(A1;2;9^9)))
Daniel
J'avait un peu plus de temps.
La deuxième formule ce casse le nez avec l'extraction du P8 ou P875
T128P8 T #VALEUR! idem avec
T128P875 T #VALEUR!
J'ai supposé au deux points avant le 2 mais ce n'est pas ça
=SIERREUR(CNUM(DROITE(U155;NBCAR(SUBSTITUE(U155;GAUCHE(U155;EQUIV(FAUX;STXT(U155;LIGNE(INDIRECT(NBCAR(U155)&"2"));1<="9";0)+1);""))));CNUM(STXT(U155;2;9^9)))
***
=SIERREUR(CNUM(DROITE(A1;NBCAR(SUBSTITUE(A1;GAUCHE(A1;EQUIV(FAUX;STXT(A1;LIGNE(INDIRECT(NBCAR(A1)&":2"));1)<="9";0)+1);""))));CNUM(STXT(A1;2;9^9)))
En B1 :
=GAUCHE(A1;MIN(SI(STXT(A1;LIGNE(INDIRECT(NBCAR(A1)&":1"));1)>"9";LIGNE(INDIRECT("1:"&NBCAR(A1))))))
en C1 :
=CNUM(SIERREUR(GAUCHE(SUBSTITUE(A1;B1;"");EQUIV(FAUX;SI(STXT(SUBSTITUE(A1;B1;"");LIGNE(INDIRECT("1:"&NBCAR(SUBSTITUE(A1;B1;""))));1)<="9";LIGNE(INDIRECT("1:"&NBCAR(A1)-NBCAR(B1))));0)-1);SUBSTITUE(A1;B1;"")))
en D1 :
=SIERREUR(GAUCHE(SUBSTITUE(A1;B1&C1;"");EQUIV(FAUX;SI(STXT(SUBSTITUE(A1;B1&C1;"");LIGNE(INDIRECT("1:"&NBCAR(SUBSTITUE(A1;B1&C1;""))));1)<="9";LIGNE(INDIRECT("1:"&NBCAR(SUBSTITUE(A1;B1&C1;"")))));0));"")
En E1 :
=SIERREUR(CNUM(SUBSTITUE(A1;B1&C1&D1;""));"")
A recopier vers le bas. Trier sur B, C, D et E
Daniel
Merci Danielc0, PapyLuc51 et Le Pingou
1) Formules matricielles (le piège)
2) Accepte 875
3) Peu importe le Nb de chiffres [T1285P5668]
4) N'accepte pas plusieurs lettres [TF1285AC1000] (ce qui n'est pas mon cas actuellement)
5) Ne différencie pas minuscule ou majuscule (un bien ou un mal ?)
Merci à danielc0
Bonne journée à vous tous.