Supportnet / Forum / Tabellenkalkulation
Negative Stunden Anzeigen
Frage
Hallo!
Ich habe folgendes Problem,ich möchte in Excel 2 Zellen voneinander subtrahieren.Das geht auch einwandfrei,wobei die Ergebnisszelle und die beiden Berechnungszellen im Format Uhrzeit formartiert sind.Wenn ich aber die größere Uhrzeit von der kleineren abziehe möchte ich das eine negative Zeit entsteht,es erscheint aber nur"#########".
Giebt es eine Möglichkeit das zu umgehen?
Danke für Eure Hilfe.
Antwort 1 von MasterOfHardness
Geht:
angenommen, in Zelle A1 steht deine errechnete Zeit, ob positiv oder negativ ist jetzt egal:
Excel behandetl Zeitformate intern wie ganz normale Zahlen. Hier wird nun zunächst geprüft, ob der Wert in A1 positiv oder gleich 0 ist, in diesem Fall wird der Wert ohne weitere Änderungen übernommen.
Andernfalls wird ein - geschrieben, der Wert in A1 mit -1 mulpipliziert (also positiv gemacht) und anschließend der "Wert der Stunde" daraus berechnet. Nun wird der Doppelpunkt geschrieben und das selbe mit den Minuten wiederholt. Die &-Zeichen verknüpfen das alles miteinander.
Mit den hier angezeigten Werten kann man nicht weiterrechnen, ist aber nicht weiter tragisch. Es gibt ja noch A1, da steht ja die errechnete Zeit ohne irgendwelche Änderungen.
Stört A1 auf dem Tabellenblatt, so kann die Zelle mit dem Zahlenformat "" (zwei Anführungszeichen) formatiert werden, die Werte werden dann nicht mehr angezeigt, Berechnungen wie die hier beschriebenen sind trotzdem noch möglich.
Hört sich komplizierter an als es tatsächlich ist :)
Viel Erfolg!
Gruß
MasterOfHardness
angenommen, in Zelle A1 steht deine errechnete Zeit, ob positiv oder negativ ist jetzt egal:
=WENN(A1>=0;A1;"-"& STUNDE(A1*-1) & ":" & MINUTE(A1*-1))Excel behandetl Zeitformate intern wie ganz normale Zahlen. Hier wird nun zunächst geprüft, ob der Wert in A1 positiv oder gleich 0 ist, in diesem Fall wird der Wert ohne weitere Änderungen übernommen.
Andernfalls wird ein - geschrieben, der Wert in A1 mit -1 mulpipliziert (also positiv gemacht) und anschließend der "Wert der Stunde" daraus berechnet. Nun wird der Doppelpunkt geschrieben und das selbe mit den Minuten wiederholt. Die &-Zeichen verknüpfen das alles miteinander.
Mit den hier angezeigten Werten kann man nicht weiterrechnen, ist aber nicht weiter tragisch. Es gibt ja noch A1, da steht ja die errechnete Zeit ohne irgendwelche Änderungen.
Stört A1 auf dem Tabellenblatt, so kann die Zelle mit dem Zahlenformat "" (zwei Anführungszeichen) formatiert werden, die Werte werden dann nicht mehr angezeigt, Berechnungen wie die hier beschriebenen sind trotzdem noch möglich.
Hört sich komplizierter an als es tatsächlich ist :)
Viel Erfolg!
Gruß
MasterOfHardness
Antwort 2 von Roedelheim
es geht auch einfacher:
Extras -> Optionen -> Registerkarte Berechnung
haken bei "1904-Datumswerte" setzen.
Extras -> Optionen -> Registerkarte Berechnung
haken bei "1904-Datumswerte" setzen.
Antwort 3 von MasterOfHardness
Klasse, wieder was dazu gelernt!
Oben geschilderter Lösungsvorschlag stammt übrigens aus dem Munde eines Mitarbeiters des Microsoft-Service-Telefon. Habe da mal vor Jahren angerufen und mir diese Hilfe geholt :o)
Was hat das für Konsequenzen, wenn ich Excel standardmäßig auf 1904-Datumswerte umstelle?
Gruß
MasterOfHardness
Oben geschilderter Lösungsvorschlag stammt übrigens aus dem Munde eines Mitarbeiters des Microsoft-Service-Telefon. Habe da mal vor Jahren angerufen und mir diese Hilfe geholt :o)
Was hat das für Konsequenzen, wenn ich Excel standardmäßig auf 1904-Datumswerte umstelle?
Gruß
MasterOfHardness
Antwort 4 von Lextor
Danke Euch erstmal recht herzlich,das hat geklappt.
Mich würde aber die Antwort auf MasterOfHardness Frage auch Interresieren.
Was macht der Haken bei 1904,und wozu ist der?
Mich würde aber die Antwort auf MasterOfHardness Frage auch Interresieren.
Was macht der Haken bei 1904,und wozu ist der?
Antwort 5 von Roedelheim
@master...
konsequenzen?
kann ich dir nicht sagen, mir ist bisher nichts aufgefallen!
die einstellung wird bei mur nur in der arbeitsmappe übernommen und gilt nicht für alle mappen.
gruß
roedelheim
konsequenzen?
kann ich dir nicht sagen, mir ist bisher nichts aufgefallen!
die einstellung wird bei mur nur in der arbeitsmappe übernommen und gilt nicht für alle mappen.
gruß
roedelheim
Antwort 6 von pelle
@MasterOfHardness,
wweiß im Moment nicht, wie man es standardmäßig auf 1904-Datumswerte umstellt!
Würde ich Dir aber von abraten!!!!
Gib mal in einer Tabelle das Datum von Heute an
und setze dann mal um auf 1904-Format!
Schau mal was aus Deinem Datum geworden ist!
Daran kannst Du sehen, was dann passiert!!
Die Einstellung auf 1904-Format sollte also schon beim Erstellen der Tabelle berücksichtigt werden,
heißt vor Eingabe des 1. Datums!
gruss
pelle
wweiß im Moment nicht, wie man es standardmäßig auf 1904-Datumswerte umstellt!
Würde ich Dir aber von abraten!!!!
Gib mal in einer Tabelle das Datum von Heute an
und setze dann mal um auf 1904-Format!
Schau mal was aus Deinem Datum geworden ist!
Daran kannst Du sehen, was dann passiert!!
Die Einstellung auf 1904-Format sollte also schon beim Erstellen der Tabelle berücksichtigt werden,
heißt vor Eingabe des 1. Datums!
gruss
pelle
Antwort 7 von Arnim
Hallo zusammen,
nur ganz kurz:
Konsequenzen hat es insofern, dass bereits vorhandene Datumsangaben um 1 Jahr und 1 Tag "verjüngt" werden.
Nach diesem Sytem beginnt die Zeitrechnung nicht, wie bei Excel, am 1.1.1900 0:00 Uhr, sondern erst am 2.1.1904!
Wenn also diese Datei neu angefangen wird, ist alles ok !
Gruß Arnim
nur ganz kurz:
Konsequenzen hat es insofern, dass bereits vorhandene Datumsangaben um 1 Jahr und 1 Tag "verjüngt" werden.
Nach diesem Sytem beginnt die Zeitrechnung nicht, wie bei Excel, am 1.1.1900 0:00 Uhr, sondern erst am 2.1.1904!
Wenn also diese Datei neu angefangen wird, ist alles ok !
Gruß Arnim
Antwort 8 von Arnim
Habe ich vergessen:
Das 1904-Datumsformat ist von Macintosh (also nicht MS).
Gruß Arnim
Das 1904-Datumsformat ist von Macintosh (also nicht MS).
Gruß Arnim
Antwort 9 von pelle
@Arnmim
kleine Korrektur, es sind 4 Jahre und 1 Tag!
z.B.: 01.01.1900 wird in 02.01.1904 umgesetzt!
gruss
pelle
kleine Korrektur, es sind 4 Jahre und 1 Tag!
z.B.: 01.01.1900 wird in 02.01.1904 umgesetzt!
gruss
pelle
Antwort 10 von MasterOfHardness
Habe auch nix gefunden, wie das als Standard gesetzt wird. Gut, dann eben nicht, bleibt alles beim Alten, ich weiß ja jetzt, wie man das ändern kann ;o))
Gruß
MasterOfHardness
Gruß
MasterOfHardness
Antwort 11 von Arnim
Hallo Pelle,
Kopfrechnen schwach! :-(((
War aber diesmal ein Schreibfehler!
Gruß Arnim
PS: Hätte gar nicht reagiert. Aber mit meiner "Adlerauge-Suchmethode" tippe ich halt zu langsam - und da warst Du schon da!
Kopfrechnen schwach! :-(((
War aber diesmal ein Schreibfehler!
Gruß Arnim
PS: Hätte gar nicht reagiert. Aber mit meiner "Adlerauge-Suchmethode" tippe ich halt zu langsam - und da warst Du schon da!
Antwort 12 von pelle
Hallo Arnim,
kann doch passieren!
Die "Adlerauge-Suchmethode" kenne ich nicht!
Ich kenne aber die "Geier-Suchmethode" 3mal kreisen und hoffen die richtige Taste zu erwischen!
gruss
owkkw
:-)
kann doch passieren!
Die "Adlerauge-Suchmethode" kenne ich nicht!
Ich kenne aber die "Geier-Suchmethode" 3mal kreisen und hoffen die richtige Taste zu erwischen!
gruss
owkkw
:-)
Antwort 13 von want2cu
Hallo Lextor,
nachdem die Sache mit den 1904-Datumswerten nun auch mir klar geworden ist ( ich wusste zwar, dass man das besser nicht einstellen sollte, aber ich wusste den genauen Grund nicht), möchte ich nochmal zu deiner Frage zurückkommen.
Wenn du die 1904-Datumswerte nicht einstellst und trotzdem negative Zahlen haben möchtest, dann könntest du z.B. mit einer Wenn-Formel abfragem welcher Wert größer ist und dann den kleineren vom größeren Wert abziehen. MIt dem Minuszeichen wird es dann etwas schwierig, da Excel keine "negativen" Stunden darstellen kann. Man könte dann aber z.B. mit zwei Spalten arbeiten, einmal für ein positives ERgebnis, das andere mal für das "negative" Ergebnis. Das negative Ergebnis bekommt dann zwar kein Minuszeichen, aber könnte z.B. rot dargestellt werden. Und rechnen kannst du dann auch mit diesen Zeiten.
Gib doch bitte mal ein Feedback, ob du dein Problem mit diesen Tipps gelöst bekommst oder woran es ggf noch fehlt.
CU
want2cu
nachdem die Sache mit den 1904-Datumswerten nun auch mir klar geworden ist ( ich wusste zwar, dass man das besser nicht einstellen sollte, aber ich wusste den genauen Grund nicht), möchte ich nochmal zu deiner Frage zurückkommen.
Wenn du die 1904-Datumswerte nicht einstellst und trotzdem negative Zahlen haben möchtest, dann könntest du z.B. mit einer Wenn-Formel abfragem welcher Wert größer ist und dann den kleineren vom größeren Wert abziehen. MIt dem Minuszeichen wird es dann etwas schwierig, da Excel keine "negativen" Stunden darstellen kann. Man könte dann aber z.B. mit zwei Spalten arbeiten, einmal für ein positives ERgebnis, das andere mal für das "negative" Ergebnis. Das negative Ergebnis bekommt dann zwar kein Minuszeichen, aber könnte z.B. rot dargestellt werden. Und rechnen kannst du dann auch mit diesen Zeiten.
Gib doch bitte mal ein Feedback, ob du dein Problem mit diesen Tipps gelöst bekommst oder woran es ggf noch fehlt.
CU
want2cu
Antwort 14 von Lextor
Hallo!
Danke Euch allen,Ihr ward mir eine große Hilfe.Mit Euren Tipps bin ich gut zurechtgekommen,und es klappt auch so wie ich es gerne woltte.
Danke!
Danke Euch allen,Ihr ward mir eine große Hilfe.Mit Euren Tipps bin ich gut zurechtgekommen,und es klappt auch so wie ich es gerne woltte.
Danke!
Antwort 15 von pelle
Hallo Lextor,
Danke für Deine Rückmeldung!
gruss
pelle
Danke für Deine Rückmeldung!
gruss
pelle
Antwort 16 von nighty
hi alle
vielleicht noch brauchbar,bin ja eh wieder zu spaet.
zweite linksliegende zelle von der aktiven ausgehend = sollzeit
erste linksliegende zelle von der aktiven zelle ausgehend = ist zeit
in der aktiven zelle wird die zeitdifferenz mit minus als vorzeichen angezeigt.
gruss nighty
Sub Makro1()
On Error GoTo fehler
adress$ = ActiveWindow.RangeSelection.Address
adress1 = Len(adress$)
For mo = 1 To adress1
If Mid$(adress, mo, 1) = "$" Then
llp = llp + 1
Else
If llp = 1 Then
spalte$ = spalte$ + Mid$(adress, mo, 1)
End If
If llp = 2 Then
zeile$ = zeile$ + Mid$(adress, mo, 1)
zeile1 = Val(zeile$)
End If
End If
Next mo
b0 = Asc(spalte$)
Range(Chr$(b0) & zeile1) = ""
b0 = b0 - 2
GoSub modul1
c4 = c333
b0 = b0 + 1
GoSub modul1
b0 = b0 + 1
If c4 > c333 Then c5 = c4 - c333
If c333 > c4 Then c5 = c333 - c4
c6 = c5
Do
If c6 < 60 Then
Exit Do
Else
b = b + 1
c6 = c6 - 60
End If
Loop
b1$ = Str(b)
If Mid$(b1$, 1, 1) = " " Or Mid$(b1$, 1, 1) = "-" Then b1$ = Mid$(b1$, 2, Len(b1$))
b2$ = Str(c6)
If Mid$(b2$, 1, 1) = " " Or Mid$(b2$, 1, 1) = "-" Then b2$ = Mid$(b2$, 2, Len(b2$))
a23$ = b1$ + "." + b2$
a24 = Val(a23$)
If Len(b2$) = 1 Then b2$ = "0" + b2$
If Range(Chr$(b0 - 1) & zeile1) > Range(Chr$(b0 - 2) & zeile1) Then Range(Chr$(b0) & zeile1) = "+" + b1$ + "." + b2$
If Range(Chr$(b0 - 1) & zeile1) < Range(Chr$(b0 - 2) & zeile1) Then Range(Chr$(b0) & zeile1) = "-" + b1$ + "." + b2$
End
modul1:
laenge = Len(Range(Chr$(b0) & zeile1))
If Mid$(Range(Chr$(b0) & zeile1), 1, 1) = " " Then Range(Chr$(b0) & zeile1) = Mid$(Range(Chr$(b0) & zeile1), 2, laenge - 1)
laenge = Len(Range(Chr$(b0) & zeile1))
For t = 1 To laenge
If Mid$(Range(Chr$(b0) & zeile1), t, 1) = "," Then
c1$ = Mid$(Range(Chr$(b0) & zeile1), 1, t - 1)
c11 = Val(c1$)
c111 = c11 * 60
c2$ = Mid$(Range(Chr$(b0) & zeile1), t + 1, laenge)
c22 = Val(c2$)
c333 = c111 + c22
t = laenge + 1
zr = 1
End If
Next t
If zr = 0 Then
c1 = Val(Range(Chr$(b0) & zeile1))
c333 = c1 * 60
End If
zr = 0
Return
fehler:
End Sub
vielleicht noch brauchbar,bin ja eh wieder zu spaet.
zweite linksliegende zelle von der aktiven ausgehend = sollzeit
erste linksliegende zelle von der aktiven zelle ausgehend = ist zeit
in der aktiven zelle wird die zeitdifferenz mit minus als vorzeichen angezeigt.
gruss nighty
Sub Makro1()
On Error GoTo fehler
adress$ = ActiveWindow.RangeSelection.Address
adress1 = Len(adress$)
For mo = 1 To adress1
If Mid$(adress, mo, 1) = "$" Then
llp = llp + 1
Else
If llp = 1 Then
spalte$ = spalte$ + Mid$(adress, mo, 1)
End If
If llp = 2 Then
zeile$ = zeile$ + Mid$(adress, mo, 1)
zeile1 = Val(zeile$)
End If
End If
Next mo
b0 = Asc(spalte$)
Range(Chr$(b0) & zeile1) = ""
b0 = b0 - 2
GoSub modul1
c4 = c333
b0 = b0 + 1
GoSub modul1
b0 = b0 + 1
If c4 > c333 Then c5 = c4 - c333
If c333 > c4 Then c5 = c333 - c4
c6 = c5
Do
If c6 < 60 Then
Exit Do
Else
b = b + 1
c6 = c6 - 60
End If
Loop
b1$ = Str(b)
If Mid$(b1$, 1, 1) = " " Or Mid$(b1$, 1, 1) = "-" Then b1$ = Mid$(b1$, 2, Len(b1$))
b2$ = Str(c6)
If Mid$(b2$, 1, 1) = " " Or Mid$(b2$, 1, 1) = "-" Then b2$ = Mid$(b2$, 2, Len(b2$))
a23$ = b1$ + "." + b2$
a24 = Val(a23$)
If Len(b2$) = 1 Then b2$ = "0" + b2$
If Range(Chr$(b0 - 1) & zeile1) > Range(Chr$(b0 - 2) & zeile1) Then Range(Chr$(b0) & zeile1) = "+" + b1$ + "." + b2$
If Range(Chr$(b0 - 1) & zeile1) < Range(Chr$(b0 - 2) & zeile1) Then Range(Chr$(b0) & zeile1) = "-" + b1$ + "." + b2$
End
modul1:
laenge = Len(Range(Chr$(b0) & zeile1))
If Mid$(Range(Chr$(b0) & zeile1), 1, 1) = " " Then Range(Chr$(b0) & zeile1) = Mid$(Range(Chr$(b0) & zeile1), 2, laenge - 1)
laenge = Len(Range(Chr$(b0) & zeile1))
For t = 1 To laenge
If Mid$(Range(Chr$(b0) & zeile1), t, 1) = "," Then
c1$ = Mid$(Range(Chr$(b0) & zeile1), 1, t - 1)
c11 = Val(c1$)
c111 = c11 * 60
c2$ = Mid$(Range(Chr$(b0) & zeile1), t + 1, laenge)
c22 = Val(c2$)
c333 = c111 + c22
t = laenge + 1
zr = 1
End If
Next t
If zr = 0 Then
c1 = Val(Range(Chr$(b0) & zeile1))
c333 = c1 * 60
End If
zr = 0
Return
fehler:
End Sub

