voila cela est pour un programme.
colonne a b c total
2 10 9 19
1 11 10 21
2 12 7 19
4 8 0 8
colonne a = classement final
Colonne b = point
Colonne C = point
colonne total = b+C
En cas de calssement identique (2) prendre en compte le nombre le plus important dans la colonne C 9 point et celui ci passe 2eme et celui qui est 2 avec 7 point est 3émé
merci pour une aide et passer une bonne journée
Bonjour ?
Que faut-il faire ?
Faire le programme ?
Dans quel langage ? C ? Java ? Scheme ? Pascal ? etc...
Quel est le format des structures de données ?
etc...
Nicolas
Salut NICO_75
non juste trouver la formule pour office excel 97.
Ceci est pour un tableau de classement par rapport à certaines données;
pas de c++
merci
Re Nico
Non La colonne a correspond au classement et si il y a deux deuxieme, celui qui a le nombre le plus important de la colonne c devient obligatoirement le deuxieme et l'autre troisieme
merci
Le but est-il de trier les lignes en les changeant de place suivant les critères donnés ou bien de laisser les lignes en place et d'indiquer le rang correct dans la colonne a ?
C'est fondamentalement différent comme approche.
Bonjour, si on veut juste trier les données, il suffit de faire deux tris successifs.
D'abord selon c, puis selon a.
Sinon, excel n'est pas l'outil adapté.
merci pour vos reponses.
Je pense que je m'exprime mal.
le resultat doit se modifier automatiquement dans la colonne A par rapport au resultat de la colonne TOTAL .
Le chiffre le plus grand est donc premier dans la colonne A
Si le total est identique alors intervient la colonne C .
Le chiffre superieur de la colonne C est premier et la colonne A
merci pour votre aide
Je dois aussi mal m'exprimer.
Dans quel contexte travailles-tu ?
J'ai rentré ton tableau dans Excel.
J'ai utilisé Menu Données / Trier, et il a immédiatement réordonné le tableau selon la méthode que tu indiques (A et si nécessaire C)
Comme suggéré dans ma réponse précédente et au lu du message de 28/09/2006 à 10:58, j'ai bien l'impression qu'il ne faut pas changer les lignes de place, ce qui va arriver dans le tri proposé par Nicolas.
Il faut, je pense, laisser les lignes en place et s'arranger pour que les nombres écrit dans la colonne 1 reflètent la place.
L'exercice terminé devrait donner:
a b c total
2 10 9 19
1 11 10 21
3 12 7 19
4 8 0 8
Et si par exemple on modifie les cotes de la dernière ligne comme suit:
L'exercice terminé devrait donner:
a b c total
3 10 9 19
2 11 10 21
4 12 7 19
1 11 11 22
Mais les lignes ne doivent pas changer de place.
-----
Est-ce bien cela que popo 64 désire ?
Salut J-P
Oui ton ennonce est correct c'est la colonne A qui change par rapport à la colonne TOTAL si nombre de point identique a la colonne TOTAl alors le resultat est par rapport a la colonne C
merci JP et pour tous les autres encore merci
Salut, popo64,
Je suppose que dans la colonne "a" tu as des formules qui prennent en compte les valeurs de la colonne "total".
Si c'est le cas, une astuce: tu ajoutes une colonne "e" (masquée) avec, non pas b+c, mais b+1.00001*c. Dans ta colonne "a" tu n'as plus qu'à prendre en compte la colonne "e" au lieu de "total".
biddouille, bidouille...
Si j'ai bien compris ton pb.
A+,
gloubi
-
Oui gloubi, mais si on se contente de lancer un tri à partir de là, de nouveau l'ordre des lignes sera modifié.
Si on veut conserver l'ordre des lignes, on peut facilement s'en tirer en écrivant une petite macro.
-----
Par exemple:
Les cotes étant inscrites dans les cellules de B3 à C6
La colonne D faisant les totaux des colonnes B et C.
On écrit la Macro suivante:
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 28/09/2006 par J-P
'
' Touche de raccourci du clavier: Ctrl+Maj+A
'
Range("B3: D6").Select
Selection.Copy
Range("G3").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("F3").Select
ActiveCell.FormulaR1C1 = "1"
Range("F3").Select
Selection.AutoFill Destination:=Range("F3:F6"), Type:=xlFillDefault
Range("F3:F6").Select
Range("F4").Select
ActiveCell.FormulaR1C1 = "2"
Range("F3:F4").Select
Selection.AutoFill Destination:=Range("F3:F6"), Type:=xlFillDefault
Range("F3:F6").Select
Application.Left = 38.5
Application.Top = 134.5
ActiveWindow.ScrollColumn = 2
Range("J3").Select
ActiveCell.FormulaR1C1 = "=RC[-1]+RC[-2]/100"
Range("J3").Select
Selection.AutoFill Destination:=Range("J3:J6"), Type:=xlFillDefault
Range("J3:J6").Select
Range("F3:J6").Select
Range("J3").Activate
Selection.Sort Key1:=Range("J3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("F8").Select
Application.Width = 717
Application.Height = 394.5
ActiveWindow.ScrollColumn = 1
Range("G3:J6").Select
Selection.ClearContents
Range("G6").Select
ActiveCell.FormulaR1C1 = "1"
Range("G5").Select
ActiveCell.FormulaR1C1 = "2"
Range("G5:G6").Select
Selection.AutoFill Destination:=Range("G3:G6"), Type:=xlFillDefault
Range("G3:G6").Select
Range("F3:G6").Select
Selection.Sort Key1:=Range("F3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("G3:G6").Select
Selection.Copy
Range("A3").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("F3:G6").Select
Selection.ClearContents
Range("A9").Select
End Sub
-----
Ici, on appelle la Macro par CTRL + shift + A
Et la colonne 1 se remplit avec ce qui est attendu.
Remarque:
Au lieu de devoir appeler la macro manuellement, on peut l'appeler de manière automatique à chaque modification des données.
On peut bien-entendu écrire cette macro d'une autre façon.
On peut tenir compte du nombre de lignes qui pourrait varier ... mais cela demande un peu de boulot.
-----
Ce n'est pas bien difficile mais demande quand même une certaine connaissance de Excel et de l'écriture des macros.
(On peut s'aider par le machin qui génère les macros automatiquement ... enfin presque).
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :