Ich habe ein Abwesenheitssystem für Mitarbeiter. In Fällen, in denen sich der Urlaub über Teile von zwei Kalendermonaten erstreckt, muss ich die Tage auf die Monate verteilen, in denen sie aufgetreten sind. Zum Beispiel:
30 / Jan / 2017 - 3 / Feb / 2017 (5 Tage)
Das Aufteilen der 5 Tage auf ihre Monate würde folgendermaßen aussehen:
Dies wurde manuell gemacht. Wie kann ich das mit Formeln automatisch machen?
microsoft-excel
worksheet-function
Eugene KO
quelle
quelle
Antworten:
Sie können dies tatsächlich mit einem Minimum an Datumsfunktionen und Datumsberechnung tun:
Die einzigen Formeln befinden sich im Ausgabebereich.
A8 ist einfach
=A3
Das Anzeigen nur des Monatsnamens ist einfach eine Formatierung, es ist ein Standardformat.
A9 muss nur den Namen des nächsten Monats anzeigen, der ebenfalls formatiert wird. Es gibt jedoch viele Möglichkeiten, ein Datum für den nächsten Monat zu erhalten. Die Formel, die ich verwendete, war:
= DATUM (JAHR (A3), MONAT (A3) +1,1)
Das gibt Ihnen den ersten Tag des Monats nach dem Datum in A3.
Die Urlaubstage können alle im selben Kalendermonat liegen, daher lautet die Formel in B8:
= MIN (TAGESMONAT (A3) - TAG (A3) + 1, B3)
(Dies setzt voraus, dass der Urlaub nicht länger als einen Monat sein kann.) Die Formel gibt das Minimum der im Monat verbleibenden Tage oder der in B3 eingegebenen Tage zurück.
B9 ist die Differenz zwischen den Tagen in B3 und dem, was in B8 berechnet wird (was zu Null führen kann, wenn der Urlaub keine Monate umfasst):
= B3-B8
Übrigens funktioniert dies über die Jahresgrenzen hinweg.
quelle