Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1120to1124
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

Konvertierung von Zeitdaten

Konvertierung von Zeitdaten
Zeitdaten
Hallo,
ich habe eine Logdatei. In der ersten Spalte steht der Anfang, in der zweiten das Ende und in der dritten Spalte der Operator. (Siehe Blatt „Quelle“)
Damit ein anderes Programm diese Daten versteht müssen die Daten in 15 Minuten Abschnitte gerastert werden. Diese habe ich im Blatt „gerastert“ getan.
Nun brauch ich jedoch die Daten untereinander. Der Zeitschritt bleibt bei 15 Minuten und steht in der ersten Spalte, jedoch soll neben jedem Zeitintervall der Operator stehen, der in diesen Moment eingeloggt war.
Nicht genutzten Zeiten sollte mit einem „-„ gekennzeichnet werden. Im Blatt „Ziel“ steht das Wunschformat.
Im Blatt “Ausgabe“ habe ich mich daran versucht. Komme jedoch nicht weiter.
Kann mir jemand helfen?
https://www.herber.de/bbs/user/66170.xls
Besten Dank
Roland

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Formellösung SVerweis
25.11.2009 19:44:37
Daniel
Hi
du brauchst diese Formel im Blatt "Ausgabe" Zelle B3 (dort eintragen und dann nach unten kopieren)
=WENN(UND(SVERWEIS(A3;gerastert!A:C;1;1)<=A3;SVERWEIS(A3;gerastert!A:C;2;1)>A3);SVERWEIS(A3; gerastert!A:C;3;1);"-")
Gruß, Daniel
AW: Formellösung SVerweis
26.11.2009 19:24:52
Roland
Hallo Daniel und ihr Anderen,
auf Sverweis wäre ich nicht gekommen und es klappt auch super.
Eine Ausnahme: wenn Datumswechsel ist, dann kommt Excel durcheinander und schreibt nur "'#NV".
Ich vermute es liegt an der Formatierung, kann die Lösung aber nicht finden.
https://www.herber.de/bbs/user/66213.xls
Grüße
Roland
Anzeige
AW: Formellösung SVerweis
26.11.2009 20:42:09
frigo
Hi Roland,
ich habe mir Deine Datei zwar nicht angeschaut, aber ersetze mal in Sverweis den letzten Parameter 1 durch 0. (Hintergrund dazu findest Du in der Erklärung der Funktion.)
d.h.
=WENN(UND(SVERWEIS(A3;gerastert!A:C;1;0)A3);SVERWEIS(A3; gerastert!A:C;3;0);"-")
Gruß,
frigo
AW: Deine Zeitleiste hat nen Fehler
26.11.2009 22:35:01
Daniel
in der Zeile , in der der NV-Fehler kommt ist der Zeitwert falsch:
19.11.2009 23:45
19.11.2009 00:00
20.11.2009 00:15
da muss 20.11.2009 00:00:00 hin und nicht der 19.11, das wäre ja der Vortag.
außerdem ist der 19.11.2009 00:00 kleiner als der kleinste Wert in der Suchmatrix (19.11.2009 06:00), das erzeugt den Fehler.
du musst hier dein Makro korrigiern, daß die Zeitleiste erstellt, da ist irgendwo ein Bug drin.
Gruß, Daniel
Anzeige
AW: Deine Zeitleiste hat nen Fehler
26.11.2009 23:15:49
Roland
Ich benutze eine einfache For-Next- Schleife:
For i = anfang To ende - 1.04166666642413E-02 Step 1.04166666642413E-02
Cells(c, a) = i
If i = Int(i) Then
Cells(c, a) = i + 1
End If
Cells(c, a + 1).FormulaLocal = "=WENN(UND(SVERWEIS(A" & c & ";gerastert!A:C;1;1)A" & c & ");SVERWEIS(A" & c & "; gerastert!A:C;3;1);" & Chr(34) & "-" & Chr(34) & ")"
Cells(c, a + 2).FormulaLocal = "=SVERWEIS(B" & c & ";Liste!B:C;2;0)"
c = c + 1
Next i
Irgendwie zählt die Schleife falsch.
Wenn ich in eine Zahl das Datum konventiere, dann kommt:
40136,97917
40136,98958
40136,00000
40137,01042
40137,02083
Der Versuch:
If i = Int(i) Then
Cells(c, a) = i + 1
End If
klappt auch nicht :-((((((
Anzeige
AW: Problem sind die Variablentypen
29.11.2009 20:35:27
Daniel
Hi
dein Problem ist, daß bei der Umandlung der Variablen in die verschiedenen Typen (i ist DATE, der Zellwert aber eigentlich Double) wahrscheinlich ein paar Bugs drin sind bzw die kleinen Ungenauigkeiten, die dadurch entstehen, daß wir menschen dezimal rechen, der Computer hingegen binär.
Das Problem lässt sich einfach lösen, wenn du die Variable i als DOULE deklarierst.
dazu noch ein kleiner Hinweis, du musst jeder Variable den Datentyp zuweisen, auch wenn die deklarierung in einer Zeile stehen, in
Dim anfang, ende , i As Date

sind "anfang" und "ende" Variant-Variablen, nur "i" ist Date.
so sollte es funktionieren:
Dim anfang As Double, ende As Double, i As Date
Gruß, Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige