Rotation mit Regeln
#1
Hallo,

ich hoffe sehr auf eure professionelle Hilfe. Komme weder mit Googeln noch mit einer KI weiter.


Ich möchte einen Dienstplan schreiben. In der Beispieldatei habe in Spalte A die Datumsangaben eingetragen und in Spalte B müssen die Mitarbeiter (MA) rein. Es geht insgesamt um 6 Mitarbeiter, die abwechselnd eingesetzt werden müssen. Erst kommt MA1, dann MA2, usw.; nach MA6 kommt wieder MA1.

Dazu habe ich mir Rotationsregeln in den Spalten K bis P erstellt und mit einem sverweis abgefragt. Jetzt gibt es noch eine Tabelle H bis I. Wenn der Mitarbeite hier eingetragen ist, muss er vorrangig im Dienstplan eingetragen werden. Das klappt auch noch.

Jetzt kommt mein großes Problem:
In den Spalten E bis F möchte ich die Mitarbeiter eintragen die an bestimmten Tagen verhindert sind. Wenn z.B. am 1.1. der MA1 beginnt, wäre am 2.1. der MA2 dran. Ist dieser jedoch verhindert, dann muss der nächster in der Rotationsreihenfolge, also MA3 eingetragen werden. Mit vielen wenns, auch wenn es nicht schön ist klappt das auch. Nun muss aber der MA2, welcher übersprungen wurde, am 3.1. dazwischengeschoben werden. Wie mache ich das und außerdem noch, das ab dem 4.1. die ursprüngliche Rotationsreihenfolge mit MA4 weitergeht und nicht wieder ab MA2 weiter?

Das bekomme ich absolut nicht hin.


Optional wäre es auch noch klasse, wenn ich irgendwo die Mitarbeiter reinschreiben kann (am besten in eine dynamische Tabelle) und die Rotationsreihenfolge beliebig erweiterbar ist, also auch weniger oder mehr Mitarbeiter.

Ich hoffe sehr auf eure Hilfe. Ein herzliches Dankeschön schonmal.

Viele Grüße
Dominik


Angehängte Dateien
.xlsx   Rotation.xlsx (Größe: 13,27 KB / Downloads: 11)
Antworten Top
#2
Moin

Nebenan wurde das Thema schon mal durchgekaut.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#3
Hallo

@Detlef  interessant, dein Link, war amüsant mal in andere Kochtöpfe zu gucken.  Leider keine gute Suppe!

Nun ja, hier sind wir im Clever Forum, ich denke dies e Beispieldatei zeigt das dieser name zu Recht besteht!
Antworten Top
#4
Du hast nicht definiert, wie zu verfahren ist, wenn ein Mitarbeiter für einen längeren Zeitraum verhindert ist. Und wenn der verhinderte nach der Verhinderung direkt als nächstes berücksichtigt werden soll, dann müsste doch der geplante ausgelassen werden?

Es scheint somit sinnvoll zu sein, das Regelwerk der Einteilung auf Vollständigkeit zu überprüfen.
Antworten Top
#5
Sorry, hier ist die Beispieldatei.  Ich glaube nicht das man das so einfach mit Formeln nachbilden kann.

Bitte mal ausgiebig testen, ob es so einwandfrei klappt.  Die Aufgabe ist kniffelig genug.
Bei verhindert gibt es gleich zwei Einträge für den 3.1.2025, und bei 4.1. keinen geplanten MA.
Das makro wertet zuerst die geplanten Mitarbeiter aus, führt dann die Reihenfolge weiter.
Bei verhindert wird von letzten Mitarbeiter die Zahl +1 hochgezält, damit weiter ausgefüllt.

Im Makro, in Modul 1, gibt es eine Const zMA = 6 Anweisung, die Anzahl der Mitarbeiter.
Die Anzahl kann jedesmal über eine InputBox abgefragt werden, oder als fester Wert im Makro stehen.
    n = 1: v = 2: g = 2  '1. Zeile für Variable
    'm=zMA  'Mitarbeiter Ohne InputBox laden  

Wenn du vor M das ' Zeichen entfernst kann  man auf die InputBox verzichten.
Oder du müsstest mir die MA Anzahl in einer Zelle als konstanten Wert angeben.
Ich hoffe das die Aufgabenstellung damit erfüllt ist.  Würde mich freuen.


Angehängte Dateien
.xlsm   Rotation Mitarbeiter.xlsm (Größe: 29,44 KB / Downloads: 4)
Antworten Top
#6
Ich persönlich empfinde es als etwas suboptimal, wenn die Mappe formatierte Tabellen enthält, dies aber im Makro nicht berücksichtigt wird. Denn so führt jedes verschieben der Tabellen, sofort zu Fehlern.
Antworten Top
#7
Hi, 

anbei mal ein Vorschlag mit einer Hilfsmatrix und in dem Fall mit einfachen Formeln und ohne Makro, auch wenn Gast123 meint es würde nicht gehen :D
Dafür werden die Nachfolge-Matrix und die Geplant-Matrix irrelevant und sind daher in meinem Beispiel nicht mehr enthalten.

Die Hilfsmatrix gibt gleichzeitig die Reihenfolge vor (von links nach rechts) und fängt von vorn an wenn alle durch sind.

Ich lasse quasi für den jeweiligen MA die Anzahl der bisherigen Einsätze zählen und dann denjenigen mit dem geringsten Wert von links nach rechts als einzusetzenden MA ausgeben. Sollten mehrere den gleichen Min-Wert besitzen wird der erste von links angezogen. An Tagen mit Verhinderung wird ein beliebig hoher Wert eingetragen (ich habe einfach mal 999 genommen) der das Minimum für den Tag beim jeweiligen MA ausschließt. Entsprechend hat der verhinderte Mitarbeiter dann aber ggf. am Folgetag das jeweilige Minimum und wird dann nachgezogen.

Natürlich ist diese Matrix auch von der Anzahl her änderbar.

Sollte ein MA nicht an 2 aufeinanderfolgenden Tagen eingesetzt werden dürfen (z.B. weil die Abwesenheit länger war) kannst du das mit einem zusätzlichen "wenn", welches den Einsatz in der darüberliegenden Zeile prüft, abfragen und ggf. auch mit einer 999 setzen lassen.

Also, da lässt sich noch dran rumspielen ;)

VG BigJane


Angehängte Dateien
.xlsx   Rotationsplan.xlsx (Größe: 11,88 KB / Downloads: 5)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste