Formule pour additionner les 2 plus grands nombres

Bonjour,

J'organise un tournoi de golf avec des équipes de 4 joueurs. J'ai besoin, lorsque je rentre les scores des 4 joueurs sur chaque trou (il y en 18), d'additionner les 2 meilleurs scores.

Je cherche une formule qui me permet de trouver et d'additionner les 2 plus grands nombres dans une série de 4 nombres.

Exemple:

5-1-3-2 donnera 5+3 donc 8 (c'est le cas simple)

5-1-5-2 donnera 5+5 donc 10

5-5-5-1 donnera 5+5 donc 10

5-5-5-5 donnera 5+5 donc 10

J'ai déjà fait une feuille de ce genre en utilisant des macros et des boutons mais je ne trouve pas cela très pratique car le résultat ne s'inscrit que lorsqu'on appuie sur le bouton "calculer". Je préfèrerais une solution automatique.

Merci

Bonsoir

Si 5, 1, 3, 2 sont en A1,B1,C1,D1

=MAX(A1:D1)+GRANDE.VALEUR(A1:D1;2)

Si ils sont dans la même cellule sous la forme 5-2-3-1, il faut procéder autrement.

A toi de nous dire.

Cordialement

Merci Amadéus,

Les scores sont en E8, E12,E16,E20 puis en F8,F12 etc donc dans des cellules discontinues.

J'ai créé des colonnes cachées ou j'ai recopié les données (=E8; =E12 etc) pour avoir une sélection continue(Z17,Z18,Z19,Z20) et ça marche très bien dans tous les cas.

Peut-on faire la formule avec les nombres dans des cellules non adjacentes?

J'ai compris la partie Max de la formule mais peux-tu m'expliquer la 2ème partie (le 2 de grande.valeur)?

De toute façon ma soirée est déjà ensoleillée car j'ai au moins une solution!

Amicalement

Re bonsoir

GRANDE.VALEUR(Champ;k) indique la valeur choisie en fonction du paramètre k.

=GRANDE.VALEUR(A1:Z1;1) renvoie la plus grande valeur du champ A1;Z1

(ce qui revient à =MAX(A1:Z1) qui renvoie aussi la plus grande valeur du champ A1;Z1

=GRANDE.VALEUR(A1:Z1;2) renvoie la seconde plus grande valeur du champ A1:Z1, etc..avec 3, 4, etc

=MAX(A1:Z1)+GRANDE.VALEUR(A1:Z1;2) renvoie donc la somme des 2 plus grandes valeurs du champ.

Pour des cellules non adjacentes, Idem.

Edit Amadéus: j'ai effacé mon ânerie,

Cordialement

Salut le forum

Pourquoi ne pas convertir ta macro VBA en Fonction ?

Donne le code que tu utlise sur ton bouton

Mytå

Bonjour,

Decortiquer ta fonction au petit déjeuner n'est pas de tout repos, Amadéus, mais j'y suis arrivée. Je dois dire que ton explication est excellente.

Je vais voir quelle solution je vais choisir car ma compétition est un peu compliquée et je change, en fait, de formule à chaque trou!

1er trou: 2 meilleurs scores

2ème trou: 4 scores divisés par 4 et multipliés par 3

trou 3: Le meilleur et le moins bon score additionnés

trou4: les 2 moins bons scores additionnés

etc etc jusu'au 9 et de 10 à 18 je reprends les m^mes dans un ordre différents.

Rien que je ne puisse résoudre maintenant grâce l'aide que tu m'as fournie. Ma compétition (j'accueille 120 dames de tout le pays pendant 3 jours) aura lieu dans un mois.La première compétition (celle dont je parle) est destinée à amuser tout le monde et à briser la glace avant que les choses sérieuses ne commencent.

Myta, je ne voulais pas passer par le bouton et les macros car , je me rappelle plus pourquoi si ce n'est que je n'arrivais pas à passer les paramètres, je devais avoir une macro par équipe du genre:

bouton1-> macro1

macro 1 : call score(numeroligne, numerocolonne) en spécifiant exactement les deux dans chaque macro

J'ai fait ça il y a 4 ans, il fallait donc que je me replonge dedans de toutes façons mais ta solution m'intéresserait quand même.

En tout cas merci à tous.

Amicalement

Bonjour, salut Amadéus et Myta,

Je ne comprends pas la remarque d'Amadéus :

Pour des cellules non adjacentes, GRANDE.VALEUR ne fonctionne pas.

La formule : =GRANDE.VALEUR((E8;E12;E16;E20);2)

fonctionne très bien chez moi.

dré

Bonjour, salut dré

Merci d'être passé.

vers 1h du mat, je devais être un peu embrumé. J'irai au lit plus tôt..

Donc, pour notre ami, à qui je présente mes excuses pour lui avoir fait peur, tout se simplifie au mieux

=MAX(A2;C2;E2;G2)+GRANDE.VALEUR((A2;C2;E2;G2);2)

Cordialement

Bonjour à tous

J'ai fini d'affecter une fonction pour le calcul des scores de chaque trou grâce à Amadéus et à Dré.

Le post de Myta m'a permis de résoudre un autre problème. Sur un trou, le score de deux joueurs tirés au hasard dans l'équipe de 4 va être retenu. Ces deux joueurs ne seront connus qu'à leur arrivée. J'ai pensé que celui qui saisirait les scores pouvait colorer la case du score à compter en jaune. Il me fallait donc une formule qui repère les cases jaunes et choisisse le nombre de points correspondants.(on appelle cela les points stableford qui se calculent en fonction du handicap du joueur).

J'ai donc écrit la fonction suivante:

Function mystery_scores(cellule As Range)

rang = cellule.Row

col = cellule.Column

mystery_scores = (Cells((rang - 1), col).Value) * -(Cells((rang - 3), col).Interior.ColorIndex = 6) + _

(Cells((rang - 5), col).Value) * -(Cells((rang - 7), col).Interior.ColorIndex = 6) + _

(Cells((rang - 9), col).Value) * -(Cells((rang - 11), col).Interior.ColorIndex = 6) + _

(Cells((rang - 13), col).Value) * -(Cells((rang - 15), col).Interior.ColorIndex = 6)

End Function

Les -5 -7 etc donnent la position relative des cases à considérer par rapport à la case total où la formule est écrite.

Dans la case total du trou j'ai fait = mystery_score(J10)

J10 designant la case total où j'écris la formule.

Voilà

Ne vous génez pas pour améliorer la fonction! Pour moi le principal est que cela marche, ce qui est le cas.

Merci à tous

Re-moi- Re-Bonjour

Tout n'est pas rose dans le monde d'Excel!

J'ai quand même un problème:

Si je fais une erreur de joueur pendant la saisie de la couleur jaune et que je colorie une autre case, cela ne recalcule pas même quand j'essaie de recalculer manuellement. Il faut que je rentre dans la case où il y a la formule et que j'appuie sur entrée pour que cela m'affiche le résultat correct.

J'ai essayé une autre fonction qui se base qur les 4 cases concernées

Function MYSTERY2(cel1 As Range, cel2 As Range, cel3 As Range, cel4 As Range)

MYSTERY2 = (Cells(cel1.Row + 2, cel1.Column).Value) * -(cel1.Interior.ColorIndex = 6) + _

(Cells(cel2.Row + 2, cel1.Column).Value) * -(cel2.Interior.ColorIndex = 6) + _

(Cells(cel3.Row + 2, cel1.Column).Value) * -(cel3.Interior.ColorIndex = 6) + _

(Cells(cel4.Row + 2, cel1.Column).Value) * -(cel4.Interior.ColorIndex = 6)

End Function

Pareil.

Dans la mesure où il y aura 120 joueurs je préfèrerais que la gestion de la correction se fasse automatiquement!

Amicalement

Rechercher des sujets similaires à "formule additionner grands nombres"