Additionner des Grandes valeurs avec plusieurs critères

2

Bonjour,

J'ai un soucis que je n'arrive pas à résoudre malgré toutes mes recherches sur internet et là je sèche.

J'essaye d'additionner à partir d'une plage de donnée plusieurs valeurs max de cette plage mais en prenant en compte aussi plusieurs critères discriminants.

J'arrive jusqu'à présent à additionner les valeurs max suivant la formule:

=SOMMEPROD(GRANDE.VALEUR(plg;LIGNE(1:nombre max de valeurs max)))

Le problème vient que:

-cette formule ne permet pas de mettre mes critères discriminants dans ma somme

- je dois faire cela plusieurs fois et mon nombre de valeurs max à prendre en compte varie donc.

Il me faudrait pouvoir utiliser une formule alliant SOMME.SI.ENS, GRANDE.VALEUR et pouvoir déterminer depuis une autre case le nombre X de valeurs max à prendre en compte.

Je sais pas si cela existe.

Quelqu'un a t il une solution?

Le document qui résume mon problème est téléchargeable sur le lien : http://www.cjoint.com/c/GJfn5MDm4sJ

Beaucoup plus simple que mon tableur sur lequel je travaille.


En vous remerciant par avance.





    Posté le 5 octobre 2017, 16:00
    par Guill
    Répondre
    0

    Bonjour,

    Pas certain d'avoir bien compris ta demande que j'ai interprété de la manière suivante :

    Faire la somme des n plus grandes valeurs d'une série de données pour autant que leurs critères correspondent à une valeur donnée.

    n doit être paramétrable

    Si cela correspond, je te propose la solution suivante :

    http://www.cjoint.com/c/GJgiAum6YiG

    Il y a quelques commentaires dans le classeur

    Si besoin d'aide pour la compréhension, n'hésites pas à demander

    De même, si tu veux que je calibre la formule sur ton projet, envoies moi ton fichier (si confidentiel: enlèves les éléments confidentiels et remplacent les par des exemples bidons).

    A+

    Chris

    CHRIS Posté le 6 octobre 2017, 10:34
    par CHRIS
    1

    Bonjour Guill, CHRIS,

    À CHRIS, je cherchais une solution au problème, jusqu'à ce que je vois la tienne qui est excellente.

    Mais il manque le critère de la colonne "B", donc avec ta formule et ce critère en "F27" cela donnerait.

    =SOMMEPROD(($D$12:$D$24)*(($D$12:$D$24)*($B$12:$B$24=B27)*($C$12:$C$24=C27)>=GRANDE.VALEUR(($D$12:$D$24)*($B$12:$B$24=B27)*($C$12:$C$24=C27);D27)))

    Puis tirer vers le bas autant que nécessaire.

    Cordialement.

    mdo100 Posté le 6 octobre 2017, 12:37
    par mdo100
    1

    Bonjour à tous les deux

    Bien vu, je n'avais pas saisi qu'il fallait remplir le tableau du bas, et c'est exactement ce qu'il faut faire.

    A la prochaine

    Chris

    CHRIS Posté le 6 octobre 2017, 18:08
    par CHRIS
    0

    Bonsoir CHRIS,

    Merci pour le compliment, mais si j'ai su adapter ta formule, je n'arrive pas a la comprendre entièrement.

    Surtout la première partie =SOMMEPROD(($D$12:$D$24)*(($D$12:$D$24)...

    Peux-tu s'il te plait m'expliquer cette partie de la formule ?

    Merci d'avance.

    Cordialement.

    mdo100 Posté le 6 octobre 2017, 21:58
    par mdo100
    2

    Bonsoir mdo 100 et Guill

    Voici à nouveau le fichier avec un petit mémo explicatif :

    http://www.cjoint.com/c/GJhxUu7wZrG

    J'espère avoir été clair.

    J'ai aussi mis la solution que Guill avait trouvée (en employant LIGNE(n:n1).

    Je l'ai adaptée pour qu'elle marche mais je ne suis pas parvenu à la rendre paramétrable pour le nombre de grandes valeurs qui, dans l'application, est variable.  La fonction LIGNE() n'a pas l'air d'accepter d'être volatile.  J'ai essayé avec ADRESSE et INDIRECT mais Excel refuse obstinément.  C'est dommage car la solution était plus simple que mon développement.

    Peut être quelqu'un trouvera ou peut être dans une version ultérieure à 2007

    Je vous souhaite bonne lecture

    A bientôt

    Chris  

    CHRIS Posté le 8 octobre 2017, 01:53
    par CHRIS
    0

    Bonjour CHRIS,

    Tout d'abord merci pour ses explications claires et précises.

    Je ne pense jamais à l'utilisation de "Evaluation formules" et j'ai enfin compris le début de ta formule permettant de déterminer les "VRAI & FAUX".

    De mon côté j'ai aussi essayer de faire varier LIGNE(1:n) mais sans y parvenir, c'est effectivement dommage, cela serai très intéressant si c'était possible. 

    J'ai également trouvé une autre formule, pour obtenir le résultat souhaité, mais elle est matricielle et donc moins intéressante que la tienne, je l'a met ci-dessous pour la forme.

    En "E27"

    =SIERREUR(SOMME(GRANDE.VALEUR(SI(($B$12:$B$24=B27)*($C$12:$C$24=C27);$D$12:$D$24);LIGNE(INDIRECT("1:"&MIN(D27)))));"")

    Tirer vers la bas autant que nécessaire.  

    Pour répondre aussi à ton trait d'humour, je n'ais pas eu besoin d'une aspirine à la fin de ton explication.

    Bien cordialement.

    mdo100 Posté le 8 octobre 2017, 12:10
    par mdo100
    1

    Re CHRIS,

    Du coup en cherchant a faire varier LIGNE(1:n) et en reprenant la formule matricielle ci-dessus, j'en ais conclu à ça:

    =LIGNE(INDIRECT("1:"&MIN(D27)))

    Donc pour la formule non matricielle et en la mélangeant avec celle de "Guill" on arrive à cette formule en "E27"

    =SIERREUR(SOMMEPROD(GRANDE.VALEUR(($D$12:$D$24)*($B$12:$B$24=B27)*($C$12:$C$24=C27);LIGNE(INDIRECT("1:"&MIN(D27)))));"")

    Tirer vers le bas autant que nécessaire.

    Bon dimanche.

    Cordialement.

    mdo100 Posté le 8 octobre 2017, 13:05
    par mdo100
    1

    Bonsoir md01 00 et Guill,

    Bravo d'avoir trouvé l'astuce.  

    Je l'ai encore un peu simplifiée.  Il n'est, en effet pas nécessaire d'utiliser MIN.:

    SOMMEPROD(GRANDE.VALEUR(($D$12:$D$24)*($C$12:$C$24=C27)*($B$12:$B$24=B27);LIGNE(INDIRECT("1:"&D27))))
    Comme cela c'est suffisant

    Je rejoins le fichier :

    http://www.cjoint.com/c/GJipQii1WLG

    C'est, je pense la meilleure solution pour Guill d'autant que cela rejoint ces essais personnels.

    A la prochaine

    Chris

    CHRIS Posté le 8 octobre 2017, 17:49
    par CHRIS
    0

    Re CHRIS,

    Exacte MIN ne sert à rien dans ce cas, en tout cas cette formule est plus fiable puisqu'elle donne la bonne valeur recherché même si par exemple en "D27" nous mettons 4 où + alors que nous avons  seulement que 3 valeurs correspondantes.

    En tout cas, je suis ravi d'avoir eu ses échanges de travail en commun, cela m'a permis de progresser.

    J'espère que "Guill" donnera de ses nouvelles ;~)

    Bien cordialement.

    mdo100 Posté le 8 octobre 2017, 18:52
    par mdo100

    Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
    Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :