2017-07-21 5 views
1

Ich versuche, eine Formel zu schreiben (oder einen VBA-Code, weil ich diesen Code in VBA sowieso importieren werde), um Daten mit den angegebenen Arbeitsstunden zu berechnen.Excel Zeitplan für die Arbeit mit Stunden

Es wird 2 Hauptvariablen geben; Arbeitszeit (Stunde): wie viele Stunden der gegebene Job in dieser Reihe dauert. Work-Date (Datum): ist das geplante Datum für den Start dieses Jobs.

Und diese Berechnungen werden für Tausende von Zeilen vorgenommen werden.

Im Moment ist Formel wirklich grundlegend, etwa so: Arbeitstag (A2; Summe (A2: $ A $ 2)) Das Problem ist, A2 (was Arbeitszeit in Stunden ist) ist eine Zahl zwischen 0 , 1 bis zu hunderten von Stunden. Wie Sie das Problem sehen können, erhöht sich die Summenzahl mit jeder Zeile und es ergeben sich enorme Zahlen. Und wenn ich das Startdatum nicht festlege, ist das Datum fast nie richtig, weil die Arbeitszeit kurz sein kann dann 7 Stunden oder viel dann 7 Stunden.

Mein Hauptziel hier ist es, das Arbeitsdatum zu erhöhen, wenn die Gesamtarbeitszeit für jedes Arbeitsdatum 7 Stunden überschreitet, und die zusätzlichen Stunden oder Minuten auf das nächste Arbeitsdatum zu übertragen.

So sollte es so aussehen;

Arbeitszeit --------------- arbeits Datum

2 -------------------- ----- 01.01.2017

4 ------------------------- 01.01.2017

3 ---- --------------------- 02.01.2017

4 --------------------- ---- 02.01.2017

2 ------------------------- 03.01.2017

Die Arbeitszeit kommt von einem anderen Teil von VBA, und das Arbeitsdatum sollte automatisch berechnet werden. (Ich werde das erste Startdatum geben)

Antwort

0

Ich angepasst kumulative Arbeitszeit Spalte Idee und fand eine Lösung.

Für Zeile 15 verwendete ich diese Formel für kumulative Arbeitszeit Spalte;

=IF(K15>7;SUM(K15;MOD(L14;7));IF(L14>7;SUM(K15;MOD(L14;7));SUM(L14;K15))) 

Wieder für Zeile 15 habe ich diese Formel für workdate verwendet;

=WORKDAY(M14;(L15/7)) 

Mit diesen Formeln funktioniert Work-Date-Funktion großartig. Danke für die kumulative Arbeitszeit Idee!

1

Sie können denken, eine kumulative Arbeitszeit Spalte hinzufügen, die weiter zunimmt, aber sobald Gesamt größer als 7 ist, wird es von vorne beginnen.

Die Spalte für das Arbeitsdatum kann diese Information verwenden und sobald die Summe > 7 ist, wird sie zum nächsten Arbeitstag verschoben.

So können Sie setzen:

  • Formel in Zelle B2 - =IF(SUM(B1,A2)>7,A2,SUM(B1,A2))
  • Formel in C3 Zelle - =IF(SUM(B3,A4)>7,WORKDAY(C3,1),C3)

und kopieren Sie sie dann auf Rest der folgenden Zeilen.

enter image description here

Hinweis: die Annahme ist, dass Ihr VBA maximal 7 Stunden in einer Reihe versetzt und bei der Arbeitszeit ist mehr, es trägt den Restbetrag in der nächsten Zeile. Wenn die VBA dies nicht tut, wird in der Spalte Arbeitszeit eine zusätzliche Formel benötigt, um dieses Problem zu beheben.

+0

Danke für Ihre Antwort, aber mit diesen Formeln, erhöht B-Spalte nur mit 2 Zeilen. Also, wenn ich die 7 Stunden mit 5 Zeilen (wie 1, 1, 1, 2, 2 Stunden) bekomme, dann funktioniert es nicht richtig, und die C Spaltenformel ist nicht korrekt. Es bezieht sich auf sich selbst. – Bildircin13

+0

Sind Sie sicher, dass Sie genau die Anweisungen befolgt haben? Vielleicht möchten Sie sich dieses hochgeladene Beispiel ansehen: https://docs.google.com/spreadsheets/d/13HXGzG60Jyom3AOrpqjbpSweQO6C63fzNhGkXKWZq5Q/edit?usp=sharing – curious

+0

Also werden die Formeln, die Sie geschrieben haben, tatsächlich bei B3 sein, und C4, aber was, wenn eine "Arbeitszeit" in A-Spalte mehr als 7 ist? Mit der B-Formel, die Sie geschrieben haben, wird es direkt geschrieben, wenn es mehr als 7 ist. Aber sagen wir, wenn Zelle A5 22 oder sogar 100 ist, dann sollte es 3 Arbeitstage zum Zeitplan hinzufügen. – Bildircin13

Verwandte Themen