Moyenne sans valeur 0 ni cellules ides (sans liste)

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

alain.raphael

XLDnaute Occasionnel
Bonsoir à Tous,

Je vous joins un fichier d'exemple.......... je cherche à ne pas prendre en compte les 0 ni les cellules vides..... seul problème les données sont réparties un peu partout dans le feuillet et donc je ne peux pas écrire "A1:A10" par exemple.
 

Pièces jointes

Re à tous,

Au cas où dans la plage, il y aurait des cellules numériques à ne pas prendre en compte, on peut utiliser une fonction personnalisée. Le code est dans Module1:
VB:
Function moyenne_si(ParamArray cellules())
Dim som, nbr, elem, xcell
  For Each elem In cellules
  For Each xcell In elem
    If xcell <> "" Then If IsNumeric(xcell) Then If xcell > 0 Then nbr = nbr + 1: som = som + xcell
  Next xcell: Next elem
  moyenne_si = ""
  If nbr > 0 Then moyenne_si = som / nbr
End Function

Exemple d'utilisation :
Code:
=moyenne_si(E10:E13;F5;G8;H9)

nota:
mais entre les cellules d'autres chiffres existent mais ne sont pas en prendre en compte....
Je m'en suis douté 😛
 

Pièces jointes

Dernière édition:
Re @Staple1600
On ne peut pas utiliser =MOYENNE.SI.ENS dans cette affaire?

A partir du moment où (d'un point de vue Excel) les cellules à prendre en compte sont distribuées au hasard (c'est à dire à la volonté de l'utilisateur), j'ai du mal à voir comment définir des conditions. Il me semble qu'il faille passer par une énumération des cellules à prendre en compte. Enfin j'dis ça, j'dis rien, mais j'l'ai dit quand même 😛
 
Re, salut JM,

Perso j'utiliserais plutôt cette fonction VBA, très simple :
VB:
Function MaMoyenne(r As Range)
Dim n&
For Each r In r
    If IsNumeric(r) Then If r > 0 Then n = n + 1: MaMoyenne = MaMoyenne + r
Next
If n Then MaMoyenne = MaMoyenne / n
End Function
Bonne nuit.
 

Pièces jointes

Bonsoir job75, ma pomme

ma pomme
Moi j'avais dit au préalable : Peut-être une question bête
que tu as coupé au montage 😉
J'avoue que j'ai testé uniquement en lisant les posts du fil
=MOYENNE.SI.ENS(E6:E13;E6:E13;">0")
Et comme cela semblait bon, j'ai posé ma question bête
J'aurai du ouvrir les PJ avant. 😉
 
Bonjour JHA, le fil, le forum,

MOYENNE.SI et MOYENNE.SI.ENS ne fonctionnent pas sur les versions antérieures à Excel 2007.

C'est la raison pour laquelle au post #3 j'ai précisé "qui fonctionne sur toute version Excel ".

Bonne journée.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
411
Réponses
6
Affichages
674
Retour