Clever-Excel-Forum

Normale Version: Mittelwert aus je 3 Zeilen über 35k Zeilen hinweg
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

Ich suche gerade einen Weg, wie ich einen Datensatz über 35k Zeilen um ein Vielfaches zusammenziehen kann. Ich möchte folgendes tun:

A1
A2
A3                               =MITTELWERT(A1:A3)
A4
A5
A6                               =MITTELWERT(A4:A6)
A7
A8
A9                               =MITTELWERT(A7:A9)
usw.                            =MITTELWERT(A10:...)

Kann mir jemand da eine nette Lösung bieten? Wenn ich die "runter zieh" Funktion von Excel verwende, dann wiederholt es schlicht diese 3er Sprunge (Also nach (A7:A9) kommt dann wieder (A4:A6)). Ich möchte aber nicht, dass sich der Ablauf wiederholt, sondern dass sich der Ablauf durchgliedert bis ans Ende der 35k Zeilen.

Hat jemand eine Ahnung, wie ich das am besten hinkriege?

Zusatz: Gibt es ein Kommando, mit dem ich Formeln beliebig weit nach unten ziehen kann? Rein mit dem Mauszeiger die Ecke einer Zelle zu fassen und runter zu ziehen dauert bei grösserer Anzahl Zeilen unnötig lange...

Wäre sehr froh und Hilfestellungen dazu! :)

Liebe Grüsse
Luca
Hallo Luca,

Formel in A3: =WENN(REST(ZEILE();3)=0;MITTELWERT(A1:A3);"")

und dann Doppelklick auf das Kästchen des Markierungsrahmens von A3 rechts unten zum Autoausfüllen.

Edit: Formel gehört natürlich in B3. Blush

Gruß Uwe
B1: =MITTELWERT(INDEX(A:A;ZEILE(B1)*3-2):INDEX(A:A;ZEILE(B1)*3))

ist für Dein Vorhaben sinnvoller
So in etwa?
Hallo alle zusammen!

Vielen Dank für alle guten Antworten! Ich habe auch gleich alle ausprobiert und mich nun für die Formel von LCohen entschieden, das hat perfekt gepasst!

Danke danke danke dafür, auf eine solche Formel wäre ich nie gekommen! :)

Liebe Grüsse
Luca
In VBA:


Code:
Sub M_snb()
   sn = Columns(1).SpecialCells(2, 1)
   ReDim sp(UBound(sn) \ 3, 0)
   
   For j = 3 To UBound(sn) Step 3
       sp(j \ 3 - 1, 0) = (sn(j - 2, 1) + sn(j - 1, 1) + sn(j, 1)) / 3
   Next
   
   Cells(1, 2).Resize(UBound(sp)) = sp
End Sub