Inscription / Connexion Nouveau Sujet
Niveau calculatrices
Partager :

formule

Posté par
popo64
27-09-06 à 09:29

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

Posté par
Nicolas_75 Correcteur
re : formule 27-09-06 à 10:37

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

Posté par
popo64
Formule 27-09-06 à 17:02

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

Posté par
Nicolas_75 Correcteur
re : formule 27-09-06 à 17:07

Menu Données / Trier permet facilement de faire cela, non ?

Posté par
popo64
re : formule 28-09-06 à 07:15

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

Posté par
Nicolas_75 Correcteur
re : formule 28-09-06 à 07:45

J'ai bien compris. Sur mon Excel, Menu Données / Trier permet de gérer cette combinaison.

Posté par
J-P Posteur d'énigmes
re : formule 28-09-06 à 08:45

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.

Posté par
borneo
re : formule 28-09-06 à 09:30

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é.

Posté par
popo64
re : formule 28-09-06 à 10:58

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

Posté par
Nicolas_75 Correcteur
re : formule 28-09-06 à 11:35

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)

Posté par
J-P Posteur d'énigmes
re : formule 28-09-06 à 12:02

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 ?

Posté par
popo64
re : formule 28-09-06 à 14:38

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

Posté par
gloubi
re : formule 28-09-06 à 15:12

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
-

Posté par
J-P Posteur d'énigmes
re : formule 28-09-06 à 15:45

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

Posté par
popo64
re : formule 28-09-06 à 19:16

salut a tous

merci pour la macro

et pour le devoument que avez pour aider les autres

merci encor



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !