Clever-Excel-Forum

Normale Version: Zeitangabe ohne Doppelpunkt
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6
Hallo Leute,
brauche mal wieder eure Hilfe.
Habe 10 Mitarbeiter und jeden Monat dazu die stunden Erfassung. Um mir die Zeit zu verkürzen und eine Schnellere EINGABE möchte ich die Zeiten ohne Doppelpunkt eingeben, sondern direkt 4-Stellig.
Habe in der Test Datei von Zeile 4 -12 und Spalte D – I folgende Formatierung genommen ##“:“##.
Habe dann in Spalte J folgende Formen eingefügt, weil die Formatierung ein Text ist, eingesetzt:
+WENN(E4="";"";WENN(E4>99;ZEIT(LINKS(E4;(E4>999)+(E4>99));RECHTS(E4;2);0);ZEIT(0;E4;0)))-WENN(D4="";"";WENN(D4>99;ZEIT(LINKS(D4;(D4>999)+(D4>99));RECHTS(D4;2);0);ZEIT(0;D4;0)))+WENN(G4="";"";WENN(G4>99;ZEIT(LINKS(G4;(G4>999)+(G4>99));RECHTS(G4;2);0);ZEIT(0;G4;0)))-WENN(F4="";"";WENN(F4>99;ZEIT(LINKS(F4;(F4>999)+(F4>99));RECHTS(F4;2);0);ZEIT(0;F4;0)))
Es rechnet richtig außer Zeile 11 und 12. Eine weitere Formel Akzeptiert es nicht.
Das große Problem ist das die Ganzen Spalten mit den Formeln von K – P alle Falsch berechnet werden und ich weiß nicht warum.
 
Zum Vergleich welche Werte richtig gerechnet sind ist ab Zeile 25 mit Ursprungsformatierung gelassen
Ich hoffe Ihr versteht was ich meine, habe eine Beispiel Tabelle Hochgeladen. Ich möchte keinen Doppelpunkt mehr eingeben.
Vielen Dank für Vorschläge.
Paolo
Du tust Dir damit absolut keinen Gefallen!

1. kannst Du 22:00 als 22: eingeben (also noch ein Zeichen weniger, als 2200). Das wird als 22:00 umgewandelt.

2. könntest Du mit einem Change-Ereignis, welches sich auf D:G bezieht, ganz einfach sogar 22 oder 221 oder 2201 eingeben; Excel wandelt von selbst in 22:00 oder 22:10 oder 22:01 um.

Dann werden Deine Formelmonster arbeitslos. Und Dein Nachfolger ist kein gequälter Mensch.
Hallo lupo1,

ja mag sein das das richtig ist,aber ich habe runde Zahlen genommen für das Beispiel, aber in Wirklichkeit sind auch Minuten angaben wichtig zb. 12:13 - 15: 17.
OK; HAB VERSTANDEN; WIE GEHT DAS??

Gruß
Paolo
Ich hatte 3 Minuten vor Deiner Antwort noch geändert.

Anregung evtl.: http://xxcl.de/0018.htm
An lupo1

Kannst du mir einen Beispiel machen bezogen auf meine Tabelle. 
Letztendlich habe ich fast das gleich versucht, nur die Berechnungen sind falsch.

Paolo
Hallo, das ist doch nicht mehr schwer..:

Arbeitsblatt mit dem Namen 'Tabelle1'
 JK
49:009,00
59:009,00
69:009,00
79:009,00
89:009,00
99:009,00
109:009,00
118:008,00
128:008,00

ZelleFormel
J4=WENN(UND(H4<>"";I4<>"");REST(TEXT(I4;"00\:00")-TEXT(H4;"00\:00");1);REST(TEXT(G4;"00\:00")-TEXT(F4;"00\:00")+TEXT(E4;"00\:00")-(TEXT(D4;"00\:00"));1))
K4=J4*24
Diese Tabelle wurde mit Tab2Html (v2.5.0) erstellt. ©Gerd alias Bamberg
Ich habe das Change-Ereignis mal nachgebaut.

1 ergibt 10 Uhr, denn 1 Uhr ist selten!
2 ergibt 20 Uhr, denn 2 Uhr ist selten!

3 ergibt 03:00
::
9 ergibt 09:00

qq45 ergibt 00:45
qq3 ergibt 00:30
33 ergibt 03:30

Das einzige, was ich bei Deiner Tabelle nachvollzogen habe, sind die Eingaben in den Spalten D:G. Deine Formeln änderst Du jedoch selbst wieder auf Excel-Zeiten um!

Hier noch meine eigene Lösung, die noch ausgebaut werden wird (Updates meist unter http://office-loesung.de/p/viewtopic.php?f=166&t=728509#p3026562):

Sub TagUndNachtschichtMitVariablerPause(): Cells.Clear: [B1:J5] = "0:00": [B1:J5].ClearContents
[H1:J1] = Array(0, 0.25, "22:"): [H2:H3] = "=R[-1]C[2]": [I2:J3] = "=R[-1]C+1": [1:4].Font.Color = -16776961
[A4:I4] = Array("Datum", "DienstB", "DienstE", "Pause1B", "Pause1E", "PauseNB", "PauseNE", "Nacht", "Tag")
[A5:E5] = Array("12-8-16", "16:42", "27:32", "=(RC2+R1C)*(RC2+R1C0)")
[D1:G1] = Array(0.25, 1 / 48, "9:", 1 / 96): [F5:G5] = [D5:E5].FormulaR1C1
[H5].FormulaArray = "=SUM((1-2*(COLUMN(RC2:RC6)>3))*ISEVEN(COLUMN(RC2:RC6))*(IFERROR(EXP(LN(R1C[1]:R3C[1]-" & _
"IFERROR(EXP(LN(R1C[1]:R3C[1]-RC3:RC7)),)-R1C:R3C-IFERROR(EXP(LN(RC2:RC6-R1C:R3C)),))),)))": [H5:I5].FillRight
[A8] = "Zeiten ab Mitternacht +24:00 eingeben; 3:32 also als 27:32. Pausen sind überschreibbar."
[A9] = "Weitere PausenspaltenPAARE (!) immer in F:G einfügen und dann H:I darüber kopieren."
[B:J].ColumnWidth = 7: a = Array("=(0<=b5)*(b5<2)", "=(b5<=c5)*(c5<2)", "=(b5<=d5)*(d5<=c5)", _
"=($d5<=e5)*(e5<=$c5)", "=(INDEX(5:5,COLUMN()-1)<=f5)*(f5<=$c5)", "=($d5<=g5)*(g5<=$c5)")
For i = 2 To 7: Cells(5, i).Validation.Add Type:=xlValidateCustom, Formula1:=a(i - 2): Next: End Sub
Hallo Jockel,

vielen dank erstmals. Die Formel funktioniert gut, aber nur in der Spalte J. Spalte K =J *24 ergibt bei mir was anderes.

Zeile 11 + 12 passiert nichts.

Auch die Wertberechnung zu den weiteren Spalten L-P  wo liegt da der Fehler?





=WENN(B4="";"";WENN(WENN(D4"";I4<>"");REST(TEXT(I4;"00\:00")-TEXT(H4;"00\:00");1);REST(TEXT(G4;"00\:00")-TEXT(F4;"00\:00")+TEXT(E4;"00\:00")-(TEXT(D4;"00\:00"));1))



Danke für deine Mühe



Paolo


------------------------------------------
(01.02.2017, 20:29)AKGUSTI schrieb: [ -> ]Hallo Jockel,
vielen dank erstmals. Die Formel funktioniert gut, aber nur in der Spalte J. Spalte K =J *24 ergibt bei mir was anderes.
Zeile 11 + 12 passiert nichts.
...
Danke für deine Mühe
Paolo
------------------------------------------

Hallo, ich weiß nicht, was du machst. Das siehst nur du, aber die Ergebnisse stimmen... in allen Zellen


Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDEFGHIJK
401.01.2017So 10:0014:0017:0022:00  9:009,0
502.01.2017Mo 10:0014:0017:0022:00  9:009,0
603.01.2017Di 10:0014:0017:0022:00  9:009,0
704.01.2017Mi 10:0014:0017:0022:00  9:009,0
805.01.2017Do 10:0014:0017:0022:00  9:009,0
906.01.2017Fr 10:0014:0017:0022:00  9:009,0
1007.01.2017Sa 10:0014:0017:0022:00  9:009,0
1108.01.2017So     20:004:008:008,0
1209.01.2017Mo     20:004:008:008,0

ZelleFormatWert
J4h:mm;@0,375
K40,09

ZelleFormel
J4=WENN(UND(H4<>"";I4<>"");REST(TEXT(I4;"00\:00")-TEXT(H4;"00\:00");1);REST(TEXT(G4;"00\:00")-TEXT(F4;"00\:00")+TEXT(E4;"00\:00")-(TEXT(D4;"00\:00"));1))
K4=J4*24
Diese Tabelle wurde mit Tab2Html (v2.5.0) erstellt. ©Gerd alias Bamberg
in J1:


PHP-Code:
=G1-D1-(F1-E1)+(G1<D1)*24 
Seiten: 1 2 3 4 5 6