XL 2019 Moyenne sur plage variable

millaw

XLDnaute Nouveau
Bonjour à tous,

Dans mon fichier ci-joint, j'ai deux calculs de moyenne.
Dans la colonne I, je veux la moyenne sur les 3 derniers résultats de la colonne H.
et dans la colonne J, je veux la moyenne sur les 5 derniers résultats de la colonne H.

Comme dans l'exemple, il se peut que certaines lignes de la colonne H soient vides.
De fait, faudrait que la plage de moyenne s'adapte en fonction des lignes vides afin de toujours avoir 5 valeurs pour la moyenne.

Dans les cellules I27 et J27, je passe par des OU et des ET mais c'est un fastidieux et il faut penser à tous les cas...
D'autant que je peux avoir 3 lignes d'affilées qui peuvent être vides ou deux lignes vides-une valeur-de nouveau deux lignes. du coup ça peut faire remonter haut.

d'avance merci de votre aide
 

Pièces jointes

  • exemple calcul moyenne.xlsx
    18.3 KB · Affichages: 1

xUpsilon

XLDnaute Accro
Bonjour,

Essayer avec ceci en colonne I : =MOYENNE(DECALER([@[ECART MG]];0;0;-3-NB.SI(INDIRECT("H"&LIGNE()-3&":H"&LIGNE());"");1))

Et ceci en colonne J : =MOYENNE(DECALER([@[ECART MG]];0;0;-5-NB.SI(INDIRECT("H"&LIGNE()-5&":H"&LIGNE());"");1))

Bonne journée,
 

millaw

XLDnaute Nouveau
Bonjour,

Essayer avec ceci en colonne I : =MOYENNE(DECALER([@[ECART MG]];0;0;-3-NB.SI(INDIRECT("H"&LIGNE()-3&":H"&LIGNE());"");1))

Et ceci en colonne J : =MOYENNE(DECALER([@[ECART MG]];0;0;-5-NB.SI(INDIRECT("H"&LIGNE()-5&":H"&LIGNE());"");1))

Bonne journée,
Même si je n'arrive pas à comprendre le principe de Décaler et indirect, Merci pour ce retour super rapide!
ça marche très bien ces formules jusqu'à un certain nombre de lignes vides.
j'ai remis l'exemple avec les formules, mais en gros si j'ai trop de lignes vides, il va faire la moyenne sur moins de résultats.
 

Pièces jointes

  • exemple calcul moyenne v2.xlsx
    25.7 KB · Affichages: 5

xUpsilon

XLDnaute Accro
Oui ça s'arrête à 3 lignes vides de suite.
Si il faut quelque chose de plus poussé il va falloir que je m'y penche plus longtemps parce que ça se complique.
DECALER(x,y,a,b) permet de faire rentrer un tableau dans une formule en gros, tout en permettant de le redimensionner. On part d'une référence (une ou plusieurs cellules) puis on décale cet ensemble de cellules de x cellules vers le bas, de y cellules vers la droite, on étend la plage de a lignes vers le bas, et de b lignes vers la droite.
INDIRECT permet de rentrer sous forme de texte l'adresse d'une cellule. Par exemple tu cherches une ligne avec EQUIV -> tu veux intégrer cette ligne dans une fonction, sauf que écrire "=Feuil1!A" & EQUIV(...)" ça ne fonctionne pas, parce que le = avec une cellule derrière n'accepte qu'une chaine de caractères d'un certain format. INDIRECT te permet de contourner ça en traduisant une chaine de caractères en une adresse compréhensible pour être utilisée dans une formule.

Bonne journée,
 

Discussions similaires

Statistiques des forums

Discussions
315 127
Messages
2 116 537
Membres
112 771
dernier inscrit
mikadu49