Classement alphabétique de noms avec une et deux décomale ?
Fermé
Lo.
-
31 janv. 2014 à 15:01
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 - 4 févr. 2014 à 10:57
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 - 4 févr. 2014 à 10:57
A voir également:
- Classement alphabétique de noms avec une et deux décomale ?
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- J'ai deux compte facebook avec la meme adresse mail ✓ - Forum Facebook
- Trouver un numéro de portable avec un nom ✓ - Forum Mobile
- Triez cette liste par ordre alphabétique des villes et par note de la meilleure à la moins bonne. quel mot est formé par les 8 premières lettres de la colonne code ? ✓ - Forum Excel
- Supprimer une conversation messenger pour les deux personnes ✓ - Forum Facebook
9 réponses
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 414
31 janv. 2014 à 15:36
31 janv. 2014 à 15:36
Bonjour
pas grand chose à faire, sinon peut être assez difficilement en VBA
Vos données sont des textes et Excel classe selon le 1° chiffre trouvé derrière le V soit 1 puis ensuite 1()65 puis en suite 2 ect...
crdlmnt
pas grand chose à faire, sinon peut être assez difficilement en VBA
Vos données sont des textes et Excel classe selon le 1° chiffre trouvé derrière le V soit 1 puis ensuite 1()65 puis en suite 2 ect...
crdlmnt
Pas d'autre choix que d'ajouter une colonne reformatée et de trier à partir de cette nouvelle colonne :
A1 = la cellule où se trouve la ref à traiter.
=GAUCHE(A1;8)&TEXTE(STXT(A1;9;NBCAR(A1)-11);"00")&DROITE(A1;3)
A1 = la cellule où se trouve la ref à traiter.
=GAUCHE(A1;8)&TEXTE(STXT(A1;9;NBCAR(A1)-11);"00")&DROITE(A1;3)
Merci de vos réponses.
Mutumbo,
Je suis une brêle en xls, et l'exemple que j'avais donné ne correspondait pas tout à fait à ma nomenclature réel.
Sauf que quand j'essaie de l'adapter, je suis dans les choux.
Autre problème mes noms ne se finissent pas tous de la même façon, je dois proscrire les décalages depuis la droite.
Mes noms sons de ce type :
WAVE_000123_V1_10
WAVE_000123_V1_10_A
WAVE_000123_V1_10_B
Jusqu'au "10", c'est toujours sous cette forme.
Après, il peut y avoir des faces et/ou des annotations en parenthèse.
Donc pas de trie pas la fin de nom.
Je veux bien que tu me développes à quoi corresponds ces formules
histoire de ne pas mourir idiote ;-)
Merci
Mutumbo,
Je suis une brêle en xls, et l'exemple que j'avais donné ne correspondait pas tout à fait à ma nomenclature réel.
Sauf que quand j'essaie de l'adapter, je suis dans les choux.
Autre problème mes noms ne se finissent pas tous de la même façon, je dois proscrire les décalages depuis la droite.
Mes noms sons de ce type :
WAVE_000123_V1_10
WAVE_000123_V1_10_A
WAVE_000123_V1_10_B
Jusqu'au "10", c'est toujours sous cette forme.
Après, il peut y avoir des faces et/ou des annotations en parenthèse.
Donc pas de trie pas la fin de nom.
Je veux bien que tu me développes à quoi corresponds ces formules
histoire de ne pas mourir idiote ;-)
Merci
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 414
Modifié par Vaucluse le 31/01/2014 à 17:31
Modifié par Vaucluse le 31/01/2014 à 17:31
Bonjour
en attendant Mutumbo, je peux déjà vous dire que sa proposition ne fonctionne pas avec ces nouveaux codes.
Et pour vous en dire plus je pense qu'il ne pourra que vous demander avec quoi vous voulez classer, parce que les 15 premiers caractères de vos exemples sont identiques!
Il faudrait, je crois , en dire plus sur vos types de codes... à moins que Mutumbo soit devin, ce qui reste possible
Le mieux serait de copier la iste des codes à traiter dans un fichier vierge et de la déposer sur:
https://www.cjoint.com/
en revenant placer ici le lien donné par le site
a vous lire?
crdlmnt
ps
pour expliquer quand même le but (l'idée est excellente) était de placer un 0 devant les codes à nun chiffre qui suivait V de façon à les reclasser dans l'ordre arithmétique
donc:
prendre les 8 caractéres à gauche
=GAUCHE(A1;8)
extraire les caractères correspondant au 9 chiffre s'il est seul, au 9 et 10° s'il sont deux, et les transformer en nombre à deux chiffres accolés à la première partie
TEXTE(STXT(A1;9;NBCAR(A1)-11);"00") _là je crois qu'il fallait écrire -12, c'est sous réserve_
rajouter le reste
&DROITE(A1;3)
Mais avec vos nouveaux codes, il n'y a plus cette logique
en attendant Mutumbo, je peux déjà vous dire que sa proposition ne fonctionne pas avec ces nouveaux codes.
Et pour vous en dire plus je pense qu'il ne pourra que vous demander avec quoi vous voulez classer, parce que les 15 premiers caractères de vos exemples sont identiques!
Il faudrait, je crois , en dire plus sur vos types de codes... à moins que Mutumbo soit devin, ce qui reste possible
Le mieux serait de copier la iste des codes à traiter dans un fichier vierge et de la déposer sur:
https://www.cjoint.com/
en revenant placer ici le lien donné par le site
a vous lire?
crdlmnt
ps
pour expliquer quand même le but (l'idée est excellente) était de placer un 0 devant les codes à nun chiffre qui suivait V de façon à les reclasser dans l'ordre arithmétique
donc:
prendre les 8 caractéres à gauche
=GAUCHE(A1;8)
extraire les caractères correspondant au 9 chiffre s'il est seul, au 9 et 10° s'il sont deux, et les transformer en nombre à deux chiffres accolés à la première partie
TEXTE(STXT(A1;9;NBCAR(A1)-11);"00") _là je crois qu'il fallait écrire -12, c'est sous réserve_
rajouter le reste
&DROITE(A1;3)
Mais avec vos nouveaux codes, il n'y a plus cette logique
Dans mon deuxième exemple je voulais juste donner la forme, et non une liste
[4 lettres]_[6 chiffres]_VX_X
[4 lettres]_[6 chiffres]_VX_X_A
[4 lettres]_[6 chiffres]_VX_X_B
[4 lettres]_[6 chiffres]_VX_X_(XXXXX)
[4 lettres]_[6 chiffres]_VX_X_(XXXXX)_A
[4 lettres]_[6 chiffres]_VX_X_(XXXXX)_B
[4 lettres]_[6 chiffres]_VX_XX
[4 lettres]_[6 chiffres]_VX_XX_A
[4 lettres]_[6 chiffres]_VX_XX_B
[4 lettres]_[6 chiffres]_VX_XX_(XXXXX)
[4 lettres]_[6 chiffres]_VX_XX_(XXXXX)_A
[4 lettres]_[6 chiffres]_VX_XX_(XXXXX)_B
Et je peux continuer longtemps...
Ce qui est immuable :
[4 lettres]_[6 chiffres]_V
Mon principale point d'achoppement et la coexistence de deux types de décimales dans la forme VX(X)_X(X), simple ou double, qui bloque le classement AZ
[4 lettres]_[6 chiffres]_VX_X
[4 lettres]_[6 chiffres]_VX_X_A
[4 lettres]_[6 chiffres]_VX_X_B
[4 lettres]_[6 chiffres]_VX_X_(XXXXX)
[4 lettres]_[6 chiffres]_VX_X_(XXXXX)_A
[4 lettres]_[6 chiffres]_VX_X_(XXXXX)_B
[4 lettres]_[6 chiffres]_VX_XX
[4 lettres]_[6 chiffres]_VX_XX_A
[4 lettres]_[6 chiffres]_VX_XX_B
[4 lettres]_[6 chiffres]_VX_XX_(XXXXX)
[4 lettres]_[6 chiffres]_VX_XX_(XXXXX)_A
[4 lettres]_[6 chiffres]_VX_XX_(XXXXX)_B
Et je peux continuer longtemps...
Ce qui est immuable :
[4 lettres]_[6 chiffres]_V
Mon principale point d'achoppement et la coexistence de deux types de décimales dans la forme VX(X)_X(X), simple ou double, qui bloque le classement AZ
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 414
Modifié par Vaucluse le 31/01/2014 à 18:34
Modifié par Vaucluse le 31/01/2014 à 18:34
Alors voila un modèle avec quelques explications
là, on classe selon les codes en incluant les chiffres qui suivent _V
s'il faut aller plus loin, revenez, mais, (au lieu de continuer longtemps), avec votre liste de code sur une feuille Excel merci, sinon non ne s'en sortira pas
https://www.cjoint.com/c/DAFsFsEbdCq
crdlmnt
là, on classe selon les codes en incluant les chiffres qui suivent _V
s'il faut aller plus loin, revenez, mais, (au lieu de continuer longtemps), avec votre liste de code sur une feuille Excel merci, sinon non ne s'en sortira pas
https://www.cjoint.com/c/DAFsFsEbdCq
crdlmnt
Raymond PENTIER
Messages postés
58721
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
15 novembre 2024
17 236
31 janv. 2014 à 17:52
31 janv. 2014 à 17:52
Bonjour lo.
Excel n'est pas une discipline artistique, dans laquelle le lecteur peut interpréter à sa guise ce que l'auteur lui présente. C'est une discipline de logique rigoureuse, dans laquelle aucune approximation n'est possible.
Alors donner une liste de données, et dès la première réponse obtenue nous informer que "l'exemple que j'avais donné ne correspondait pas tout à fait à ma nomenclature réel", ce n'est pas sérieux : tu nous fais bosser pour rien !
De même, pour l'intitulé de ta discussion, sache qu'un nom ne peut pas avoir de décimales ; seul un nombre peut en être pourvu ...
Nous attendons que tu fasses ce que Vaucluse t'a demandé : envoyer ton fichier Excel.
Donc à bientôt.
Excel n'est pas une discipline artistique, dans laquelle le lecteur peut interpréter à sa guise ce que l'auteur lui présente. C'est une discipline de logique rigoureuse, dans laquelle aucune approximation n'est possible.
Alors donner une liste de données, et dès la première réponse obtenue nous informer que "l'exemple que j'avais donné ne correspondait pas tout à fait à ma nomenclature réel", ce n'est pas sérieux : tu nous fais bosser pour rien !
De même, pour l'intitulé de ta discussion, sache qu'un nom ne peut pas avoir de décimales ; seul un nombre peut en être pourvu ...
Nous attendons que tu fasses ce que Vaucluse t'a demandé : envoyer ton fichier Excel.
Donc à bientôt.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Au temps pour moi.
Pour des raisons de confidentialité liée à mon entreprise je ne peux pas diffuser sur la toile un fichier Excel "signé" en lecture publique.
Vous le comprendrez peut être...
http://cjoint.com/?DAFsrpARmTJ
Voilà
Pour des raisons de confidentialité liée à mon entreprise je ne peux pas diffuser sur la toile un fichier Excel "signé" en lecture publique.
Vous le comprendrez peut être...
http://cjoint.com/?DAFsrpARmTJ
Voilà
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
858
31 janv. 2014 à 21:54
31 janv. 2014 à 21:54
Bonsoir à tous,
en utilisant l'addin Morefunc de Laurent Longre, et ses fonctions de tri et d'expressions régulières, on peut construire une solution assez concise :
si les données sont en F19:F398, il faut sélectionner une plage de même dimension et entrer la formule matricielle :
On peut optimiser les REGEXP mais je laisse ce travail aux spécialistes.
Le résultat obtenu est un tableau trié qu'il faut copier/coller en données pour virer les formules.
cordialement
en utilisant l'addin Morefunc de Laurent Longre, et ses fonctions de tri et d'expressions régulières, on peut construire une solution assez concise :
si les données sont en F19:F398, il faut sélectionner une plage de même dimension et entrer la formule matricielle :
=TRIV(REGEX.SUBSTITUE(REGEX.SUBSTITUE(F19:F398;"_V(\d)_";"_V0[1]_");"_(\d\D)";"_0[1][2]";1);;1)Il faut valider par CTRL+MAJ+ENTER
On peut optimiser les REGEXP mais je laisse ce travail aux spécialistes.
Le résultat obtenu est un tableau trié qu'il faut copier/coller en données pour virer les formules.
cordialement
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 414
1 févr. 2014 à 08:21
1 févr. 2014 à 08:21
Bonjour
ci joint votre liste avec une proposition de solution de classement,basée sur ma précédente proposition et à vérifier
https://www.cjoint.com/?DBbit32I1ng
crdlmnt
ci joint votre liste avec une proposition de solution de classement,basée sur ma précédente proposition et à vérifier
https://www.cjoint.com/?DBbit32I1ng
crdlmnt
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
858
1 févr. 2014 à 09:39
1 févr. 2014 à 09:39
Bonjour,
en regardant le travail de Vaucluse, je me rend compte que la formule que j'ai indiquée retourne les données normalisées (avec les zéros ajoutés quand il faut) dans l'ordre croissant.
pour obtenir les données d'origine triées dans l'ordre des données normalisées, il faut utiliser :
cdlt
en regardant le travail de Vaucluse, je me rend compte que la formule que j'ai indiquée retourne les données normalisées (avec les zéros ajoutés quand il faut) dans l'ordre croissant.
pour obtenir les données d'origine triées dans l'ordre des données normalisées, il faut utiliser :
=INDEX($A$5:$A$384,TRIV.IDX(REGEX.SUBSTITUE(REGEX.SUBSTITUE($A$5:$A$384,"_V(\d)_","_V0[1]_"),"_(\d\D)","_0[1][2]",1),1),1)avec le même type de validation puisqu'on est toujours en matriciel.
cdlt