2017-02-15 4 views
0

Ich brauche Hilfe bei einer komplexen Multi-Evaluation-Färmula für die Berechnung Urlaubstage. Es ist in einer Arbeitsmappe, die nicht Makro-aktiviert sein kann, so muss in Formelform sein. Ich brauche es die folgenden Auswertungen zu tun:Urlaubstag Formel

Wie lange hat der Mitarbeiter gearbeitet: Unter einem Jahr = 0 Stunden 1-3 Jahre = 40 Stunden, 3 Jahre und 80 Stunden

Dann auf einem Wochenlohn Grafik basierend auf den heutigen Tag im Vergleich zu den aktuellen Wochen Daten zeigen Spalte 1 - wie viele genommen in dieser Woche Spalte 3 - - wie viele Stunden der Mitarbeiter Spalte 2 aufgelaufene Wie viele Stunden bleiben

Und der Kicker ist, wenn Ich öffne Excel Ich möchte nicht, dass es irgendeine der Zahlen der vorherigen Woche reevaluiert.

Hier ist der aktuelle Code, den ich habe. J3 ist Miettermin, A9 Anfang der Woche, C9 Ende der Woche, E8 Start Urlaubssaldo. I8 wird Stunden verwendet, M8 ist Schlussbilanz.

=IF(TODAY()<C9,E9,IF(AND(DATE(,MONTH($A9),DAY($A9))<=DATE(,MONTH($J$3),DAY($J$3)),DATE(,MONTH($C9),DAY($C9))>=DATE(,MONTH($J$3),DAY($J$3))),IF(TODAY()>DATE(YEAR($J$3)+3,MONTH($J$3),DAY($J$3)),80,IF(TODAY()>DATE(YEAR($J$3)+1,MONTH($J$3),DAY($J$3)),40,0)),E8)) 

Ist es möglich, alles, was ich ohne Makro-fähige

tun müssen, um
+0

zeigen ein visuelles Beispiel für Datensätze und Ausgabe. Erklären Sie auch Ihren 'Kicker' mehr. – MacroMarc

+0

Um Ihre Frage zu beantworten: Ja, es ist möglich. Wenn Sie Hilfe benötigen, schlage ich vor, Beispiele für Ihre Dateneingabe, die gewünschte Ausgabe und das Problem mit Ihrem formelhaften Ansatz zu geben. Das Hilfethema [So erstellen Sie ein minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) kann hilfreich sein. –

+0

Gibt es eine Möglichkeit, die Arbeitsmappe anzufügen, oder muss es eine externe Verknüpfung sein? Der Kicker ist: Die meisten Formeln verwenden die Today() - Funktion, so dass sie bei jedem Öffnen der Arbeitsmappen die Daten neu berechnet.Was ich brauche, ist, dass es vorherige Abgrenzungen und Salden nicht löscht und sie nicht übersteuert, sondern nur die aktuelle Woche. – Hareborn

Antwort

0

Ich sehe keinen Grund, warum Sie benötigen die TODAY Funktion aufgelaufene Urlaubszeit zu berechnen. Wenn ich Sie richtig verstehe, am

  • Ende des Jahres 1: Abgegrenzte = 0 Std
  • Ende des Jahres 2: Abgegrenzte = 40 Std
  • Ende des Jahres 3: Abgegrenzte = 80 Std
  • Ende des Jahres 4: Die aufgelaufenen = 160 hrs
  • Ende Jahr 5: Die aufgelaufenen = 240 hrs

etc

Mein Vorschlag:

Richten Sie eine Tabelle wie folgt ein; NAME wenn Vacation_Table Beachten Sie die Formel in B5 in Fall müssen Sie Spalte 1 Bruchstellen ändern, oder einen der anderen Parameter: (Ich habe dies auf einem anderen Arbeitsblatt setzen, aber man kann es überall setzen

enter image description here

. dann verwenden Sie diese Formel, um die Urlaubsstunden vom hire date auf den (bis C9 ändern A9, wenn Sie die Stunden bis zum Ende der Woche aufgelaufenen wollen) start of the week date aufgelaufenen zu berechnen.

=VLOOKUP(DATEDIF($J$3,A9,"y"),Vacation_Table,2)+ (DATEDIF($J$3,A9,"y")-VLOOKUP(DATEDIF($J$3,A9,"y"),Vacation_Table,1))*VLOOKUP(DATEDIF($J$3,A9,"y"),Vacation_Table,3) 

natürlich das aktuelle Guthaben zu erhalten wirst du ne Um diese von den Urlaubszeiten zu subtrahieren, sollte dies jedoch einen Anfang mit nichtflüchtigen Formeln geben.

+0

Ich habe so fest auf den Today() Funktion, dass ich die Arbeit nicht gesehen habe, danke, dass Sie mich in eine andere Richtung weisen. – Hareborn