Moyenne glissante (avec début et fin)

Signaler
Messages postés
2
Date d'inscription
mardi 25 mai 2021
Statut
Membre
Dernière intervention
25 mai 2021
-
Messages postés
15973
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 juin 2021
-
Bonjour à tous,

Une idée me taraude, je souhaite depuis quelques jours à réaliser une moyenne en décalé.

Je vais vous expliquer un peu plus en détails mon problème, si cela vous intéresse.

J'ai réalisé un outil permettant de récupérer heure par heure les températures, l'hygrométrie ainsi que l'ensoleillement (en fonction de la ville et de l'année) du site Méteociel.
Cependant, parfois pendant plusieurs heures, il n'y a pas d'informations (N/A) , ainsi je souhaiterais réaliser soit un programme VBA, soit utiliser différentes fonction de Excel telles que DECALER, SI , MOYENNE ... afin d'avoir des résultats moyennés là ou il n'y a pas d'informations. J'utilise cela afin de faire des dimensionnements ... --> voir pièces jointes

Je vous remercie d'avance pour votre aide.
Si vous avez besoin de plus d'informations, n'hésitez pas


1 réponse

Messages postés
15973
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 juin 2021
866
bonjour,
as-tu une question?
Messages postés
2
Date d'inscription
mardi 25 mai 2021
Statut
Membre
Dernière intervention
25 mai 2021

Bonjour,

Ma question se porte sur comment faire "une moyenne décalée " ? Si dans un tableau de valeurs (récupération du site Méteociel), il y a des valeurs manquantes (N/A). Je souhaiterais faire la moyenne de la manière suivante :

X
N/A (X+Y)/2
N/A (((X+Y)/2)+Z)/2
N/A ...
N/A
N/A
N/A
N/A
...
Y
Z

Cependant dans mon tableau de 8760 lignes, les valeurs manquantes se situent à divers endroits et varie en fonction des hypothèses que je prends pour lancer mon programme VBA.

Je m'excuse pour mon manque de clarté, cela est compliqué à expliquer à l'écrit.

Merci d'avance, si vous avez des idées.
Messages postés
15973
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 juin 2021
866 >
Messages postés
2
Date d'inscription
mardi 25 mai 2021
Statut
Membre
Dernière intervention
25 mai 2021

si je comprends bien, cela ne fonctionne que si, après une série de valeurs manquantes, il n'y a pas de valeur manquante dans la série de même longueur qui suit.
Messages postés
15973
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 juin 2021
866 >
Messages postés
15973
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 juin 2021

suggestion:
Sub moydec()
Dim cl As Range, X As Range, Y As Range
Dim lx As Long, ly As Long, i As Long, nna As Long
Set cl = Sheets("meteo").[a2]
If IsError(cl) Then
    Stop
End If
Do While cl <> ""
    Set cl = cl.Offset(1)
    If IsError(cl) Then
        Set X = cl.Offset(-1)
        lx = X.Row
        Do While IsError(cl.Offset(1))
            Set cl = cl.Offset(1)
        Loop
        Set Y = cl.Offset(1)
        ly = Y.Row
        Set cl = X.Offset(1)
        nna = ly - lx - 1
        For i = 1 To nna
            cl = (cl.Offset(-1) + cl.Offset(nna)) / 2
            Set cl = cl.Offset(1)
        Next i
        Set cl = Y
    End If
Loop
End Sub