Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1072to1076
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

Problem beim Vergleich von Uhrzeiten

Problem beim Vergleich von Uhrzeiten
04.05.2009 21:19:47
Uhrzeiten
Hallo und Guten Abend,
ich bastle schon eine gute Weile an einem Vergleich von Uhrzeit, eigentlich ganz einfach:
Userbild
Wenn die Uhrzeit zwischen Zeit1 und Zeit2 übereinstimmt, dann soll die Zahl neben
Zeit2 an die richtige Stelle neben Zeit2 übertragen werden. Mit diesem einfachen, kleinen
Skript:
Sub test() For z1 = 2 To 30 Zeit1 = Cells(z1, 1) - Int(Cells(z1, 1)) 'die Sekunden werden zu den Minuten gezählt und die Minuten gerundet Zeit1 = Round(Minute(Zeit1) + Second(Zeit1) / 60, 0) / 60 / 24 For z2 = 2 To 50 Zeit2 = Cells(z2, 6) If Zeit1 = Zeit2 Then 'schreibe einfach die Zahl neben Zeit1 neben Zeit2 Cells(z2, 7) = Cells(z1, 2) Exit For End If Next z2 Next z1 End Sub


Wie man im Bild sieht funktioniert es aber nicht bei allen Zahlen/Zeiten. Und ich verstehe
einfach nicht warum. Kann mir bitte jemand einen Tipp geben?
Hier die Mappe
https://www.herber.de/bbs/user/61608.xls
Danke,
Born

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem beim Vergleich von Uhrzeiten
04.05.2009 21:38:55
Uhrzeiten
Hallo M?,
dazu braucht's kein VBA.
Tabelle1

 ABCDEFGH
1Zeit 1    Zeit 2Übertrag 
203.05.2009 00:01:221   00:00:00  
303.05.2009 00:02:522   00:01:001 
403.05.2009 00:04:063   00:02:002 
503.05.2009 00:05:474   00:03:00  
603.05.2009 00:07:025   00:04:003 
703.05.2009 00:08:516   00:05:00  
803.05.2009 00:10:387   00:06:00  
903.05.2009 00:12:168   00:07:005 
1003.05.2009 00:14:169   00:08:006 
1103.05.2009 00:15:4510   00:09:00  
1203.05.2009 00:17:2411   00:10:00  
1303.05.2009 00:18:4912   00:11:00  
1403.05.2009 00:20:0913   00:12:008 

Bedingte Formatierungen der Tabelle
ZelleNr.: / BedingungFormat
F21. / Formel ist =WENN($D1<>#BEZUG!;1;0)Abc


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Sepp

Anzeige
Oups! Falsch ausgewählt;-(( o.T.
04.05.2009 21:41:03
Josef
Hallo nochmal,
hier die richtige Tabelle.
Tabelle1

 ABCDEFGH
1Zeit 1    Zeit 2Übertrag 
203.05.2009 00:01:221   00:00:00  
303.05.2009 00:02:522   00:01:001 
403.05.2009 00:04:063   00:02:002 
503.05.2009 00:05:474   00:03:00  
603.05.2009 00:07:025   00:04:003 
703.05.2009 00:08:516   00:05:00  
803.05.2009 00:10:387   00:06:00  
903.05.2009 00:12:168   00:07:005 
1003.05.2009 00:14:169   00:08:006 
1103.05.2009 00:15:4510   00:09:00  
1203.05.2009 00:17:2411   00:10:00  
1303.05.2009 00:18:4912   00:11:00  
1403.05.2009 00:20:0913   00:12:008 

Formeln der Tabelle
ZelleFormel
G2{=WENN(ISTFEHLER(VERGLEICH(F2;ZEIT(STUNDE($A$2:$A$34); MINUTE($A$2:$A$34); 0); 0)); "";VERGLEICH(F2;ZEIT(STUNDE($A$2:$A$34); MINUTE($A$2:$A$34); 0); 0))}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Sepp

Anzeige
AW: Oups! Falsch ausgewählt;-(( o.T.
04.05.2009 23:12:51
MBorn
Hallo Sepp,
wenn es nur die paar Zeilen wären, wäre es sicher besser, es mit einer Excel-Formel zu lösen,
aber bei 150000 Zeilen lohnt es sich dann schon. Mit der Matrix-Formel (die übrigens nciht
uninteressant ist) geht Excel dann mächtig in die Knie.
Gruß,
Born
AW: Rechenungenauigkeit von Excel
04.05.2009 23:13:03
Excel
Hi
bei solchen Vergleichen schlagen schon mal die kleinen Rechenungenauigkeiten von Excel zu.
das kannst du allerdings umgehen, in dem du die Minutenwerte von Zeit1 und Zeit2 als Ganzzahlen belässt und nicht in Excel-Zeiten zurückrechnest:

Sub test()
Dim Z1 As Long, z2 As Long
Dim Zeit1 As Long, Zeit2 As Long
For Z1 = 2 To 30
'die Sekunden werden zu den Minuten gezählt und die Minuten gerundet
Zeit1 = Round(Minute(Cells(Z1, 1)) + Second(Cells(Z1, 1)) / 60, 0)
For z2 = 2 To 50
Zeit2 = Minute(Cells(z2, 6))
If Zeit1 = Zeit2 Then
'schreibe einfach die Zahl neben Zeit1 neben Zeit2
Cells(z2, 7) = Cells(Z1, 2)
Exit For
End If
Next z2
Next Z1
End Sub


desweiteren solltes du dich dringen mal mit dem Thema Variablendeklaration und der Verwendung von OPTION EXPLICIT auseinandersetzen.
Gruß, Daniel

Anzeige
AW: Rechenungenauigkeit von Excel
05.05.2009 11:36:08
Excel
Ok, danke.
Born

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige