Excel :

Résolu
Thomas2b -  
 Thomas2b -
Bonjour à vous,

J'aurais voulu savoir s'il existait une fonction qui me donne la moyenne d'une liste de chiffres compris en entre 1 et 10, sachant que dans cette liste il peut y avoir des nombre différents (34,75,12,47...)

A1 : 8
A2: 12
A3 : 4
A4 : 28
A5 : 2

Donc je souhaite avoir la moyenne des nombres compris entre 1 et 10.
Ca donnerai : (8+4+2)/3 = 4,6.

Par avance merci de votre réponse et bonne journée à tous,

Thomas
Configuration: Windows XP
Firefox 3.5.2

14 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Salut,
    Je ne sais pas s'il existe une fonction excel toute faite, mais perso je ferais SOMME.SI()/NB.SI
    quelque chose comme ça (à adapter) :
    =SOMME.SI(A1:A6;"<=10")/NB.SI(A1:A6;"<=10")
    0
  2. Thomas2b
     
    Merci Pijaku.

    Je vais encore abuser un peu de toi.
    La condition dans cet exemple, était si inférieur ou égal à 10.

    J'aimerais avoir la formule en mettant comme condition "compris entre 11 et 20".

    Par avance merci.

    Thomas
    0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour Thomas et pijaku

    En tenant compte du 11 et 20 aussi, cela donne
    =SOMMEPROD((A1:A6<=20)*(A1:A6>=11)*(A1:A6))/(NB.SI(A1:A6;"<=20")-NB.SI(A1:A6;"<11"))
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Merci pour ta rapidité... Pas eu le temps de répondre...
      0
  4. Thomas2b
     
    Merci gbinforme,

    Mais la formule ne fonctionne pas chez moi.
    Cela me donne comme valeur "0"

    Peut être une erreur dans la syntaxe ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Thomas2b
     
    Réponse trouvée partiellement.

    Il me fallait dans les options activé le calcul itératif.
    C'est chose faite maintenant :)

    Un autre problème se pose maintenant :

    Parfois dans ma liste il n'y à pas de nombre mais juste un tiret "-". Dès la formule ne le reconnais pas et donc le résultat affiché est "#VALEUR!".

    Je dois absolument garder ce tiret, je ne peux le remplacer par un 0.

    Désolé d'être aussi compliquer :(
    0
  7. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour
    commencer votre formule par:
    =SI(Cell="-";"";votre formule))
    crdlmnt
    0
  8. Thomas2b
     
    Bonjour Vaucluse,

    J'obtiens donc comme formule :

    =SI(C3:C27="-";"";SOMMEPROD((C3:C27<=20)*(C3:C27>=11)*(C3:C27))/(NB.SI(C3:C27;"<=20")-NB.SI(C3:C27;"<11")))

    Cela ne fonctionne toujours pas, il y a toujours écrit : #VALEUR!

    On peut le faire :)

    Merci en tout cas de votre aide.
    0
  9. Thomas2b
     
    Qqn aurait-il une solution ?

    Par avance merci

    Thomas
    0
  10. gilou
     
    bonjour a tous
    pourquoi ne pas utiliser la fonction BDMOYENNE ?
    0
  11. smartway14 Messages postés 857 Date d'inscription   Statut Membre Dernière intervention   186
     
    bonjour;
    j'ai trouvé une formule qui a marchée bien essayez la:
    =MOYENNE.SI.ENS(A1:A13;A1:A13;">=11";A1:A13;"<=20")
    0
  12. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Re
    effectivement, ma proposition ne marche que ligne par ligne, pas sur un champ!!
    Je n'avais pas percuté sur le début de votre demande
    Mais ça n'est peut être pas si compliqué
    essayez
    =(SOMME.SI(A1:A13;"<=10";A1:A13)-SOMME.SI(A1:A13;"<1";A1:A13))/((NB.SI(A1:A13;"<=10")-NB.SI(A1:A13;"<1"))
    cette formule testée sur 2003 ne semble pas affectée par les tirets dans les cellules,ni par quelque forme de texte que ce soit.
    elle prend en compte les valeurs 1 à 10 incluses, avec ou sans décimale.

    Nota: si votre tableau ne comporte pas de valeur inférieures à 1, la formule peut se simplifier en supprimant le 2° item SOMME.SI, car il n'enlevera que des 0 à partir des vides.

    Par contre, conservez bien les deux NB.SI qui compte les cellules concernées
    Attenbtion aux parenthéses pour bien répartir les soustraction et les divisions
    Bonne chance.
    Crdlmnt
    PS: Starway, à confirmer, si vous le voulez bien:
    je pense que la fonction que vous évoquez n'existe qu'à partir de 2007, et par ailleurs pourquoi situer les limites entre 11 et 20?

    0
  13. Thomas2b
     
    Merci Vaucluse, tout fonctionne parfaitement.
    Starway délimitait entre 11 et 20 car c'était également une demande de ma part.
    Mais j'ai adapté les chiffres et tout fonctionne correctement :)

    Vaucluse je pense t'ennuyer une dernière fois si tu le veux bien :

    J'ai donc repris ta formule avec comme limites 11 et 20 ce qui donne pour mon document :

    =(SOMME.SI(C3:C22;"<=20";C3:C22)-SOMME.SI(C3:C22;"<11";C3:C22))/((NB.SI(C3:C22;"<=20")-NB.SI(C3:C22;"<11")))

    Cette formule fonctionne si il existe des valeurs comprises entre 11 et 20.
    Dans le cas (très rare mais ca pourra arriver) ou il n'y à aucune valeur comprise entre 11 et 20, la moyenne ne peut se faire donc il va apparaître ceci : "#DIV/0!".

    Existe t-il un moyen, s'il ne trouve pas de valeur correspondante aux limites 11 et 20, qu'il affiche un tiret "-" par exemple ?

    Par avance merci :)

    Thomas
    0
  14. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Ca devrait marcher comme ça, même si c'est un peu long!
    suffit de lui dire d'afficher le tiret lorsque le total des plus petits ou égal 20 moins le total des plus petit que 11 est égal à 0

    =SI(NB.SI(C3:C22;"<=20")-NB.SI(C3:C22;"<11")=0;"-";(SOMME.SI(C3:C22;"<=20";C3:C22)-SOMME.SI(C3:C22;"<11";C3:C22))/((NB.SI(C3:C22;"<=20")-NB.SI(C3:C22;"<11"))))

    Crdlmnt

    0
  15. Thomas2b
     
    Tout fonctionne !

    Merci Vaucluse d'avoir pris de ton temps pour me renseigner!

    Bonne fin de journée

    Thomas
    0