Menu

Moyenne sur les 30 dernières lignes [Résolu]

Magnum812 6 Messages postés vendredi 8 septembre 2017Date d'inscription 11 septembre 2017 Dernière intervention - 8 sept. 2017 à 11:25 - Dernière réponse : Magnum812 6 Messages postés vendredi 8 septembre 2017Date d'inscription 11 septembre 2017 Dernière intervention
- 11 sept. 2017 à 10:55
Bonjour,

Je vais essayer d'expliquer clairement mon besoin (Excel 2007).
J'ai un tableau excel à plusieurs colonnes et dont une nouvelle ligne est créée chaque jour. La deuxième ligne de chaque colonne (la première ligne étant celle des libellés) calcule la moyenne générale des données non vide des cellules en dessous [ex: en C2: =MOYENNE(C4:C65000) Par exemple] Jusque là pas de soucis.
Par contre dans la deuxième ligne du tableau j'aimerai qu'il calcule la moyenne des 30 derniers jours (donc les 30 dernières lignes non vide en dessous)
Exemple: Aujourd'hui on rempli la ligne 60, il doit calculer la moyenne de la ligne 60 à la ligne 31 - Demain on rempli la ligne 61, il doit calculer la moyenne de la ligne 61 à la ligne 32... Etc...
J'espère avoir été suffisamment clair...
Merci pour votre aide

Afficher la suite 

Votre réponse

14 réponses

Meilleure réponse
ccm81 8413 Messages postés lundi 18 octobre 2010Date d'inscription 24 mai 2018 Dernière intervention - Modifié par ccm81 le 9/09/2017 à 11:23
1
Merci
Bonjour à tous

Un peu tard, mais non ...
Dans mon tableau il y a certaines cellules vide, donc la fonction NBVAL compte les cellules non vide et ne fait pas la moyenne sur les bons chiffres
Peut être avec une fonction personnalisée (macro)
http://www.cjoint.com/c/GIjjvglgwVB

Cdlmnt

Merci ccm81 1

a aidé 24864 internautes ce mois-ci

mdo100 116 Messages postés jeudi 9 décembre 2010Date d'inscription 21 mai 2018 Dernière intervention - 10 sept. 2017 à 09:46
Bonjour ccm81,

Bien vu la fonction personnalisée (Que je ne sais pas faire), et que j'ai bien noté.
Mais elle ne traite pas les valeurs alphabétiques, ce que je veux dire, si par exemple il y a un mot quelconque dans la colonne "A" entre les 10 où 20 dernières valeurs numérique, alors la fonction ne marche plus.

Comment ferais-tu pour remédier a ce problème ?

Cordialement.
ccm81 8413 Messages postés lundi 18 octobre 2010Date d'inscription 24 mai 2018 Dernière intervention - 10 sept. 2017 à 18:51
Tu complètes la ligne
While n < nd
  If Range(co & li).Value <> "" And IsNumeric(Range(co & li).Value) Then


Cdlmnt
mdo100 116 Messages postés jeudi 9 décembre 2010Date d'inscription 21 mai 2018 Dernière intervention > ccm81 8413 Messages postés lundi 18 octobre 2010Date d'inscription 24 mai 2018 Dernière intervention - 10 sept. 2017 à 19:41
Re ccm81,

Génial, cela évite donc d'utiliser une formule matricielle gourmande en ressource.

Merci de ta réponse, qui me servira sans aucun doute et qui devrait aussi répondre à Magnum812.

Cordialement.
Magnum812 6 Messages postés vendredi 8 septembre 2017Date d'inscription 11 septembre 2017 Dernière intervention > mdo100 116 Messages postés jeudi 9 décembre 2010Date d'inscription 21 mai 2018 Dernière intervention - 11 sept. 2017 à 10:55
Bonjour à tous,

Après plusieurs essais différents, certains concluent, d'autres moins je vais peaufiner tout ça et l'adapter à mon tableau...
J'hésite encore entre une macro ou une formule matricielle...
En tout cas la solution a mon problème se trouve dans vos réponses et je vous en remercie tous.
Par contre je ne sais pas comment mettre ce sujet en résolu !!

Bonne semaine à tous,
Cordialement,
Commenter la réponse de ccm81
pijaku 12205 Messages postés jeudi 15 mai 2008Date d'inscriptionModérateurStatut 13 septembre 2017 Dernière intervention - 8 sept. 2017 à 11:34
0
Merci
Bonjour,

Il doit certainement y avoir plus simple et plus élégant, mais cette formule fonctionne :
=MOYENNE(DECALER(C4;NBVAL(C4:C65000)-30;0;;):DECALER(C4;NBVAL(C4:C65000);0;;))

Magnum812 6 Messages postés vendredi 8 septembre 2017Date d'inscription 11 septembre 2017 Dernière intervention > Vaucluse 22045 Messages postés lundi 23 juillet 2007Date d'inscriptionContributeurStatut 25 mai 2018 Dernière intervention - 8 sept. 2017 à 11:46
Bonjour pijaku et Vaucluse

Ah ben dis donc c'est du rapide...
Je vais essayer ça tout à l'heure et je vous tiens au courant.
En tout cas merci à vous deux...

A plus...
pijaku 12205 Messages postés jeudi 15 mai 2008Date d'inscriptionModérateurStatut 13 septembre 2017 Dernière intervention > Vaucluse 22045 Messages postés lundi 23 juillet 2007Date d'inscriptionContributeurStatut 25 mai 2018 Dernière intervention - 8 sept. 2017 à 11:48
Salut Vaucluse,

+1

Mais...
Comme ceci, ça passe mieux :
=MOYENNE(DECALER(C4;NBVAL(C4:C65000)-30;;30;))
Vaucluse 22045 Messages postés lundi 23 juillet 2007Date d'inscriptionContributeurStatut 25 mai 2018 Dernière intervention > pijaku 12205 Messages postés jeudi 15 mai 2008Date d'inscriptionModérateurStatut 13 septembre 2017 Dernière intervention - 8 sept. 2017 à 12:17
Vi... je ne peux pas renier ma spécialité, les fautes de frappe (pour les deux points mais je crois que le dernier pont virgule n'est pas indispensable)
merci pour la correction
Bien cordialement
Magnum812 6 Messages postés vendredi 8 septembre 2017Date d'inscription 11 septembre 2017 Dernière intervention > pijaku 12205 Messages postés jeudi 15 mai 2008Date d'inscriptionModérateurStatut 13 septembre 2017 Dernière intervention - 8 sept. 2017 à 13:14
Re-

J'ai un souci avec la formule, pour simplifier j'ai fait un essai sur 10 lignes donc :
Avec la formule = MOYENNE(J72:J81) pour un total de 379 j'obtiens bien 37,90 de moyenne.
Avec la formule =MOYENNE(DECALER(J4;NBVAL(J4:J65000)-10;;10;)) j'obtiens 38,40 de moyenne et la dernière cellule non vide est bien la J81 ! Je suis perdu !
J'ai fait des essais sur d'autres colonnes il y a toujours une différence ! (par contre je ne peux pas vous donner mon tableau pour vérifier)

Et sinon deuxième souci, quand il y a des cellules intermédiaires vide peut on faire une moyenne sur les 10 (ou 30) dernières cellules non vide du tableau ?
Par contre dans mon exemple ci-dessus il n'y a pas de cellules vide dans cette portion du tableau pour l'essai.

En tout cas merci à vous 2 d'essayer de m'aider, je continue à chercher de mon côté.

Bien cordialement...
Magnum812 6 Messages postés vendredi 8 septembre 2017Date d'inscription 11 septembre 2017 Dernière intervention > Magnum812 6 Messages postés vendredi 8 septembre 2017Date d'inscription 11 septembre 2017 Dernière intervention - 8 sept. 2017 à 13:33
Re-

Je pense avoir compris le pourquoi. Dans mon tableau il y a certaines cellules vide, donc la fonction NBVAL compte les cellules non vide et ne fait pas la moyenne sur les bons chiffres. Quand j'ai mis des chiffres au pif dans les cellules vides pour remplir le tableau, la moyenne de 37,90 est apparue dans la cellule.
Par contre je ne sais pas comment rectifier le tir...

Cordialement...
Commenter la réponse de pijaku
mdo100 116 Messages postés jeudi 9 décembre 2010Date d'inscription 21 mai 2018 Dernière intervention - 8 sept. 2017 à 17:24
0
Merci
Bonjour toutes et tous,

Un essai en colonne "A":
=MOYENNE(SI(LIGNE(A:A)>=GRANDE.VALEUR(SI(ESTNUM(A:A);LIGNE(A:A));30);SI(ESTNUM(A:A);A:A)))

Formule matricielle a valider avec ctrl + maj +entrée

Cordialement.
Magnum812 6 Messages postés vendredi 8 septembre 2017Date d'inscription 11 septembre 2017 Dernière intervention - 9 sept. 2017 à 10:43
Bonjour mdo100,

Désolé pour la réponse tardive, je vais essayer ça (au plus tard lundi) et je te tiens au courant.
Un grand merci pour ton aide.

Bon weekend,
Cordialement...
Commenter la réponse de mdo100