Interpolieren?!
#1
Hallo ...
ich habe folgendes Problem:

ich habe einen Datensatz der alle sechs Sekunden einen Wert liefert. Ich muss jedoch jede Sekunde einen Wert haben. 

16:12:59 28,9
16:13:00 28,9
16:13:01 28,9
16:13:02 28,9
16:13:03 21,3
16:13:04 21,3
16:13:05 21,3
16:13:06 21,3
16:13:07 21,3
16:13:08 21,3
16:13:09 20,1
16:13:10 20,1

Ich möchte gerne einen Graphen generieren der wie folgt aussieht:

   

Die rote Linie soll aus den oben gezeigten Werten generiert werden. 

Hat da jemand einen Tip? 

Liebe Grüße
Top
#2
Code:
Sub Test()
S = TimeValue("00:00:01")
lr = Cells(Rows.Count, "A").End(xlUp).Row
'Liste mit jeweils 1 Sekunde generieren
i = 2
For j = 2 To lr
   Cells(i, "D") = Cells(j, "A")
   Cells(i, "D").NumberFormat = "hh:mm:ss"
   Cells(i, "E") = Cells(j, "B")
   For k = 1 To 5
   Cells(i + k, "D") = Cells(i + k - 1, "D") + S
   Cells(i + k, "D").NumberFormat = "hh:mm:ss"
   Next k
   i = i + 6
Next j
'Interpolieren
lr = Cells(Rows.Count, "D").End(xlUp).Row
For i = 2 To lr Step 6
Anf = Cells(i, "E")
Ende = Cells(i + 6, "E")
diff = (Ende - Anf) / 6
   For j = 1 To 5
   Cells(i + j, "E") = Cells(i + j - 1, "E") + diff
   Cells(i + j, "E").Font.Color = vbRed
   Next j
Next i
End Sub
Hallo,

nach einigen Versuchen mit Formeln (die an Rundungsfehlern gescheitert sind) ist im Anhang ein vba-Lösung. Die Bereiche müssen noch angepasst werden.

Der Makro generiert zuerst eine Reihe im Abstand 1 Sekunde und im zweiten Schritt wird interpoliert. Es ist zu raten das Script zuerst im Einzelschritt-Modus bzw mit 'breakpoints' zu testen.

mfg


Angehängte Dateien
.xlsm   Georg_H.xlsm (Größe: 35,99 KB / Downloads: 1)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste