Tri sur colonne avec cellule vide

Fermé
Lecorsaire35 Messages postés 3 Date d'inscription jeudi 18 septembre 2014 Statut Membre Dernière intervention 19 septembre 2014 - 18 sept. 2014 à 00:26
Raymond PENTIER Messages postés 58395 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 - 20 sept. 2014 à 02:59
J'ai recherché dans ce forum si ma question avait déjà été posée mais sans sucés.

Les colonnes de mon tableau se présentent ainsi:
1) colonne: Nom des clients ayant reçues des factures
2) colonne: montant des factures individuelles par clients

Nota un même client peut apparaître plusieurs fois (plusieurs factures) (1,2,3 ...5)

3) Colonne: total des factures par client de même nom (cette colonne fait la somme des lignes de la même personne (cette colonne a donc des cellules vides pour que la somme de cette colonne corresponde au total de la colonne 2.)

Ma Question: je souhaite faire un tri sur la colonne 3 (total des factures du même client) afin de traiter celle ci par ordre d'importance. Mon problème c'est que le tri se faisant sur les cellules vides de cette colonne 3 mes colonnes 1 et 2 sont décalées. je souhaite pouvoir faire ce tri en conservant mes mêmes clients à la suite.

1 2 3
martin 20 140
martin 50
martin 70
dupont 55 65
dupont 10
André 80 80
marcel 100 150
marcel 50

Merci pour vos réponses

4 réponses

via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
Modifié par via55 le 18/09/2014 à 00:52
Bonsoir

Une possibilité avec un bricolage maison :
En suposant les noms en A les montants en B et les sommes en C et commençant en ligne 3, en D3 mettre la formule suivante :
=SOMME.SI(A:A;A3;B:B)+(CODE(GAUCHE(A3;1))*1000000+CODE(STXT(A3;2;1))*1000+CODE(STXT(A3;3;1)))/1000000000
qui compose un nombre formé pour sa partie entière de la somme correspondant à une personne et en partie décimale des codes des 3 premières lettres du nom mis bout à bout

Faire ensuite le tri sur cette colonne D quipeut être masquée si nécessaire ça n'empêche pas le tri

Cdlmnt


"L'imagination est plus importante que le savoir." A. Einstein
1
Lecorsaire35 Messages postés 3 Date d'inscription jeudi 18 septembre 2014 Statut Membre Dernière intervention 19 septembre 2014
19 sept. 2014 à 15:58
Merci Via55 de s'être penché sur le problème. J'ai pas tout compris dans la formule mais je l'ai copiée collée en D3 mais le résultat est surprenant !
Le tri ne me permettra pas d'obtenir ce que je souhaitais Mais je vais réessayer à tête reposée.

Merci d'avoir recherché une solution.
Codialement
0
via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
19 sept. 2014 à 16:17
Bonjour

La formule peut se décomposer ainsi :
=SOMME.SI(A:A;A3;B:B) fait la somme des montants pour un nom ce qui donne par exemple 150 pour MARTIN 150 apparaitra en colonne D à chaque ligne de MARTIN mais ce n'est pas suffisant pour faire le tri par ordre décroissant car 2 personnes différentes peuvent avoir le même montant d'où la 2ème partie :
+(CODE(GAUCHE(A3;1))*1000000 qui renvoie le code ASCII de la 1ere lettre à gauche du nom soit pour martin m donne le code 109 qu'on mutiplie par 1 M soit 109000000
+CODE(STXT(A3;2;1)) qui renvoie le code ASCII du 2eme caractère soit ici a renvoie 97 qu'on multiplie par 1000 donc 97000
+CODE(STXT(A3;3;1) qui renvoie le code ASCII du 3eme caractère soit ici r renvoie 114
l'addition des 3 donne le nombre 109097114 caractérisant martin qu'on divise par 1 Ma pour obtenir 0,109097114 qu'on additionne au montant 150
toutes les lignes martin sont donc repérées par 150,109097114
Un mamouni qui aurait lui aussi un total de 150 sera repéré par 150,109097109

La colonne D ne comportant que des nombres elle peut être triée en ordre décroissant et les lignes concernant une même nom restent groupées

Cdlmnt
0
Lecorsaire35 Messages postés 3 Date d'inscription jeudi 18 septembre 2014 Statut Membre Dernière intervention 19 septembre 2014
19 sept. 2014 à 19:07
Merci Via 55 de se complément d'infos je vais tester cela calmement ce week-end.

Ma collègue vient de me poser une nouvelle colle:
Pour ne pas avoir de tableau avec des colonnes à rallonges pour faciliter la mise en page et l'impression, elle à collé sur plusieurs colonnes une série de montants de factures à traiter:

colonne A Colonne B Colonne C ........
123 15 45
46 85 22
85 78 185

Existe t-il une façon simple de trier par ordre croissant ou décroissant l'ensemble des cellules en les sélectionnant toutes ?
La fonction habituelle d'Excel le faisant que par colonne.

Désolé de vous mettre encore à contribution.
0
via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
19 sept. 2014 à 19:14
Re

Il faut faire un choix soit un tableau facile à trier soit un tableau privilégiant la mise en page !
De façon simple je ne vois pas, il faut soit par formules créer un second tableau (sur une autre feuille) ordonné avec GRANDE.VALEUR comme le suggère si bien Raymond que je salue au passage, soit le faire par une macro en VBA

Cdlmnt
0
Raymond PENTIER Messages postés 58395 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 095
Modifié par Raymond PENTIER le 19/09/2014 à 18:35
Lecorsaire35, bonjour, et bienvenue parmi les membres de CCM.

D'une manière générale, on ne fait des tris que sur des données.
Jamais sur des formules.

Comme via55, que je salue, je ne peux te proposer qu'une combinaison de manipulations et de formules.
Si ton tableau est en A2:C9, il faut ajouter un petit tableau en E1:F4 pour totaliser les montants de factures par client (avec la fonction SOMME.SI) et un autre petit tableau en H1:I4 pour ordonner ces montants (avec la fonction GRANDE.VALEUR en I:I puis la fonction RECHERCHEV en H:H) : https://www.cjoint.com/?DItsMI4H8Xk

Cordialement.

C'est bien, la retraite ! Surtout aux Antilles ... :-)
Raymond (INSA, AFPA, CF/R)
0
Raymond PENTIER Messages postés 58395 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 095
20 sept. 2014 à 02:59
Si j'ai bien compris la question du post #5, il suffit d'insérer en première position une colonne avec en A2 la formule =SOMME(B2:ZZ2) à recopier vers le bas.
Le tri se fera par rapport à la colonne A.
0