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.
Hallo,
Du bist hier im Access Forum.
Ich weiß, ich habe nur einfachhalber die Spaltennamen mit a,b,c und so weiter betitelt. :-)
Und auch in Access brauche ich Formeln :-)
Hallo,
so z.B.
C: ZDouble([b]-[a])*24*[D]
Was hattest Du denn mit den Einsen (+1 -1) vor?
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.
Hallo,
wenn das Datum nicht dabei ist, geht mehr als 24 Stunden nicht.
Und mit Datum rechnet die Formel auch ohne die Einsen richtig.
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.
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 !!!!)
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
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) ??
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
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
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!!!!
Moin,
also, dann kommt nur noch -99 raus, anstelle von -100
Hallo,
so sollte es klappen:
Lohn: Abs(Wenn([a]<[b];[b]-[a];[a]-[b]-1))*24*[d]
Hmm. also ich habe mal in Access eine Tabelle angelegt. Mit dieser Abfrage kommt bei mir beides mal 50 Euro raus
Einmal 19:15 - 03:15 und einmal 03:15 - 11:15
Test: Wenn([uhrzeit2]<[Uhrzeit1];ZCurrency((([Uhrzeit2]-[Uhrzeit1])+1)*[stundenlohn]*24);ZCurrency(([Uhrzeit2]-[Uhrzeit1])*[stundenlohn]*24))
Ersetze diese mal mit deinen Feldnamen.
Gruß Gino
Ja. das klappt wirklich, nur ...... der Euro haben zwar 2 Nachkommastellen, sind aber gerundet auf volle Euro. Das heißt, es werden immer ,00 ausgerechnet.
Sorry die o.a. Antwort war für MzKlMu gedacht.
GINO69 <-- Deine Formel klappt. Super, Vielen Dank !!!!!!!!!!!!!!!!!!!!
Hallo,
Zitatsind aber gerundet auf volle Euro. Das heißt, es werden immer ,00 ausgerechnet.
Das bezweifle ich heftig.
Direkt aus meiner Abfrage:
12:00:00 15:30:00 6,25 € 21,88 €
22:00:00 03:00:00 6,25 € 31,25 €
mhm, seltsam, ei mir hat er auf volle Euro aufgerundet.
Aber nun hab ich ja die Lösung.
Allen nochmals vielen, vielen Dank.