Problème de tri dans Excel

Postez ici vos questions et(ou) vos solutions ayant pour thème l'informatique.

Modérateurs: NeoMaHo, Sebastien, Bourrin007

Problème de tri dans Excel

Messagede Sebastien le Jeu Fév 01, 2007 6:19 pm

Question posée par Email :

[...]je me permet de vous écrire afin de savoir s'il est possible de solutionner mon problème.
En fait, il s'agit d'une base de données dont la première colonne ne respecte pas l'ordre croissant des informations, d'autant plus que j'ai d'autres infos dans ces différentes lignes.
Est il possible de créer une formule pour que l'ensemble de mes PM suivent un ordre croissant ??

Je vous serais très reconnaissante si vous prenez la peine de me répondre,
Dernière édition par Sebastien le Jeu Fév 01, 2007 7:12 pm, édité 2 fois.
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 2774
Inscription: Lun Fév 14, 2005 6:17 pm
Localisation: LILLE

Messagede Sebastien le Jeu Fév 01, 2007 6:50 pm

Bonjour.

Pour résumer, votre problème vient du fait que vous essayez de trier par ordre croissant une colonne contenant du texte. Un tri croissant sur une colonne de texte revient à faire un tri par ordre alphabétique. Pour reprendre votre exemple, une colonne contenant la donnée PM1028 sera placera avant une colonne contenant PM95 car le 1 se place avant le 9 dans l'alphabet.
Pour pouvoir trier correctement votre colonne, il faut que tous les éléments de la colonne aient le même nombre de caractères. comme ça, le tri par ordre alphabétique sera correct.

Il va falloir modifier les données.

Reprenons votre exemple (en ne prenant que la colonne qui nous intéresse). Je vais détailler pas à pas pour bien expliquer la procédure.

Aperçu du tableau :
Image

:arrow: Insérez une colonne à droite de la colonne contenant les informations. Cette colonne nous permettra d'extraire les deux lettres PM.
La formule est : =GAUCHE(A1;2)
Cette formule extrait les deux premier caractère de gauche de la cellule A1.
Nous avons donc PM dans chaque cellule.

:arrow: Insérez une nouvelle colonne à droite de celle que nous venons de créer. Cette colonne contiendra le reste de la cellule A1. La formule est :
=CNUM(STXT(A1;3;5))
Cette formule permet d'extraire tous les caractères de la cellule A1 en commençant au caractère numéro 3 et en prenant les 5 suivants.
Vous aurez donc des valeurs contenant 2, 3 ou 4 caractères

Exemple : pour PM95, vous aurez 95, pour PM100, vous aurez 100 et pour PM1028, vous aurez 1028 et ainsi de suite.


:arrow: Insérez une colonne à droite de celle que nous venons de créer :
Copiez y la formule suivante :
=SI(NBCAR(C1)=2;CONCATENER("00";C1);SI(NBCAR(C1)=3;CONCATENER("0";C1);C1))
Cette formule applique la règle suivante :
Si la cellule C1 contient 2 caractères, on ajoute 00 devant le texte, si la cellule C1 contient 3 caractères, ont ajoute 0 devant le texte, sinon, on ne fait rien. Comme les données de la colonne C vont de 2 à 4 caractères, cela fonctionne.

Cela va donner :
0095 au lieu de 95
0100 au lieu de 100
1028 restera 1028

:arrow: Enfin, dans une dernière colonne, nous allons fusionner les colonne B et D pour obtenir les données corrigées.
La formule sera =CONCATENER(B1;D1)

Il vous suffit de faire un copier puis un collage valeur de toutes les données de cette colonne pour écraser les formules par leur contenu texte. Après cela, lorsque vous ferez un tri, les données seront correctement placé.

Aperçu avec tri sur la colonne A :
Image

Aperçu avec tri sur les données corrigées :
Image


Quelques remarques : Cette formule ne fonctionne que pour les données commençant par deux caractères et dont le nombre de caractères suivants est compris entre 2 et 4 (Cf. votre demande).

De plus, vérifiez que vos colonnes ne comportent pas d'espace (car l'espace est considéré comme un caractère en texte). Cela causerait un décalage.

Enfin, certaines de vos données se situent sur plusieurs lignes. Cela pourrait poser des problèmes de tris. Par contre pour cela, il faudrait revoir la façon dont vous extrayez les données de votre base. D'une façon générale, pour faire des tri, il faut que les données se situent sur une seule ligne.

Bon courage.
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 2774
Inscription: Lun Fév 14, 2005 6:17 pm
Localisation: LILLE

Messagede Sebastien le Ven Fév 02, 2007 5:50 pm

Saola a écrit:
Re-bonjour,

J'ai essayé d'utiliser vos formules, ms la cellule ou se trouve la formule SI ne me le prend pas, je ne sais pas tp prq il ne veut pas accepter l'ordre d'ajouter 1 ou 2 "0".

La liste PM commence à partir de la ligne 1347, si vous pouviez jeter un coup d'œil, vraiment je vous en serait très reconnaissante, c'est une base de donnée datant de 1968, et j'avoue que je suis dépassée là!

Avec toute ma gratitude, je vous souhaite une agréable journée, et sincères salutations.

Saloa
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 2774
Inscription: Lun Fév 14, 2005 6:17 pm
Localisation: LILLE

Messagede Sebastien le Ven Fév 02, 2007 5:59 pm

Bonjour.

Apparemment, je pense que c'est un problème de format de cellule.
Effectivement, en regardant votre tableau, la formule tapée dans la cellule D1347 est en erreur. Pour appliquer correctement la formule, il y a une astuce assez simple à utiliser.

Pour cela, il faut :

1 : Sélectionner la cellule en erreur
Aperçu :
Image

2 : Revalider la formule. Pour revalider la formule, il suffit de placer le curseur dans la barre de formule puis de cliquer sur le bouton valider.
Aperçu :
Image

3 : La formule s'applique correctement.
Aperçu :
Image

Il suffit de recopier la formule vers le bas pour appliquer la formule sur les autres lignes.
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 2774
Inscription: Lun Fév 14, 2005 6:17 pm
Localisation: LILLE


Retourner vers Forum d'entraide informatique

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités