Forum: PC-Programmierung Excel Zeitinterval vereinheitlichen


von Peter G. (peterdergrosse)


Lesenswert?

Hi

Ich habe einen CSV Datensatz mit Zeitstempel und einem  Wert "Stückzahl" 
in jeder Zeile. Der Zeitinterval ist immer unterschiedlich, manchmal 
sind pro Sekunde 20 Zeilen, manchmal in 10 Sekunden bloß eine.

Gibt es eine eine Funktion, wie ich den Interval vereinheitliche? Also 
dass ich z.B. 1 Sekunde vorgebe und ich erhalte eine Liste mit 60 Zeilen 
pro Minute?

von Philipp K. (philipp_k59)


Lesenswert?

Hm.. sollen die 10 Zeilen dann nur einen Zeitstempel mit 0 stück haben 
und bei 20 die Sekunde die Gesamte Stückzahl der Sekunde?

von Yalu X. (yalu) (Moderator)


Lesenswert?

Peter G. schrieb:
> Gibt es eine eine Funktion, wie ich den Interval vereinheitliche?

Vermutlich nicht, dafür ist die gewünschte Funktion zu speziell.

In VBA geht aber (fast) alles.

Da aber eine CSV-Datei als Eingabe gegeben ist und vermutlich eine
ebensolche als Ausgabe erzeugt werden soll, kann man sich den
beschwerlichen Umweg über Excel auch sparen und die Konvertierung
stattdessen mit ein paar Zeilen Python vornehmen.

Wenn du anhand eines Beispiels zeigst, wie eine typische Eingabedatei
aussieht und was du als Ausgabedatei erwartest, kann ich dir bei der
Erstellung des Python-Progrämmchens gerne helfen.

: Bearbeitet durch Moderator
von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Peter G. schrieb:
> Hi
>
> Ich habe einen CSV Datensatz mit Zeitstempel und einem  Wert "Stückzahl"
> in jeder Zeile. Der Zeitinterval ist immer unterschiedlich, manchmal
> sind pro Sekunde 20 Zeilen, manchmal in 10 Sekunden bloß eine.
>
> Gibt es eine eine Funktion, wie ich den Interval vereinheitliche? Also
> dass ich z.B. 1 Sekunde vorgebe und ich erhalte eine Liste mit 60 Zeilen
> pro Minute?

Nein, sowas musst du dir bei Bedarf selbst programmieren. VBA existiert.

von Peter G. (peterdergrosse)


Lesenswert?

ich habs nun gelöst, wennauch etwas unschön:
ich gebe auf einer neuen Tabelle einen Interval vor, z.B. 5 Sekunden:

         A             B
1    13:00:00      13:00:04
2    13:00:05      13:00:09
3    13:00:10      13:00:14

anchließend in Spalte C summiere ich mit sumif und der Kondition: 
Zeitstempel des jeweiligen Eintrags Größergleich A und Kleinergleich B

von Jan K. (jan_k776)


Lesenswert?

Das Ganze nennt sich übrigens resampling und es scheint schon so, als 
würde das direct in Excel gehen: 
https://www.exceldemy.com/excel-resample-time-series/

Was du dir dabei aber immer überlegen musst: Wo kommen die zusätzlichen 
Infos her oder ist es okay, wenn einfach welche weggelassen werden. Ist 
eine lineare Interpolation zwischen den Daten in Ordnung, oder nimmst du 
lieber den am nahesten dranliegenden Datensatz, oder summierst du die 
Werte dazwischen auf? Oder nimmst den Median? Gibt zig Möglichkeiten - 
je nach Anwendung.

Du wirst kein Matlab haben, aber hier in der Doku sind ne Menge Bilder 
und Erklärungen: https://www.mathworks.com/help/signal/ref/resample.html 
und https://www.mathworks.com/help/matlab/ref/timetable.retime.html

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.