Somme des X des Y plus grands

Hello a tous,

Voici mon problème :

J'ai un tableau de données qui se présente comme ça :

- - - - X Y

Blabla 1 12

Blabla 9 1

Blabla 8 4

Blabla 6 20

... ... ...

Je souhaiterais une formule qui me donne la somme des X correspondant aux 20 plus grandes valeurs de Y.

J'ai essayé de bidouiller quelque chose avec GRANDE.VALEUR, INDEX, DECALER et tutti quenti mais sans succès.

Avez vous une solution pour moi ?!

Ça serait top !

Merci d'avance,

Jay

Salut Jay,

Tu pourrais par exemple trier ta colonne de Y par ordre décroissant et sommer sur tes X sur les 20 premières lignes?

Cdt,

jslpfasc2

Bonjour tout le monde,

Dans le fichier ci-joint, une solution par macro. En cliquant sur le bouton en place, le total en F6 est actualisé en fonction des modifications dans les colonnes A à C.

Pour l'instant il y a des colonnes I à K qui servent plus à contrôler le résultat qu'à autre chose. Par la suite - si ce fichier va dans le sens désiré - on pourrait les supprimer.

A te relire.

17jayokim.zip (11.41 Ko)

Hello jslpfasc2 merci pour ta réponse mais le but de cette formule est d'automatiser un tableau de bord avec des données qui sont susceptible d'être mis a jour fréquemment. Ça risque de ne pas être très pratique à la longue

Hello Yvouille merci pour ta réponse, je suis un vrai novice en VBA/Macro mais en effet ça marche bien ! Cependant n'y aurait il pas un moyen de passer uniquement par des formules a ta connaissance ? En effet j'ai un peu simplifié mon problème pour pouvoir vous l'exposer rapidement mais il y a d'autres paramètres qui rentrent en compte dans dans ma formule et j'ai bien peur que je n'arriverais pas a adapter ta solution en cas de changements futurs :

Pour essayer de faire court j'ai un fichier de donnée que je mets a jour avec

ANNEE MOIS VENDEUR VENTES COMM CA.

Ma formule concerne la somme des ventes généré par les 20 plus grands apporteurs d'affaires

Sur mon tableau de bord j'ai deux cases qui font office de filtre ou je rentre l'année et le mois que je veux analyser (avec comme source le fichier de donnée)

J'arrive à avoir la somme du CA de N-1

=SOMME(GRANDE.VALEUR(SI((F4-1='DATA'!A:A)*('TABLEAU DE BORD'!F5='DATA AFFILIES'!B:B);'DATA AFFILIES'!H:H);LIGNE(1:20)))

Ce que je voudrais c'est la somme des ventes associé à cette même matrice

Merci encore,

Jay

Re,

Si ton fichier est encore plus compliqué que ce que tu as tout d'abord prétendu, il est très probable qu'une macro serait une meilleure solution, peut-être même la seule

Mais bon, je veux bien voir s'il existe une solution par formule, sur la base de celle que tu m'as envoyée. Peux-tu alors me fournir un fichier exemple - ça m'évitera de devoir le faire moi - dans lequel tu remplaces éventuellement les données sensibles ? Si ton fichier fait 10'000 lignes mais que 30 lignes représentatives suffisent, effaces-en donc 9'970.

A te relire.

Haha oui je veux bien te croire il faut absolument que je commence à m'y intéresser

En pièce jointe un fichier de mise en situation

16sample.xlsx (254.43 Ko)

Bonjour,

Re Yvouile,

Mais bon, je veux bien voir s'il existe une solution par formule

En attendant la proposition d'Yvouille par VBA, je te propose une alternative sans formule, avec l'utilisation d'un tableau, de TCDs (Top 20) et des segments.

L'actualisation des TCDs est automatique avec l'ajout de données dans le tableau (dynamique).

A toi de voir l'intérêt dans ton environnement de travail avec des données conséquentes.

Cdlt.

20sample.xlsm (273.44 Ko)

Salut jayokim,

Comme Jean-Eric est venu te proposer une autre solution, j’ai laissé tomber ma nouvelle solution que j’avais commencé à créer en attendant ta réponse.

Merci donc de me dire si tu attends encore de l’aide de ma part, du côté des macros.

Cordialement.

Salut je me permet de déposer ma proposition, je ne sais pas par contre si Y aura plusieurs valeurs identiques dans cas ca ne fonctionne pas (excel prends en compte un seul doublon) mais si ca peut aider

=INDEX($C$2:$C$24;EQUIV(GRANDE.VALEUR($D$2:$D$24;1);$D$2:$D$24;0);1)

$C$2:$C$24 correspond au tableau X

$D$2:$D$24 corresponde au tableau Y

edit > le chiffre "1" dans la formule [GRANDE.VALEUR($D$2:$D$24;1)] correspond à la 1ere grande valeur, changer le chiffre pour avoir les suivantes

Merci a tous pour vos réponses !

La solution de Jean Eric me parait la plus adapté à mon problème et ça fonctionne parfaitement.

Un grand merci a tout le monde pour votre temps et ces petites astuces !

Rechercher des sujets similaires à "somme grands"