Mam liczby w zakresie D7: D i zdarza się, że niektóre komórki są puste. Chcę średnią z ostatnich 7 liczb, ale pomijam puste. Więc jeśli w ostatnich 7 są tylko 3, które są pełne, chcę, aby cofnął się dalej i znalazł 7 w sumie i uśrednił je.
google-sheets
formulas
google-sheets-query
google-sheets-arrayformula
filter
SpongeBob Kanciastoporty
źródło
źródło
TL; DR
Przykład
Wyjaśnienie
=COUNT(A:A)
. Komórki zawierające tekst nie będą liczone. Nasz przykład dałby nam9
=COUNT(A:A)-7
. To da nam2
.Teraz używamy funkcji przesunięcia, aby uzyskać zakres pełnej kolumny, ale z przesunięciem 2 komórek, co oznacza, że mamy tylko część kolumny z dokładnie 7 wartościami pozostałymi
Wyobraź sobie kolumnę bez pustych komórek przed pierwszą komórką z wartościami. Wtedy może wyglądać uproszczony przykład
=OFFSET(A:A; COUNT(A:A)-7 ;0)
. Ale to nie zadziała, gdy kolumna zacznie się od pustych komórek, jak pokazano na powyższym obrazkuTeraz musimy rozszerzyć nasze przesunięcie o liczbę pustych komórek. Nie oznacza to, że zliczamy wszystkie puste wartości z rzędu. Tylko te przed pierwszą niepustą komórką.
Możesz je policzyć
=MATCH(TRUE;INDEX(A:A<>0);0)-1
i otrzymać6
w wyniku lub nasz przykładTeraz modyfikujemy naszą funkcję przesunięcia i dodajemy tę liczbę, aby uzyskać prawidłowy zakres zawierający tylko 7 wartości
OFFSET(A:A; COUNT(A:A)-7 + MATCH(TRUE;INDEX(A:A<>0);0)-1 ;0)
W ostatnim kroku obliczamy średnią tego zakresu. Nasz przykład dałby nam 4 jako wynik, ponieważ średnia 1,2,3,4,5,6,7 wynosi 4.
=AVERAGE(OFFSET(A:A;COUNT(A:A)-7 + MATCH(TRUE;INDEX(A:A<>0);0)-1;0))
źródło
Jeszcze inny sposób:
Wyjaśnienie:
EDYCJA: Przepraszamy za nieporozumienie. Powyższe uśrednia wartości NAJWIĘKSZYCH wartości 7, a nie ostatnich 7 wartości w kolumnie. Uśrednianie ostatnich 7 wartości Rozwiązanie Normal Human jest świetne. Alternatywnym sposobem z mniejszą liczbą funkcji byłoby użycie QUERY ()
Zakładając dane liczbowe w kolumnie A, spróbuj:
źródło
źródło