Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Makro für Mittelwertberechnung





Frage

Hallo, kann mir jmd mit einem Makro weiterhelfen, welches den Mittelwert für jeweils 10 Werte ausrechnet? Es sind an die 50000 Werte die ich bei Excel verarbeiten (zeichnen, rechnen) möchte und diese sollen auf ein normales Maß normieren. Also nochmal kurz: 50000 Werte und jeweils 10 Werte sollen immer zu einem Mittelwert zusammengefasst werden, d.h. am Ende nur noch 5000 Werte. Vielen Dank für eure Hilfe!!!

Antwort 1 von rainberg

Hallo Sandra,

die Ausgangswerte stehen in A1:A50000
die errechneten Mittelwerte schreibt das Makro in B1:B5000

Option Explicit

Sub mittelwert()
Dim lngi As Long, intN As Integer
intN = 1
Application.ScreenUpdating = False
For lngi = 1 To 130 Step 10
Cells(intN, 2).Value = _
WorksheetFunction.Average(Range(Cells(lngi, 1), Cells(lngi + 9, 1)))
intN = intN + 1
Next
Application.ScreenUpdating = True
End Sub

Gruß
Rainer

Antwort 2 von gast72

Hallo Rainer

sollte es nicht For Ingi=1 to 50000 Step 10 heisen?

kollegialen Gruß

Antwort 3 von rainberg

Korrektur:

For lngi = 1 To 130 Step 10 muss heißen

For lngi = 1 To 50000 Step 10

(ich hatte mit nur 130 Zeilen getestet)

Gruß
Rainer

Antwort 4 von Sandra85

Vielen Dank euch beiden! Ich werde es morgen gleich mal ausprobieren.
Bye

Antwort 5 von Sandra85

Super, es funktioniert!
Ich weiss nicht ob es moeglich ist und es muss auch nicht unbedingt sein, aber es waer super wenn ich auch noch ein Makro haette welches das ganze fuer 2 Spalten anwendet. Also in A und B stehen Werte und die Mittelwerte sollen dann jeweils in C und D geschrieben werden.

Wenn es geht waer es fantastisch wenn nicht geht es auch so...

Dankeschoen!

Antwort 6 von rainberg

Hallo Sandra,

es ist fantastisch :-))

Option Explicit

Sub mittelwert()
Dim lngi As Long, intN As Integer
intN = 1
Application.ScreenUpdating = False
For lngi = 1 To 50000 Step 10
Cells(intN, 3).Value = _
WorksheetFunction.Average(Range(Cells(lngi, 1), Cells(lngi + 9, 1)))
Cells(intN, 4).Value = _
WorksheetFunction.Average(Range(Cells(lngi, 2), Cells(lngi + 9, 2)))
intN = intN + 1
Next
Application.ScreenUpdating = True
End Sub

Gruß
Rainer

Antwort 7 von Sandra85

Wirklich fantastisch :)

Vielen Dank nochmal! und schoenes Wochenende.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: