Moyenne sur les 50 dernières lignes non vide

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 !

candido57

XLDnaute Occasionnel
Bonjour,

J’ai une série ( environ 500) de chiffres dans une colonne et je voudrais faire la moyenne des 50 dernières cellules non vide.
est-ce possible ?

Merci
 
Re : Moyenne sur les 50 dernières lignes non vide

ça fonctionne pas


Il faudrait prendre la colonne exemple W >> rechercher de W5 à W300

1,2
1,25

2,36

2,36
5,25
ect.. il y a des cellules vide mais il ne faut pas les prendre en compte, prendre uniquement les 50 cellules pleine
 
Re : Moyenne sur les 50 dernières lignes non vide

Re, Bonsoir hbenalia

candido57
Si la formule de hbenalia fonctionne parfaitement, il suffit d'adapter comme il se doit ...😉 (test OK sur mon PC)
Code:
=MOYENNE(DECALER($W$5;EQUIV(-1;$W5:$W300;-1)-1;0;-50))

EDITION: J'ai oublié de précisé que j'avais testé avec aucune cellule vide dans la plage.
D'ou le fait que je disais test ok sur mon PC
 
Dernière édition:
Re : Moyenne sur les 50 dernières lignes non vide

Bonjour candido57, à tous,

Un essai avec un nom dynamique (MaListe) et une formule matricielle à valider par Ctrl+Maj+Entrée.

Et un autre essai avec une fonction VBA: MoyN(Liste , N ) où Liste est la zone de valeurs et N le nombre de valeurs non vides à moyenner à partir du bas de la zone. La fonction retourne #N/A s'il y a moins de N valeurs dans la liste.

En excel 2003, la formule matricielle ne fonctionne pas car le nombre de niveaux d'imbrication est trop élévé (je suis sans doute parti sur un truc bien trop tarabiscoté!)

Formule matricielle Excel 2007+ :
VB:
=MOYENNE(DECALER(MaListe;LIGNES(MaListe)-EQUIV(50;SOUS.TOTAL(2;DECALER(DECALER(MaListe;LIGNES(MaListe)-LIGNE(INDIRECT("1:" & LIGNES(MaListe)));0;1;1);0;0;LIGNE(INDIRECT("1:" & LIGNES(MaListe)));1));0);0;EQUIV(50;SOUS.TOTAL(2;DECALER(DECALER(MaListe;LIGNES(MaListe)-LIGNE(INDIRECT("1:" & LIGNES(MaListe)));0;1;1);0;0;LIGNE(INDIRECT("1:" & LIGNES(MaListe)));1));0);1))

le code de la fonction (Excel 2003+):
VB:
Public Function MoyN(Liste As Range, N As Long)
Dim T, i As Long, k As Long, s
MoyN = CVErr(xlErrNA)
T = Liste.Columns(1).Value
For i = UBound(T) To 1 Step -1
  If T(i, 1) <> "" Then
    If IsNumeric(T(i, 1)) Then
      k = k + 1
      s = s + T(i, 1)
      If k = N Then
        MoyN = s / N
        Exit Function
      End If
    End If
  End If
Next i
End Function

nb: les formules proposées précédemment dans les autres réponses semblent ne pas fonctionner si des valeurs négatives sont présentes dans la liste.
 

Pièces jointes

Dernière édition:
Re : Moyenne sur les 50 dernières lignes non vide

Re,

Si le tableau est très grand, la formule précédente peut créer une plage qui sort des limites de la feuille.

Il faut alors préciser la hauteur de la plage :

Code:
=MOYENNE(DECALER(plage;GRANDE.VALEUR(lig;50)-1;;LIGNES(plage)-GRANDE.VALEUR(lig;50)+1))
Fichier (2).

Nota : il a été dit qu'il y a 500 valeurs, donc ici c'est superflu.

A+
 

Pièces jointes

Re : Moyenne sur les 50 dernières lignes non vide

Bonjour à tous,

Une erreur dans mes formules dans le post #7, notifiée par mapomme que je remercie encore, les formules présentent des erreurs lors de la saisie de valeurs négatives parmi les 50 dernières valeurs, pour corriger ces erreurs, on remplace dans ces formules l'expression qui determine la ligne de la dernière cellule non vide de la colonne c-à-d l'expression EQUIV(-1;$C:$C;-1) par l'expression EQUIV(9^9;$C:$C;1) ou EQUIV(9^9;$C:$C).
Mille excuses pour ces erreurs....

Cordialement
 
Dernière édition:
- 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
4
Affichages
242
D
  • Question Question
Réponses
5
Affichages
247
Didierpasdoué
D
Retour