moyenne plusieurs cellules

celiostat

XLDnaute Nouveau
Bonjour je souhaite calculer une moyenne a partir de divers cellules non adjacentes,

de plus, je souhaite je souhaite mettre une formule afin que si l'une d'entre elle comporte un zéro, elle ne soit pas prise en compte pour le calcul ,

dans le fichier ci joint,
j'ai donc indiqué valeur théorique et valeur recherché
la somme est donc divisé par 3 trop au lieu de 4, mais je voudrais que cela se fasse en automatique,
j'espère avoir été clair !

j'ai pensé à une fonction nb.si ....

Merci bcp pour votre aide
L.
 

Pièces jointes

  • aide excel.xls
    15.5 KB · Affichages: 154
  • aide excel.xls
    15.5 KB · Affichages: 146
  • aide excel.xls
    15.5 KB · Affichages: 144

wilfried_42

XLDnaute Barbatruc
Re : moyenne plusieurs cellules

Bonjour

formule matricielle à placer en C14 et à valider en appuyant sur Ctrl+Maj+Entrée
Code:
=SOMME(SI(MOD(LIGNE($1:$27);5)=0;$H$1:$H$27;0))/SOMME(SI(MOD(LIGNE($1:$27);5)=0;SI($H$1:$H$27>0;1;0);0))
si la validation est correcte, des {} encadreront automatiquement la formule.
 

celiostat

XLDnaute Nouveau
Re : moyenne plusieurs cellules

merci de la réponse,

ceci dit j'aimerais autant que possible éviter les matricielles car le fichier va circuler et cela peut créer des confusions, par aillerus, les cellules à inclure étant en fait disposées horizontalement, je n'arrive pas à dupliquerla formule

une autre idée ?
 

wilfried_42

XLDnaute Barbatruc
Re : moyenne plusieurs cellules

re:

nb.si ne fonctionne pas sur des plages discontinues, il faut passer par macro voire une fonction personnalisée avec une plage nommée. mais son utilisation demande des formules matricielles. :D (on tourne en rond:D)

la fonction personnalisée contient 5 ou 6 lignes pas plus
 

mromain

XLDnaute Barbatruc
Re : moyenne plusieurs cellules

bonjour celiostat, wilfried_42

voici une solution avec une fonction en VBA:
Code:
Public Function MaMoyenne(ParamArray zones()) As Double
Application.Volatile
Dim curCell As Range, nbVal As Integer, i As Integer
'MaMoyenne = 0: nbVal = 0
For i = LBound(zones) To UBound(zones)
    For Each curCell In zones(i)
        If IsNumeric(curCell.Value) And curCell.Value <> 0 Then
            MaMoyenne = MaMoyenne + curCell.Value
            nbVal = nbVal + 1
        End If
    Next curCell
Next i
If nbVal <> 0 Then MaMoyenne = MaMoyenne / nbVal
End Function
a+
 

Pièces jointes

  • Classeur1.xls
    29.5 KB · Affichages: 105
  • Classeur1.xls
    29.5 KB · Affichages: 129
  • Classeur1.xls
    29.5 KB · Affichages: 122

celiostat

XLDnaute Nouveau
Re : moyenne plusieurs cellules

faudra vraiment qu'un jour je me mette aux macros:mad:
je ne touche pas le VBA et donc suis obligé de rester avec nos bonne veilles formules à ralonge !!

merci à tous les deux,
j'ai opté pour la solution de wilfried à son deuxième post,

à bientôt,
passez un bon WE
 

Discussions similaires

  • Question
Microsoft 365 #N/A
Réponses
6
Affichages
271

Statistiques des forums

Discussions
312 503
Messages
2 089 055
Membres
104 013
dernier inscrit
VELONDAHY Mickaël