Moyenne des trois dernieres valeurs

KTM

XLDnaute Impliqué
Bonjour chers tous
je voudrais une formule de calcul de la moyenne des trois dernières valeurs de ma plage
1- Mes données sont sur la meme ligne
2- Mes donnes sont dans la meme colonne
Merci et bonne journée à tous!!
 

vgendron

XLDnaute Barbatruc
bonjour
exemple de formule matricielle pour des données en ligne de A1 à F1

=MOYENNE(DECALER(A1;;MAX(SI(A1:F1<>"";COLONNE(A1:F1)))-3;;3))

Matricielle = valider la formule par ctrl+Maj+Entrée

à adapter pour des données en colonne
 

job75

XLDnaute Barbatruc
Bonjour KTM, vgendron, Jocelyn,

Utilisation d'une fonction VBA :
VB:
Function Moyenne_3D(r As Range)
'r doit être une plage d'une ligne ou d'une colonne
Set r = Intersect(r, Application.Caller.Parent.UsedRange)
If r Is Nothing Then Moyenne_3D = "": Exit Function
Dim i&, n As Byte
For i = r.Count To 1 Step -1
    If IsNumeric(CStr(r(i))) Then
        n = n + 1
        Moyenne_3D = Moyenne_3D + CDbl(r(i))
        If n = 3 Then Exit For
    End If
Next
If n Then Moyenne_3D = Moyenne_3D / n Else Moyenne_3D = ""
End Function
La plage peut être illimitée.

A+
 

Pièces jointes

  • Moyenne_3D(1).xlsm
    21.3 KB · Affichages: 8

KTM

XLDnaute Impliqué
Bonjour KTM, vgendron, Jocelyn,

Utilisation d'une fonction VBA :
VB:
Function Moyenne_3D(r As Range)
'r doit être une plage d'une ligne ou d'une colonne
Set r = Intersect(r, Application.Caller.Parent.UsedRange)
If r Is Nothing Then Moyenne_3D = "": Exit Function
Dim i&, n As Byte
For i = r.Count To 1 Step -1
    If IsNumeric(CStr(r(i))) Then
        n = n + 1
        Moyenne_3D = Moyenne_3D + CDbl(r(i))
        If n = 3 Then Exit For
    End If
Next
If n Then Moyenne_3D = Moyenne_3D / n Else Moyenne_3D = ""
End Function
La plage peut être illimitée.

A+
Testé ce jour et c'est très bon!!!!
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof