Wie berechne ich 30 min Mittelwerte in VBA?
Hallo Zusammen ,
ich bin leider wirklich nicht fit was das Thema Makro schreiben angeht deshalb habe ich folgendes Problem:
Ich habe mehrer Spalten mit etwa 1000 Zeilen voller Daten. Es handelt sich dabei um Minutenwerte. Diese würde ich gerne in 30 min Werte zusammenfassen. Da das händisch ewig dauert bräuchte ich dafür ein Makro welches den Mittelwert bildet und 3 Spalten weiter in der ersten Zeile (wo auch der erste Werte der zur Mittelwertsberechnung rangezogen wird notiert ist). Dann soll der nächste Mittelwert mit den Folgenden 29 Minuten-Werten gebildet werden, 3 Spalten weiter unter dem vorherigen Mittelwert notiert werden.
Folgendes habe ich versucht:
Sub Halbstundenmittelwerte()
Dim i As Integer
Dim z As Integer
Dim x As Integer
Dim MW As Double
For i = 10 To 15010 Step 30
z = i
x = z + 29
Range(Hz).Select
ActiveCell.FormulaR1C1 ="= AVERAGE("Cz:Cx")"
Range(Hi).Value = MW
Next i
End Sub
Danke euch !
4 Antworten
ActiveCell.FormulaR1C1 ="= AVERAGE(C" & z & ":C" & x & ")"
Vielleicht geht das so, hab es nicht getestet.
Wo kommt der Wert MW her?
Da passt so Einiges nicht und das müsste dir der Interpreter eigentlich auch anzeigen. Du musst zwischen Textkonstanten und Variablen unterscheiden. Innerhalb von Textkonstanten musst du " entwerten.
Range("H"&z).Select
ActiveCell.FormulaR1C1 ="=AVERAGE(""C"&z&":C"&x&""")"
Range("H"&i).Value = MW
(ungetestet)
- Alternativ könntest du versuchen, die entsprechende Worksheetfunction für den Mittelwert zu verwenden.
- Desweiteren verzichte am besten weitesgehend auf .Select im VBA-Code.
- MW wird kein Wert zugewiesen.
- Die Variablenbezeichnungen solltest du für den Anfang sprechender wählen.
- Wenn z = i, wozu benötigst du z?
Stimmt absolut! Select raubt nur endlos Zeit und ist in VBA für die Fische.
Das würde ich per Formel machen, nicht mit VBA.
Aber ich verstehe nicht, was Du mit "3 Spalten weiter unter dem vorherigen Mittelwert meinst". 3 Zeilen? Was ist mit den beiden Zeilen dazwischen? Bleiben die leer?
Ein Beispiel der Tabelle wäre wirklich hilfreich.
Kannst du dazu mal ein Bild machen, wie die Tabelle aussieht und mit 1-2 händisch eingetragenen Ergebnissen, damit man versteht, was du haben willst?
Du willst Minuten in halbe Stunden umrechnen? also z.B. aus 90 Minuten sollen 3 halbe Stunden werden und aus 10 Minuten sollen 0,3333 halbe Stunden werden?
Und davon hast du dann jeweils 30 Werte, von denen du den Mittelwert bilden und in jede 30ste Zeile schreiben willst?