Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Negative Zeitangabe





Frage

Hallo zusammen, ich muß in Excel XP eine Stundenliste führen. Natürlich kommen dabei auch negative Zahlen bei raus. Nur zeigt er mir da "#######" wenn ich die Datumswerte auf 1904 aktiviere, stimmt mein Kalender nicht mehr. Was kann ich noch machen? Gruß Andrea

Antwort 1 von sicci

Hallo Andrea,

hatte auf ähnliche Anfrage in einem anderen Forum schon mal so geantwortet:

erste Möglichkeit:
=1-(Zellbezug zur 1.Zeit - Zellbezug zur 2.Zeit) ergibt die Minusstunden mit positivem Vorzeichen.
=1-(A1-B1) ergibt bei A1=5:00 und B1=7:00 2:00

zweite Möglichkeit:
Ergebniszellen als Zahl mit 2 Nachkommastellen formatieren. Formel in Ergebniszelle:
=24*(Zellbezug zur 1.Zeit - Zellbezug zur 2.Zeit)
=24*(A1-B1) ergibt bei A1:5:00 und B1=8:00 -3,00
mit diesem Zahlenwert kann auch weitergerechnet werden.

Gruß
sicci

Antwort 2 von aw

Hallo sicci,

vielen Dank für deine Antwort. Funktioniert leider nicht. Meine Formel sieht bisher so aus:
=WENN(H9>0;H9-ZEIT(9;0;0);"")

Oder hast du eine Idee, wie ich das kombinieren kann?

Gruß Andrea

Antwort 3 von nighty

hi alle

vielleicht brauchbar ein makro was die zeitdifferenz mit richtigem vorzeichen berechnet,von der aktiven zelle ausgehend ist die zweite linksbuendige zelle die sollzeit und die erst linksbuendige die istzeit somit in der aktiven die ausgabe stattfindet.

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



Antwort 4 von aw

*umpf*
Danke schön. Ich muß gestehen, dass ich nur eine "normale" Excel-Anwenderin bin und mich vorher noch nie mit Makros beschäftigt habe (gebraucht habe). Ich versuch mal, ob ich damit was anfangen kann *g*.

Gruß Andrea

Antwort 5 von want2cu

@andrea:
ich bin auch nicht so der Makro-Experte, aber wenn du mir die Tabelle (reicht auch ein Teil oder Muster) mal schickst, würde ich mich mal versuchen, ob man das nicht mit Formeln lösen kann.

CU
Klaus

Antwort 6 von MasterOfHardness

Geht auch ohne Makro
A1: ZeitKommen
B1: ZeitGehen
D1: =B1-A1
C1: ZeitSoll
E2: ZeitAngabe (Formel: =WENN(D2<0;"-"&STUNDE(D1*-1)&":"&MINUTE(D1*-1);STUNDE(D1)&":"&MINUTE(D1))
Die Zelle D1 ist als Zahl (nicht als Zeit) formatiert. Wenn nötig, kann damit auch weitergerechnet werden.

Viel Erfolg!

Antwort 7 von nighty

hi alle

@masterofhardness
werd ich auch mal ausprobieren bin gespannt.

@sicci
war noch ein altes makro mit noch nicht so optimaler var deklaration.
dein tip der virussite war auch sehr interessant.

gruss nighty

p.s.
einen schoenen tag noch alle(noch dunkel schniff 5.08 frueh)



Antwort 8 von aw

Hallo Klaus,

hab's gerade versucht, nur ist dein Mailkonto voll. Was jetzt?

Gruß Andrea

Antwort 9 von Aliba

Hallo Andrea,

Excel hat ein Darstelllungsproblem bei negativen Zeitwerten. Rechnen kann man auch mit den ##########-Zellen. Ich bin da mal schon vor längerer Zeit auf eine Möglichkeit gestoßen (weiß aber nicht mehr wo das dokumentiert war) diese Negativzahlen darstellen zu lassen.
Gehen wir mal von folgenden Voraussetzungen aus:
Spalte A: kommt
Spalte B: geht
Spalte C: Ist
Spalte D: Soll
Formel in Spalte E: =C2-D2
Alle Berechnungen werden in Spalte E gemacht, also auch Summen etc..
Spalte E wird ausgeblendet
In Spalte F die Formel:

=WENN(ABRUNDEN(E2;4)<0;TEXT(-E2;"- [h]:mm");WENN(ABRUNDEN(E2;4)=0;"0:00";TEXT(E2;"[h]:mm")))

Schick Dir noch ne Beispieldatei an Deine Addy, hoffe sie passt.

CU Aliba

Antwort 10 von nighty

hi alle

schoene diskussionrunde ALIBA/WANT2CU/SICCI,alle drei zusammen ergeben immer sehr unterschiedliche loesungen,lese ich am liebsten.

gruss nighty

Antwort 11 von want2cu

@Andrea:
komisch, Mailkonto voll?
Egal, ich habe dir eine E-Mail unter einer meiner anderen Adressen geschickt, bei der es dann aber klappen müßte. Schick mir bitte die Datei zu, jetzt möchte ich es auch mal mit ner Lösung versuchen.

@nighty:
<staun> ich habe doch noch gar nichts Produktives in diesem Thread beigetragen.
Du, Aliba und Sicci haben sich dagegen schon mächtig ins Zeug gelegt und ganz unterschiedliche,tolle LÖsungen angeboten.
Ich warte ja immer noch auf die Beispieltabelle, an der ich dann mal werkeln kann ;-)
<ehrgeizerwachtist>.Zumindest will ich es mal versuchen.

CU
Klaus

Antwort 12 von want2cu

@aliba:
habe gerade die Tabelle von Andrea bekommen und es mal mit deiner Formel probiert. Starke Formel!
Da du die Funktion Text verwendest, kann dann mit dem "ERgebnis" leider nicht weiter gerechnet werden, also keine Summenbildung der Mehr/MInderzeiten.

Mal sehen, ob es da nicht was anderes gibt. Ich bastel morgen mal an der Knobelaufgabe weiter, heute erst mal erholen und nix mehr PC ;-)

CU
Klaus

P.S.: Bin gespannt, ob sich Andrea´s Problem akademisch lösen läßt ;-)

Antwort 13 von Aliba

Hi klaus,

ich kenne ja die Struktur von Andrea´s Datei nicht. Ich rechne ja eigentlich immer mit
den Werten weiter, auch wenn sie nur ####### so angezeigt werden. Allerdings blende ich dann die Berechnungsspalten aus und in den Zellen daneben steht dann die Formel , die den Text ausgibt. Es gibt also Berechnungsspalten und Anzeigespalten.

CU Aliba

Antwort 14 von want2cu

hallo zusammen,

die Tabelle ist schon unterwegs. Es ist eine modifizierte Formellsöung geworden, bei der ich die Tabelle von Andrea ein wenig erweitert habe.

Bei Bedarf entweder bei mir oder Andrea melden ;-)

CU
Klaus

Antwort 15 von MasterOfHardness

habe mir eben nochmal meinen Eintrag hier angesehen (Antwort 6). Eine kleine Ergänzung zu
Zitat:
Die Zelle D1 ist als Zahl (nicht als Zeit) formatiert. Wenn nötig, kann damit auch weitergerechnet werden.

Wie Zelle D1 formatiert ist, ist eigentlich egal, solange es nicht ausgerechnet Text ist. Excel kann damit rechnen, sebst wenn der Zellinhalt ausgeblendet ist.
Hat jemand mal die Formel getestet?
Bei mir hat's funktioniert.

Antwort 16 von want2cu

@MasterOfHardness

ich habe ein Rückfrage zu deiner Formel:

WENN(D2<0

Entweder habe ich nicht aufgepasst oder D2 ist ein Tippfehler. Ich hab´s jedenfalls nicht ganz verstanden.

CU
Klaus

Antwort 17 von nighty

hi alle

loesung von want2cu ist gut gelungen
<verbeugung>.

D2 ist das stichwort ich hoffe mit, auf berichtigung bevor ich was falsch mache.

gruss nighty

p.s.
cooooler thread

Antwort 18 von aw

Ein Dickes Lob und herzlichen Dank an alle, die mir so fleißig bei meinem Problem geholfen haben. Ist ja echt irre wie sich hier in ein Problem vertieft wird. Ich denke, dass ich Alibas Lösung verwenden werde, da diese die einfachste für mich ist.

Bitte macht weiter so, denn ich hoffe, dass mir bei künftigen (hoffentlich nicht so vielen) Problemen genauso gut geholfen werden kann.

Liebe Grüße
Andrea

Antwort 19 von want2cu

@andrea,

ja, sehe ich auch so. Aliba hat wirklich die beste Lösung, insbesondere die Formel zur Ermittlung der Sollarbeitsstunden, die nur an Werktagen einen Wert liefert.

Wirklich toll, ein sehr interessanter Thread, der mir viel Spass gemacht hat und bei dem ich wieder ´ne Menge gelernt habe.
Deswegen bin ich GERNE im SN!

CU
Klaus

Antwort 20 von nighty

hi alle

schniff schon zuende danke fuer die emails von allen.

gruss nighty

p.s.
aliba the best

Antwort 21 von MasterOfHardness

Zitat:
ich habe ein Rückfrage zu deiner Formel:

WENN(D2<0


Natürlich muss das D1 heißen

Antwort 22 von sicci

Hallo @alle,

da ist man nur mal 2Tage anderweitig beschäftigt und schon verpaßt man die tollsten Diskussionen um knifflige Excel-Fragen (denn knifflig ist die exceleigne Zeitberechnung allemal).
Danke Klaus, für's Zusenden der Tabelle, die ich leider erst heute anschauen konnte. Was mir an Deiner Version besonders gut gefällt ist, daß sie gänzlich ohne Umwandlung in Text auskommt.

Das einzige, was ich noch hinzufügen möchte ist eine Schönheits- oder Geschmackssache: Die Berechnungsspalten, die ja alle außer Klaus nutzen, können statt ausgeblendet auch auf "Schriftfarbe wie Hintergrund" gesetzt werden.

Die Formel von MasterOfHardness gefällt mir auch ganz gut, nur stört mich, daß 00 Minuten oder zB. 05 Stunden einstellig angezeigt werden.

Habe aber, da ich die Tabelle jetzt kenne, eine ganz andere Frage:
so viele exakte Daten(Datums *arg*) stehen nicht drin, sie werden auch nicht per VBA manipuliert, man könnte also m.E. ohne großen Aufwand auf "1904-Datumsberechnung" umstellen (die Wochentage ändern sich dann, so daß nur die bedingte Formatierung angepaßt werden müßte).
Eine gute Erklärung inkl. Tips für die Zeit-EINGABE, in der auch (etwas abgewandelt) Alibas griffige Formel beschrieben ist, findet man bei Hans Herber:
http://herber.de/bbs/vorlagen/gittzaun.htm

@nighty: Dein Makro konnte ich nur mal kurz laufenlassen, muß ich noch mal genauer anschaun. Melde mich per mail.

Gruß
sicci

Antwort 23 von want2cu

@sicci:
ich kann halt nur "mit Formeln", bin eben kein VBA-Experte, sondern eher gnadenloser Formel-Pragmatiker ;-)))

Ein weiteres Motto: Egal wie, Hauptsache dass!

Ich finde es immer wieder toll, wenn sich hier die Creme-de-la-creme-de-Excel versammelt und ich mein Fachwissen wieder verbessern un dselbst so viel lernen kann.
Von daher gesagt, finde ich diese Pubertär-Threads, dass im SN nur Halbwissen verbreitet wird, völlig daneben.

Ich bin froh und dankbar, dass es so viele nette, hilfsbereite und kompetente User im SN gibt! Und das soll auch so bleiben ;-)

CU
Klaus

Antwort 24 von nighty

hi alle

bei teamwork erzielen oft auch laien bessere ergebnisse als die sogenannten profis.

gruss nighty

Antwort 25 von HerbertX

Hallo ihr Guten,
Ich finde Euch auch so toll!
Ihr seid so kompetent,die Crem del la crem, die Excelexperten.
Ihr seid so lieb und gut und hilfsbereit.
Und so nett und schlau. Danke, danke für die
vielen schönen Stunden mit Euch im SN.
Es macht soooooo Spaß Euren klugen Rat-
schlägen zu folgen. Von wegen Halb-
wahrheiten!! Ihr findet in Teamarbeit
immer die schlauste und schönste Lösung.
Ich liebe es wie bescheiden und kompetent
ihr Euer mächtiges Wissen selbstlos
unter das gemeine Volk verbreitet.
schniff schade das schon wieder alles vorbei ist.
Ihr verdient es gewählt zu werden..
Wenn nur alle Menschen so gut wären.
Ich liebe Euch
Euer HerbertX

Antwort 26 von Aliba

Schade,

jetzt scheints auch hier im sonst so ruhigen Excelbereich so weit zu sein, daß sich die langweilenden Spinner hier auch noch austoben müßen.

Aliba

Antwort 27 von MasterOfHardness

Hallo zusammen!

@sicci
habe meine Formel nochmal ausprobiert. tatsächlich, da erscheinen keine führenden Nullen. Aber das Problem ließe sich mit einer zusätzlichen WENN-Bedingung auch noch lösen [sinngemäß: WENN<10, dann "0"&Stunde(STUNDE(D1)]. Wenn Bedarf besteht, dann schick mir 'ne Mail, ich setzt mich dann nochmal an die Formel.

@Der Große Rest
Auch von mir Dank an alle, habe einiges dazulernen können. Hat Spaß gemacht, sich mit diesem Problem zu befassen.

Antwort 28 von pelle

@Eingeweihte;

mir fallen viele Sünden ein!

Habt bitte Nachsicht!!!

@Aliba
ignorriere Antwort 25 "einfach"!

Ja, Ja, ich hab´s auch nicht immer getan!

@Klaus,
darf ich auch mal einen Blick auf die Tabelle werfen!

gruss
pelle