Im Monat Juli fallen zum Beispiel bei einer fünf Tage Woche 160 Arbeitsstunden an. Diese Gesamtanzahl an Arbeitsstunden sollen ungleichmäßig, heißt, mal 6, mal 7, mal 8 oder auch mal 9 Stunden auf Montag bis Freitag verteilt werden.
Am Ende sollen es wieder als Summe 160 Stunden sein.
Ich habe schon alles mögliche versucht mit Zufallsbereich(), Zufallszahl() mit verschiedenen Abhängigkeiten. Leider finde ich keine Lösung, denn entweder ist die Summe nicht als Maßstab gesetzt, oder es herrscht Zirkelbezug usw. usf.
Findet ihr vielleicht eine Lösung oder habt ihr so ein Problem schon mal gehabt?
benutze den SOLVER. Ggf. musst Du ihn bei den Optionen - AddIns erst aktivieren. In der Summenzelle schreibst Du die Formel =SUMME(….) über die einzelnen Tageszellen rein oder eben einzeln mit + + + .... Dann startest Du den Solver, gibst als Wert für die Summenzelle 160 ein und für jede "variable" Tageszelle die Bedingungen >= 6 und <= 9 ein. Musst nur vorher mal schauen, ob der Solver so viele Bedingungen wie Du für den Monat brauchst, zulässt.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
17.09.2019, 23:25 (Dieser Beitrag wurde zuletzt bearbeitet: 17.09.2019, 23:26 von Ego.)
Hallo DennWue,
in der Anlage einmal ein Versuch über Formeln.
In der Spalte B versuche ich für alle Arbeitstage eines Monats solange eine ganze Zufallszahl zwischen 6 und 9 Stunden zu wählen, bis die restlichen Tage mit 6- oder 9-Stundentage gefüllt werden müssen.
Da die mögliche Anzahl von Stunden nicht gleichmässig um die mittlere Stundenzahl verteilt sind, wird es häufig vorkommen, dass ich zum Ende des Monats einige 9-Stundentage habe (Ein 6-Stundentag muss mit zwei und ein 7-Stundentag mit einem 9-Stundentag(e) ausgeglichen werden).
Über eine erneute Zufallsspalte C verteile ich in E die Stundenwerte aus B .
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Wenn ich die Aufgabestellung richtig verstanden habe, dann gilt folgende Beziehung
A*6+B*7+C*8+D*9=160
Einen zweiten Zusammenhang vermute ich, in dem ich annehme, dass der betroffene Monat genau 20 AT hat, also gilt a+b+c+d=20
Jetzt gilt es die (ganzzahligen) Werte für A, B, C und D zu finden.
Ich hab mir überlegt, das diese jeweils irgendwo zwischen 2 und 9 liegen, damit die Verteilung "schön" wird.
Damit ergeben sich 4096 mögliche Kombinationen, aber nur 5 erfüllen die beiden obenstehenden Bedingungen, nämlich: A;B;C;D 2;3;8;7 2;4;6;8 2;5;4;9 3;2;7;8 3;3;5;9
Jetzt muß nur noch einer der 5 Kombinationen auf die Tage per Zufall verteilt werden. Das hab ich noch nicht ausprogrammiert, es ist aber kein Hexenwerk.
Äußer dich mal zu den verschiedenen Lösungsansätzen, die hier präsentiert wurden.
18.09.2019, 22:37 (Dieser Beitrag wurde zuletzt bearbeitet: 18.09.2019, 22:38 von schauan.)
Hallöchen,
Zitat:Ich hab mir überlegt, das diese jeweils irgendwo zwischen 2 und 9 liegen, damit die Verteilung "schön" wird.
schön. 1ch würde da nix einschränken und hätte zufälligerweise gerne 15*9, 0*8, 1*7 und 3*6, also von 0 bis 15 Oder 17*9 und 1*6, oder ausnahmsweise mal einen geregelten Monat mit 20*8
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
21.09.2019, 12:21 (Dieser Beitrag wurde zuletzt bearbeitet: 21.09.2019, 12:23 von Sulprobil.)
Hallo,
Anbei Helmut's Beispieldatei um meinen Ansatz erweitert. Die Datei und mein Code werden ohne jede Garantie zur Verfügung gestellt (aber ich verwende einen aktuellen Virenscanner).
@Schauan: Versuch's nochmal - ich habe das sbRandTriang Bild durch den Code ersetzt (aber der Code ist ja auch anbei).
@Uwe: Ja, das war, ist und bleibt Werbung. Nämlich: 10 GBP für ein Hospiz zu spenden. 1 Cent würde auch reichen, um an meinen gesamten Code zu kommen. Du darfst es trotzdem weiter (negativ) als Werbung interpretieren.