J'ai des nombres dans la plage D7: D et il y a des moments où certaines cellules sont vides. Je veux la moyenne des 7 derniers chiffres mais sauter les blancs. Donc, si dans les 7 derniers il n'y en a que 3 qui sont pleins, je veux qu'il aille plus loin et trouve 7 au total et les moyenne.
google-sheets
formulas
google-sheets-query
google-sheets-arrayformula
filter
Bob l'éponge Carré
la source
la source
TL; DR
Exemple
Explication
=COUNT(A:A)
. Les cellules contenant du texte ne seront pas comptées. Notre exemple nous donnerait9
=COUNT(A:A)-7
. Cela nous donnera un2
.Maintenant, nous utilisons la fonction de décalage pour obtenir une plage d'une colonne complète mais avec un décalage de 2 cellules, ce qui signifie effectivement qu'il ne reste qu'une partie d'une colonne avec exactement 7 valeurs restantes
Imaginez une colonne sans cellules vides avant la première cellule avec des valeurs. Un exemple simplifié pourrait alors ressembler
=OFFSET(A:A; COUNT(A:A)-7 ;0)
. Mais cela ne fonctionnera pas dès que la colonne commencera avec des cellules vides comme indiqué dans l'image ci-dessusNous devons maintenant étendre notre décalage par le nombre de cellules vides. Cela ne signifie pas que nous comptons toutes les valeurs vides d'affilée. Juste ceux avant la première cellule non vide.
Vous pouvez les compter avec
=MATCH(TRUE;INDEX(A:A<>0);0)-1
et obtenir6
comme résultat ou notre exempleMaintenant, nous modifions notre fonction de décalage et ajoutons ce nombre pour obtenir la plage correcte contenant seulement 7 valeurs
OFFSET(A:A; COUNT(A:A)-7 + MATCH(TRUE;INDEX(A:A<>0);0)-1 ;0)
Comme dernière étape, nous calculons la moyenne de cette plage. Notre exemple nous donnerait 4 comme résultat puisque la moyenne de 1,2,3,4,5,6,7 est de 4.
=AVERAGE(OFFSET(A:A;COUNT(A:A)-7 + MATCH(TRUE;INDEX(A:A<>0);0)-1;0))
la source
Encore une autre façon:
Explantion:
EDIT: Désolé pour un malentendu. Ce qui précède fait la moyenne des 7 PLUS GRANDES valeurs, et non les 7 dernières valeurs d'une colonne. Pour faire la moyenne des 7 dernières valeurs, la solution de Normal Human est excellente. Une autre manière avec moins de fonctions serait d'utiliser QUERY ()
En supposant les données numériques de la colonne A, essayez:
la source
la source