Hallo Cycle,
bevor es losgeht, noch eins vorweg. Die Formel und die Idee stammt nicht von mir. Ich habe sie nach sehr langer recherche im Internet gefunden, und zwar bei Klaus-Dieter's Excelwelt. (unten rechts bei Formellösung)
So, dann wolln ma mal

(hoffe nur das die Erklärung gut genug rüberkommt

)
Als passendes übungsbeispiel nehmen wir deine Musterdatei.
Als erstes markierst Du die Spalte B, und löschst den Inhalt.
In die Zelle A1 trägst Du das Jahr 2007 ein.
In A6 kommt diese Formel rein.
=DATUM(A1;1;1)
In A7 kommt ein einfaches =A6+1 rein.
Nun wird die Zelle A7 bis nach A40 runter kopiert. Dort müsste dann der 04.02.2007 stehen.
Jetzt kommen wir zum interessanteren Teil

, weil nun zum erstenmal die Zauberformel eingesetzt wird

Sie lautet: REST()
Diese setzt Du in B6 ein, und zwar wie folgt.
=REST(A6;35)
OpenOffice.org Hilfe hat geschrieben:
REST
Hier können Sie den Restwert bei einer Division durch eine ganze Zahl berechnen.
Syntax:
REST(Divident; Divisor)
Dividend ist der Wert, dessen Rest nach der Division ermittelt werden soll.
Divisor ist die Zahl, durch die geteilt werden soll.
Beispiel:
Der Wert 17 im Feld Dividend wird durch den Divisor -1,4 geteilt. Als Restwert wird -1,2 ermittelt.
Der Wert -13 im Feld Dividend wird durch den Divisor -3,4 geteilt. Als Restwert wird -2,8 ermittelt.
Der Wert 2987 im Feld Dividend wird durch den Divisor 362 geteilt. Als Restwert wird 91 ermittelt.
[
Verstehen tue ich REST zwar nicht so ganz

, aber hauptsache sie funktioniert.
A6 in der Formel ist klar, dass ist dass Datum.
Und die 35 ist die länge des gesamt Schichtrythmuses.
Jetzt wird die Zelle B6 runter bis zu B40 kopiert. Und dann siehs Du, dass in dieser Spalte B nur ganze Zahlen von 0 - 34 stehen. Sie sind nicht chronologisch sortiert, was auch so seine richtigkeit hat, und uns nicht zu kümmern hat. Denn diese Zahlen sind der eigentliche Schlüssel für die Schichtverteilung.
Und damit ist der Grundstock für einen 5-Schichtkalender gelegt.
Um das gleich mal an einem einfachen Kalender zu demonstrieren, schreibst Du in I1 2007 rein. In I6
=DATUM(I1;1;1)
In I7 =I6+1, und so weit runter kopieren wie Du willst.
In J6 gibst Du jetzt folgende Formel ein.
=SVERWEIS(REST($I6;35);$B$6:$G$40;2;0)
Diese kopierst Du nun nach rechts rüber bis zu der Spalte N. Jetzt musst Du noch die 2 in der Formel austauschen. Und zwar in der Spalte K kommt die 3 rein, in L gleich 4, in M gleich 5 und in N gleich 6.
Bis jetzt sieht die Zeile 6, bei der Vorgabe, und bei dem Kalender gleich aus. Hab nur geduld, das ändert sich noch
Doch bevor es weitergeht, eine kurze Erklärung zu dieser Formel.
Wie schon vorhin, wird das Datum durch REST irgendwie dividierd. Die Zahl, die jetzt dabei rauskommt, ist die zu suchende Zahl in der Suchspalte B. Die Suchspalte trägt in der Matrix $B$6:$G$40 den Spaltenindex 1. Die Zahl, die Rest ermittelt, ist vorhanden!! Und so wird jetzt das zurückgegeben, was in der 2ten Spalte in der Matrix $B$6:$G$40 steht, sie trägt den Namen "C".
Nehmen wir mal ein kleines beispiel.
Datum in der Spalte I ist der 01.01.2007
REST($I6;35) ergibt = 23
In der Suchspalte B die Zahl 23 suchen. Die Steht z.B. in der B6. Und nun aus C6 den Buchstaben F zurückgeben. Das wars.
Weiter geht's.
Jetzt mit der Maus den Bereich J6:N6 markieren, und so weit runterkopieren wie der eben erstellte Kalenderbereich ist. Und "Schwupp-di-wupp" ist der Kalender mit den Schichten ausgefüllt.
Nun einfach mal in I1 ein anderes Jahr eingeben, und "1 2 3 Das ist keine Zauberei" sind alle Schichten automatisch neu eingetragen.
Sollte aber die Schichtvorgabe nicht wie erhofft mit dem tatsächlichen Datum übereinstimmen, dann muss das Jahr in A1 so lange geändert werden, bis das es passt.
Ja ups! Hätte ich jetzt beinahe vergessen.
Wenn Datum mit der Schichtvorgabe passt,
Auf keinen Fall dort dann noch änderungen vornehmen!! Sollte es schwierigkeiten geben, einfach melden.
Ich hoffe, dass es so weit verständlich ist. Und das Du jetzt mit dieser neuen technologie dir viel Schneller, einfacher und unkomplizierter deinen neuen gewünschten Schichtkalender erstellen kannst.
Is schon leicht komisch.
Da habe ich ein Thema zu einem "Problem" eröffnet, und gebe mir selber eine Antwort. Aber so lange auch andere etwas damit anfangen können, habe ich es gerne gemacht
Gruß
balu