Im Laufe der Zeit haben mich etliche Nachrichten erreicht, denen ich entnehme, dass einige Anwender ein Problem haben, die angebotene VBA- Lösung für den Schichtplaner umzusetzen. Deshalb habe ich mich entschlossen, eine Formellösung vorzustellen, die zwar das gleich Prinzip benutzt, aber, wie ich hoffe besser zu verstehen ist. Als erstes wird wieder ein Tabellenblatt Schichtfolge erstellt. Das kann so aussehen.
A | B | C | |
1 | Datum | Kennzahl | Schicht 1 |
2 | Mo. 01.01.2007 | 9 | F |
3 | Di. 02.01.2007 | 10 | F |
4 | Mi. 03.01.2007 | 11 | F |
5 | Do. 04.01.2007 | 12 | F |
6 | Fr. 05.01.2007 | 13 | F |
7 | Sa. 06.01.2007 | 0 | 0 |
8 | So. 07.01.2007 | 1 | 0 |
9 | Mo. 08.01.2007 | 2 | S |
10 | Di. 09.01.2007 | 3 | S |
11 | Mi. 10.01.2007 | 4 | S |
12 | Do. 11.01.2007 | 5 | S |
13 | Fr. 12.01.2007 | 6 | S |
14 | Sa. 13.01.2007 | 7 | 0 |
15 | So. 14.01.2007 | 8 | 0 |
Formeln der Tabelle | ||||
|
Betrachten wir zunächst die Spalte B, sie ist das Kernstück der Methode. Die Formel =Rest(A2;14) berechnet aus der seriellen Zahl, die sich hinter dem Datum verbirgt, einen ganzzahligen wert. Bezogen auf den 01.01.2007 sieht die Formel, die sich hinter der Funktion Rest verbirgt, so aus: =39083-14*GANZZAHL(39083/14). Das Ergebnis dieser Berechnung ist 9, wie man auch oben in der Tabelle sehen kann. 39083 ist die serielle Zahl, die für den 1. Januar steht. Der Divisor 14 ergibt sich aus den 14 Tagen, die der Schichtzyklus umfasst.
Mit Hilfe dieser Zahlen wird dem jeweiligen Kalenderdatum das richtige Schichtkürzel zugewiesen. Das funktioniert sozusagen endlos über den gesamten Kalender, auch wenn dort das Kalenderjahr gewechselt wird. Denn egal welches Datum berechnet wird, es kommt immer eine Zahl zwichen 0 und 13 heraus. Wenn die Schichtfolge länger oder kürzer ist, ist es natürlich eine andere Zahlenreihe.
B | C | D | E | ||||
2 | Januar | ||||||
3 | 01 Mo | Neujahr | |||||
4 | 02 Di | F | S | ||||
5 | 03 Mi | F | S | ||||
6 | 04 Do | F | S | ||||
7 | 05 Fr | F | S | ||||
8 | 06 Sa | Hl. 3 Könige | |||||
9 | 07 So | ||||||
10 | 08 Mo | S | F | ||||
11 | 09 Di | S | F | ||||
12 | 10 Mi | S | F | ||||
13 | 11 Do | S | F | ||||
14 | 12 Fr | S | F | ||||
15 | 13 Sa | ||||||
16 | 14 So |
Formeln der Tabelle | ||||||
|
Die Anzeige im Kalender wird mit der Funktion SVerweis realisiert. Der Suchbegriff ist unsere Rest-Funktion, die ich oben schon beschrieben hatte. Sie berechnet im Kalender aus den jeweiligen Datum die Kennzahl, die in der Suchmatrix des SVerweis gesucht, (und natürlich auch gefunden) wird. Daraus ergibt sich das Schichtkürzel, das im Kalender eingetragen wird. Ideal ist die Vorgehensweise, wenn mehrere Schichten im Kalender dargestellt werden sollen, so wie es oben der Fall ist. Es muß in diesem Fall nur die Matrix auf der Seite Schichtfolge erweitert werden. Das Bild unten zeigt die Vorgehensweise.
A | B | C | D | |
1 | Datum | Kennzahl | Schicht 1 | Schicht 2 |
2 | Mo. 01.01.2007 | 9 | F | S |
3 | Di. 02.01.2007 | 10 | F | S |
4 | Mi. 03.01.2007 | 11 | F | S |
5 | Do. 04.01.2007 | 12 | F | S |
6 | Fr. 05.01.2007 | 13 | F | S |
7 | Sa. 06.01.2007 | 0 | 0 | 0 |
8 | So. 07.01.2007 | 1 | 0 | 0 |
9 | Mo. 08.01.2007 | 2 | S | F |
10 | Di. 09.01.2007 | 3 | S | F |
11 | Mi. 10.01.2007 | 4 | S | F |
12 | Do. 11.01.2007 | 5 | S | F |
13 | Fr. 12.01.2007 | 6 | S | F |
14 | Sa. 13.01.2007 | 7 | 0 | 0 |
15 | So. 14.01.2007 | 8 | 0 | 0 |
Formeln der Tabelle | ||||
|
Ein fertiges Beispiel zum herunter Laden gibt es hier:Schichtplaner