Supportnet Computer
Planet of Tech

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:

=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.

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

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?

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

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

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

Antwort 8 von Arnim

Habe ich vergessen:
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

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

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!

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

:-)

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

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!

Antwort 15 von pelle

Hallo Lextor,

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