Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Differenz zwischen 2 Uhrzeiten errechnen und mal Stundenlohn rechnen ??

Begonnen von harvey186, August 23, 2010, 19:41:11

⏪ vorheriges - nächstes ⏩

harvey186

Moin zusammen,

ich habe eine Tabellen. In Zelle A1 steht die Abfahrtzeit und Zelle B1 die Ankunftszeit. Beider Zellen haben das Format: Zeit, 24Std.
In Zelle C1 soll nun die Differenz B1-A1 stehen in Stunden und Minuten. Das ist kein Problem. Formel: +1[B1]-[A1]
In Zelle D1 steht der Stundenlohn Format Währung, also 6,25 €

Nun möchte ich die Stunden/Minuten aus C1 * D1 nehmen. Das klappt aber nicht, den in C1 steht ja z.B. 11:30 und nicht 11,5 (also als Dezimalzahl)
Ich hab's mit ([C1]-1)*24 probiert, das klappt aber nicht, da dabei die Nachkommastellen verloren gehen, auch wenn ich im Format Standard eintrage.

Danke schon mal für Eure Hilfe.

MzKlMu

Gruß Klaus

harvey186

Ich weiß, ich habe nur einfachhalber die Spaltennamen mit a,b,c und so weiter betitelt. :-) 
Und auch in Access brauche ich Formeln :-)

MzKlMu

Hallo,
so z.B.
C: ZDouble([b]-[a])*24*[D]

Was hattest Du denn mit den Einsen (+1 -1) vor?
Gruß Klaus

harvey186

mit den 1en wird erreicht, dass ich als ergebnis mehr als 24 Stunden haben kann.

werd die Formel nachher mal ausprobieren. Melde mich dann wieder.

MzKlMu

Hallo,
wenn das Datum nicht dabei ist, geht mehr als 24 Stunden nicht.
Und mit Datum rechnet die Formel auch ohne die Einsen richtig.
Gruß Klaus

harvey186

Sorry, wohl flasch ausgesdrückt. Wenn ich um 22:00 Uhr starten und um 3 Uhr beende, würde 3:00 - 22:00 Schrott ergeben, deshalb die 1. Dadurch erhalte ich als Ergebnis 5:00 Stunden.

harvey186

Hab es gerade ausprobiert.
Bei Start 19:00 Uhr und Ende 20:15 wird auch 1:15 ausgerechnet (richtig) und dann * 6,25 = 7,81 (auch richtig). Aber
bei Start 19:15 Uhr und Ende 03:15 wird auch 8:00 ausgerechnet (richtig) aber dann * 6,25 = -100,00 (das ist falsch !!!!)

oma

Hallo,

Erstelle deine Felder mit Datum und Zeit; rechne mit DatDiff-Funktion und du hast keine Probleme

Datum1   23.08.2010 19:15:00 
Datum2   24.08.2010 03:15:00 
StdSatz   6,25 €   
in Abfrage   Lohn:DatDiff("s";[Datum1];[Datum2])/3600*[StdSatz]  ---> 50 Euro

Datum1   12:00 
Datum2   20:00 
StdSatz   6,25 €   
in Abfrage    Lohn:DatDiff("s";[Datum1];[Datum2])/3600*[StdSatz]  ---> 50 Euro


Gruß Oma
nichts ist fertig!

harvey186

Ja, das wär ne Lösung, aber dann müsste der User jedesmal auch noch das Datum eingeben. Ich möchte natürlich, dass der User so wenig wie nötig eingeben muß.
Gibt es keine Lösung nur mit den Uhrzeiten ?? Das kann ich gar nicht glauben, denn in Excel geht das.

Wie kann ich denn Stunden und Minuten in dezimal, also Industrieminuten (11:15 = 11,25) umrechnen ??
Oder die 11 Stunden 15 Minuten in Minuten (675) ??

gino79

Einfach die Uhrzeit * 24 rechnen. Das Ergebnis muss dann aber eine Zahl sein z.B. cdbl(Uhrzeit * 24).
Dann hasst du die Industrieminuten!! Einfach Mal testen

Gruß Gino

oma

Hallo,

und wie soll man bei Datum1 19:15 und Datum2 03:15:00 ohne Datum wissen, wieviel Tage dazwischen liegen?

Beispiel für Zeitdifferenz und Dezimalzahl:
Datum1  12:00
Datum2  20:30

Diff1: ZDate([Datum1]-[Datum2])                    ---> 08:30
Diff2: ([Datum2]-[Datum1])*24                       ---> 8,5
Diff3: DatDiff("s";[Datum1];[Datum2])/3600   ---->8,5

aber besser immer mit DateDiff arbeiten, ergibt immer "Industriezeit"

Gruß Oma
nichts ist fertig!

gino79

ggf. nicht die schönste Variante.

Wenn B-A gerechnet wird, ergibt dies eine Minuszahl, wenn B kleiner ist als A. Deshalb die -100.

Ich als Leihe würde ich eine Wenn-Funktion einbauen, welches Prüft, ob B kleiner ist als A und dann die Differenz +1 rechnen.
Also wenn(b<A;ZDouble((b-a)+1)*24*[D];ZDouble(b-a)*24*[D])

Hoffe das hilft dir Weiter. Auch wenn es bestimmt schönere Lösungen gibt wie datdiff!!!!  

harvey186


MzKlMu

Hallo,
so sollte es klappen:
Lohn: Abs(Wenn([a]<[b];[b]-[a];[a]-[b]-1))*24*[d]
Gruß Klaus