Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1800to1804
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Schleife gibt nur den letzten Wert wider

Schleife gibt nur den letzten Wert wider
16.12.2020 12:43:02
Patrick
Hallo zusammen,
ich möchten den rollierenden Zusammenhang zwischen zwei Kennzahlen über den Zeitverlauf messen.
Dazu habe ich folgendes Makro geschrieben:
[quote]
Sub rolling_correlations()
Dim Arbeitsmappe As Workbook
Dim Datenbasis As Worksheet
Dim Ziel As Worksheet
Dim Bereich As Range
Dim WsF As WorksheetFunction
Dim letzteZeile As Long
Dim letzteZeile1 As Long
Dim i, n As Long
Set Arbeitsmappe = ThisWorkbook
Set Datenbasis = Arbeitsmappe.Worksheets("Time_Series")
Set Ziel = Arbeitsmappe.Worksheets("Correlation")
Set WsF = Application.WorksheetFunction
Datenbasis.Activate
letzteZeile = ActiveSheet.Cells(Rows.Count, 40).End(xlUp).Row
Ziel.Activate
letzteZeile1 = ActiveSheet.Cells(Rows.Count, 27).End(xlUp).Row
'Berechnung der rollierenden Korrelationen
Datenbasis.Activate
For y = 3 To letzteZeile1
For i = 364 To letzteZeile
Ziel.Cells(y, 28).Value = WsF.Correl(Range(Cells(i - 11, 41), Cells(i, 41)), Range( _
Cells(i - 11, 42), Cells(i, 42)))
Next
Next
End Sub

[/quote]
Mein Problem ist, dass zwar die Berechnung richtig ist, aber in allen Zellen (y) der letzte berechnete Wert steht.
Ich habe mir das jetzt ca. eine Stunde angesehen und habe einfach ein Brett vor dem Kopf.
Würde mich freuen, wenn mich einer von euch unterstützen könnte.
BG
Patrick

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife gibt nur den letzten Wert wider
16.12.2020 13:47:32
Yal
Hallo Patrick,
Du lasst es zwar von i = 364 bis Letzte berechnen, schreibt aber alles auf Cells(y, 28) während y sich nicht bewegt.
Du bekommst dann nur soviele Ergebnisse wie LetzteZeile1 - 3 + 1 (übergeordnete Schleife).
Zwecks Lesbarkeit schlage ich folgendes vor (ändert nicht am Problem):
For y = 3 To letzteZeile1
For i = 364 To letzteZeile
Set R1 = Datenbasis.Range(Cells(i - 11, 41), Cells(i, 41))
Set R2 = Datenbasis.Range(Cells(i - 11, 42), Cells(i, 42))
Ziel.Cells(y, 28).Value = WsF.Correl(R1, R2)
Next
Next
VG Yal
AW: Schleife gibt nur den letzten Wert wider
16.12.2020 14:08:01
Patrick
Die Lesbarkeit ist wirklich deutlich besser. Nur hast du natürlich recht. Das Problem bleibt :-(
Anzeige
AW: Schleife gibt nur den letzten Wert wider
16.12.2020 14:25:27
Yal
Wärst Du in der Lage, eine Beispieldatei hochzuladen?
Nachzubauen ist hier nicht sinnvoll.
VG
Yal

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige