Parcours tableau excel 2010 Somme

ExcelHere Messages postés 14 Statut Membre -  
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous,

Admettons que j'ai qqch du type:

A 8
A 1
A 7
B 2
B 3
C 1
C 4
C 6
C 9

J'aimerai obtenir la moyenne de A, de B, de C.
Je cherche une méthode qui parcours le tableau, car il comporte environ 100000 lignes (et il n'y a pas que 3 lettres ^^ ) , c'est à dire, une méthode qui dise, tant que les deux lettres sont égales, on continue de faire la somme, dès que la lettre change, on refais la même chose et on met dans une autre case.

Merci d'avence pour votre aide !!!!!!!

6 réponses

  1. Raymond PENTIER Messages postés 58220 Date d'inscription   Statut Contributeur Dernière intervention   17 486
     
    Tes textes sont en A:A, tes valeurs numériques en B:B ; en C:C tu mets la formule =MOYENNE.SI(A:A;A:A;B:B)
    https://www.cjoint.com/?DGidExnxAPO
    Tu peux te contenter des colonnes A à C (solution violette).
    Tu peux aussi créer des petits tableaux en colonne E et F (solution jaune).
    Tu peux même te contenter d'une seule plage de consultation en H4:I4 avec une liste déroulante de cellule en H4 (solution orange).

    Cordialement.
    C'est bien, la retraite ! Surtout aux Antilles ... :-)
    Raymond (INSA, AFPA, CF/R)
    0
    1. ExcelHere Messages postés 14 Statut Membre
       
      Merci pour votre réponse.
      J'ai essayé votre solution, cela me donne uniquement la moyenne de A. Dois je faire la même chose pour toutes les lettres ? (J'en ai une quarantaine, voir plus :( )
      Sinon, je n'ai pas bien compris le code couleur.
      Merci encore!!!
      0
    2. ExcelHere Messages postés 14 Statut Membre
       
      132 lettres différentes même :) haha
      0
  2. Raymond PENTIER Messages postés 58220 Date d'inscription   Statut Contributeur Dernière intervention   17 486
     
    Et moi qui croyais avoir été un bon pédagogue !
    Dans la colonne C tu as les moyennes de toutes les lettres ; à chaque ligne tu as la lettre et sa moyenne ! C'est la partie violette de la feuille, colonnes de A à C. OK ?

    Mais comme c'est un peu idiot de répéter 500 fois le même résultat, je t'ai proposé quelque chose de plus élégant, dans la partie jaune de la feuille, c'est-à-dire les colonnes E et F : tu saisis la lettre en colonne E et Excel t'affiche sa moyenne en colonne F. Tu as compris ?

    Et le fin du fin, la solution au top, c'est dans la partie orange de la feuille, soit juste les cellules H4 et I4 : Il te suffit de choisir une lettre dans la liste déroulante en H4, et la moyenne apparaît en I4 ... C'est compliqué à comprendre ?

    "J'ai essayé votre solution, cela me donne uniquement la moyenne de A"
    en écrivant ça, tu prouves que tu as interprété ma phrase "en C:C tu mets la formule =MOYENNE.SI(A:A;A:A;B:B)" comme voulant dire "en C1 tu mets la formule =MOYENNE.SI(A:A;A:A;B:B) et tu t'arrêtes".
    Si tu prends juste la peine de recopier la formule vers le bas, tu verras la différence ... Et si tu avais pris la peine de regarder ce fichier que j'ai créé exprès pour toi, tu n'aurais posé aucune question, puisque tu aurais constaté qu'il a tout ce que tu peux souhaiter !
    0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour ExcelHere, Raymond,

    Au lieu de passer ton temps à mettre plein de formules, tu devrais utiliser un TCD (Tableau Croisé Dynamique) qui est fait pour cela. Voilà ce que cela donne avec les données de Raymond complétées :

    https://www.cjoint.com/?DGijwotidje

    Tu peux rajouter des éléments dans ton tableau, et ensuite il suffit de faire clic droit sur le TCD et choisir actualiser pour que tout soit à jour.
    0
  4. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour

    ici ce que j'ai compris de votre question...avec deux options et sous toutes réserves
    https://www.cjoint.com/?DGikn3rOUO9

    crdlmnt

    Errare humanum est, perseverare diabolicum
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Rebonjour tous
      ...je ne suis pas sur que le TCD puisse répondre à la question si je l'ai bien comprise.
      En fait, il semblerait que le demandeur veuille un sous total des codes qui se suivent à chaque changement de code dans la liste, d'où cette proposition:
      https://www.cjoint.com/?DGijwotidje

      mais le demandeur reviendra surement nous confirmer ou infirmer ça

      Bien cordialement à tousd
      0
    2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonsoir Vaucluse,

      Bien d'accord avec toi, il y a 2 demandes :
      J'aimerai obtenir la moyenne de A, de B, de C. => le TCD

      la suite que tu as traitée et que j'ai prise pour une explication pour faire la moyenne ;-)

      Comme le filtre était bon, chez moi, il n'y avait pas de marc de café exploitable en divination :)

      Bonne soirée à toi et aux lecteurs.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ExcelHere Messages postés 14 Statut Membre
     
    OHHHHH Merci à tous pour vos réponses, je ne savais pas que ce forum était si actif!!!
    Si ça ne vous gêne pas mon problème à évolué :
    J'ai par exemple ça : (GOOD quand le nombre est inférieur à 0,4 sinon BAD)

    A 0,1 GOOD
    A 0,6 BAD
    A 0,3 GOOD
    B 0,9 BAD
    B 0,2 GOOD
    C 0,7 BAD
    C 0,6 BAD
    C 0,6 BAD
    C 0,01 GOOD

    Et j'aimerai obtenir le poucentage de BAD pour chaque lettre, bien sur sans avoir à retaper la formule, car des tonnes de lettres, et des milliers de lignes.

    Exemple de ce que j'aimerai obtenir :

    A 1/3= 0,33
    B 0,5
    C 3/4= 0,75

    Dans le même style de la réponse de @gbinforme , j'ai essayé de faire un filtre avec les chiffres plus grands que 0,4 (après avoir changé les valeurs) mais la moyenne ne changeais pas

    MERCI A TOUS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    0
  7. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour

    =NB.SI.ENS(A;A;"A";C:C;"BAD")/NB.SI(A:A;"A)

    Ou alors sans la colonne C

    =NB.SI.ENS(A;A;"A";B:B;">0,4")/NB.SI(A:A;"A")

    Si excel d'avant 2007, replacer NB.SI.ENS(A;A;"A";B:B;">0,4") par:

    =SOMMEPROD((A1:A10000="A")*(B1:B10000>0,4))/ .....

    dans ce cas N° de ligne obligatoire dans les adresses de champ
    crdlmnt

    Errare humanum est, perseverare diabolicum
    0