Excel 2007 tri alpha numérique

jmst1 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   -  
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

A voir également:

11 réponses

Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 

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


0
PapyLuc51 Messages postés 4519 Date d'inscription   Statut Membre Dernière intervention   1 486
 

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

0
jmst1 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 

Bonjour, PapyLuc51 et Le Pingou

Super idée super formule, Bravo

Ne pas oublier de trié avec toute les colonnes 

Une surprise, dans le tri il y a T128P8

et il risque dans avoir plusieurs je ne sais pas encore.

Merci beaucoup en attendant 

curieux je n'ai pas reçus d'emails pour vos réponses 

0
danielc0 Messages postés 1857 Date d'inscription   Statut Membre Dernière intervention   229
 

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


0
PapyLuc51 Messages postés 4519 Date d'inscription   Statut Membre Dernière intervention   1 486
 

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

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
danielc0 Messages postés 1857 Date d'inscription   Statut Membre Dernière intervention   229
 

Bonjour à tous,

@PapyLuc :

Quand les données sont sur une seule colonne, comme ici, on peut remplacer DANSLIGNE par TRANSPOSE.

Daniel


0
PapyLuc51 Messages postés 4519 Date d'inscription   Statut Membre Dernière intervention   1 486
 

OK pour moi ça fonctionne avec TRANSPOSE mais pour l'Excel 2007 par quoi remplacer AGREGAT ?

Cordialement

0
danielc0 Messages postés 1857 Date d'inscription   Statut Membre Dernière intervention   229
 

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


0
danielc0 Messages postés 1857 Date d'inscription   Statut Membre Dernière intervention   229
 

PS. Il est possible qu'il faille valider la formule matriciellement.

Daniel

0
PapyLuc51 Messages postés 4519 Date d'inscription   Statut Membre Dernière intervention   1 486
 

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

0
jmst1 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 

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 

0
danielc0 Messages postés 1857 Date d'inscription   Statut Membre Dernière intervention   229
 

Bonjour,

Quelle est ta version d'Excel ?

Daniel


0
jmst1 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 

Excel 2007

0
danielc0 Messages postés 1857 Date d'inscription   Statut Membre Dernière intervention   229
 

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


0
jmst1 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 

Merci Danielc0

Je n'ai pas fait l'essai faute de temps(je dois partir) mais apparemment la progression est fausse 

Le T128P875 doit être après le T127, T128, T128P8, T128P16 etc..  et non pas au milieu du F12 et F13

0
jmst1 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   > jmst1 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 

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)))

0
danielc0 Messages postés 1857 Date d'inscription   Statut Membre Dernière intervention   229 > jmst1 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 

Pas d'accord :

Daniel

0
danielc0 Messages postés 1857 Date d'inscription   Statut Membre Dernière intervention   229
 

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


0
jmst1 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 

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.

0
jmst1 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   > jmst1 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 

Ne pas oublié, dans le tri, de sélectionner toutes les colonnes en plus de trier sur B, C, D et E

0