Renvoyer le nom associé à la somme maximum

Résolu
Nilcram Messages postés 3 Statut Membre -  
Nilcram Messages postés 3 Statut Membre -
Bonjour à tous j'aurais besoin d'utiliser les fonction Index(equiv mais pour une operation compliquée car il ne s'agit pas d'un maximum mais de SOMMES MAXIMALES.

j'ai plusieurs magazins qui realisent des ventes
en colonne A on a le nom des magazins
en colonne H on a les ventes realisés

la difficulté c'est qu'il y a plusieurs periodes, donc un meme magazin réaparait plusieurs fois

je voudrais une formule qui me donne le nom du magazin associé à la SOMME maximale de toutes les ventes.

En gros la formule doit faire la somme des differentes ventes de chaque magazin, trouver le maximum de toutes ces sommes, et le resultat final c'est le nom du magazin qui ressort

comment y parvenir??

Merci beaucoup

4 réponses

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour

    https://www.cjoint.com/?DJFkGSQnnpa
    un exemple ici avec une colonne qui permet de classer les cumuls de vente

    la colonne C peut être masquée où sur une autre feuille

    crdlmnt

    Errare humanum est, perseverare diabolicum
    1
  2. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    Bonjour

    Essayer ceci

    =INDIRECT(ADRESSE(EQUIV(MAX($H$1:$H$50);$H$1:$H$50;0);1;3;1;"Feuil1");1)

    la recherche est limitée jusqu'à la ligne 50 dans mon exemple sur la feuille 1

    Adapter ces paramètres à votre besoin

    En voyant la réponse de Vaucluse je m'aperçois que je ne vous ai pas donné la bonne réponse n'ayant pas fait la somme. Mes excuses

    C'est en forgeant que l'on devient forgeron. - C'est au pied du mur que l'on voit le maçon - on apprend toujours de ses erreurs
    0
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    A part passer par des formules intermédiaires, aucune formule ne te donnera le résultat directement.

    Mis à part une fonction personnalisée par VBA.

    Voici le code :
    Function Magasin_Max_Ventes(rngMag As Range, rngMontants As Range) As String
    Dim Sommes(), cel As Range, dico As Object, col As Integer, elem As Variant, Maxi As Double
    
    On Error GoTo InversionColonnes
    col = CInt(Asc(Split(rngMontants.Address, "$")(1)) - Asc(Split(rngMag.Address, "$")(1)))
    On Error GoTo 0
    If rngMag.Count <> rngMontants.Count Then GoTo MemeLongueur
    
    Set dico = CreateObject("Scripting.Dictionary")
    For Each cel In rngMag
      If dico.exists(cel.Value) Then dico(cel.Value) = dico(cel.Value) + cel.Offset(0, col).Value Else dico(cel.Value) = cel.Offset(0, col).Value
    Next cel
    For Each elem In dico.keys
        If dico(elem) > Maxi Then Maxi = dico(elem): Magasin_Max_Ventes = elem
    Next elem
    
    Exit Function
    InversionColonnes:
    Magasin_Max_Ventes = "Erreur : la colonne des montants doit être située à droite de celle des magasins"
    MemeLongueur:
    Magasin_Max_Ventes = "Erreur : les plages doivent être de même longueur"
    End Function


    Pour l'utiliser :
    1- Depuis ton classeur, taper ALT+F11, puis, dans la fenêtre VB qui s'est ouverte Insertion/Module.
    2- dans le module ainsi créé copiez-collez le code ci-dessus,
    3- fermer la fenêtre VB.
    Dans la feuille contenant vos données, n'importe ou, saisir la formule suivante :
    =Magasin_Max_Ventes(A2:A1000;H2:H1000)
    0
  4. Nilcram Messages postés 3 Statut Membre
     
    Merci beaucoup, finalement puisque tu m'as dis qu'il n y avait aucune formule unique possible je me suis résolu à créer deux nouvelles colonnes où je supprime les duplicatas et calcules chaque somme dessus pour pouvoir faire le calcul facilement.
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      As tu regardé le classeur de Vaucluse (salut au passage), donné ICI?
      0
    2. Nilcram Messages postés 3 Statut Membre
       
      Oui et d'ailleurs c'est ça qui m'a donné l'idée de créer deux colonnes.
      0