Office: Gruppeneinteilung mit Präferenzen

Helfe beim Thema Gruppeneinteilung mit Präferenzen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Bei uns werden in den letzten Schultagen diverse Workshops für unsere Schüler angeboten. Dabei darf jeder (ca 180) seine Wünsche / Präferenzen (3... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von jessalyna, 4. Juni 2017.

  1. Gruppeneinteilung mit Präferenzen


    Bei uns werden in den letzten Schultagen diverse Workshops für unsere Schüler angeboten. Dabei darf jeder (ca 180) seine Wünsche / Präferenzen (3 Stück) angeben. Zur Auswahl stehen etwa 12 Workshops, die je nach Angebot entweder von 12 oder 24 Schülern besucht werden können.
    zB Schüler 1 nennt Workshops 4,7,9 und wird einem dieser 3 zugeteilt.

    Wollte mal fragen, ob Excel (oder ein anderes Programm) das irgendwie mit vlookup einteilen kann, wenn ich Schüler und die 3 Präferenzen in einer Tabelle eingetragen habe.

    Damit wäre mir sehr geholfen. Danke im Voraus.

    -Jess

    :)
     
    jessalyna, 4. Juni 2017
    #1
  2. Hallo Jess,

    ich denke deine Fragestellung ist noch etwas lückenhaft.

    In der Regel wird es ja wohl so sein, dass es Workshops gibt, die viele besuchen wollen und solche, die weniger gefragt sind.

    Wenn deine Schülerliste nun alphabetisch sortiert ist und entsprechend der Präferenzen die Kurse zugewiesen werden, dann werden wohl Anton und Anna gemäß Präferenz 1 eingeteilt, aber Veronika und Walter müssen sehen was übrig bleibt.

    Insofern wäre es schön, wenn du die die Aufgabenstellung präziser beschreiben könntest. Und was passiert wenn nur eine oder 2 Präferenzen genannt wurde, bzw. wenn auch für die 3. Präferenz schon alle Plätze belegt sind?

    Das alles muss ja heute schon irgendwie, wenn auch manuell, geregelt sein.

    Somit solltest du es auch beschreiben können.
     
    WS-53, 6. Juni 2017
    #2
  3. Ja natürlich gibt es Workshops, die weniger gefragt sind. Die Kollegen aus dem Vorjahr (die das immer händisch eingeteilt haben) haben deshalb immer versucht, den Workshop mit den wenigsten Nennungen zuerst zu füllen.
    Das heißt angenommen Workshop 5 hat überhaupt die wenigsten Nennungen (egal ob Erst-, Zweit-, oder Drittpräferenz), dann wird Workshop 5 als erst gefüllt.

    Alle Schüler MÜSSEN 3 Präferenzen angeben.

    Bis jetzt sind die Schüler immer in einem von ihnen genannten Workshop gelandet.

    Konkrete Aufgabenstellung:
    Bei uns an der Schule gibt es 9 Klassen mit zwischen 13 und 22 Kids.
    In den letzten Schultagen bieten wir Lehrer jeweils verschiedene Workshops an. Gruppengröße sollte pro Lehrer 12 nicht übersteigen. Da aber manche Lehrer zu zweit einen Workshop anbieten, ergibt sich für manche Workshops eine Maximalgröße von 24.
    Alle Schüler aus den 9 Klassen müssen eine Erst-, Zweit- und Drittnennung abgeben, welchen Workshop sie besuchen möchten.

    Da die Kollegen dies in den letzten Jahren immer mit ca 100 handgeschriebenen Zettelchen eingeteilt haben, bin ich für dieses Jahr auf der Suche nach einer einfacheren Lösung.

    Danke und LG
    -Jess
     
    jessalyna, 6. Juni 2017
    #3
  4. Gruppeneinteilung mit Präferenzen

    Völlig unrealistisch:

    12 Workshops. 180 Schüler. Ergibt rechnerisch 15 Schüler pro Workshop.

    12 oder 24 Schüler pro Workshop sind möglich. Also muss mindestens bzw. genau ein Viertel aller Workshops von 2 Lehrern geführt werden, wobei dann auch die blödesten Workshops voll belegt sind.

    Ich würde nun die Schüler ALLE Workshops in eine Präferenzliste von 1 bis 12 eintragen lassen. Nur dann klappt das (garantiert). Sonst nämlich (wahrscheinlich) nicht.
     
    lupo1, 6. Juni 2017
    #4
  5. Hallo Jess,

    wenn deine Beschreibung des bisherigen Verfahrens vollständig ist (und nicht doch noch in einzelnen Fällen nicht beschriebene Anpassungen durchgeführt wurden), kann man es leicht in Excel umsetzen.

    Zwei Bemerkungen:

    1) Priorität der wenigsten Nennungen:
    Ich halte dieses Verfahren nur dann für fair, wenn den Schülern nicht vorgegaukelt wird, dass es eine Hierarchie in ihren Wünschen gibt, da ja eine exotische Drittnennung berücksichtigt wird, auch wenn in dem Workshop der Erstnennung noch Platz ist.

    2) Lösbarkeit:
    Auch wenn in der Vergangenheit mit diesem Verfahren jedem Schüler ein Workshop aus seinen Wünschen zugeteilt werden konnte, muss das (wie Lupo geschrieben hat) in der Zukunft nicht immer möglich sein.
    Vielleicht könnte man schon überlegen wie in diesem Fall der Engpass dargestellt werden soll.
     
  6. Hallo Jess,

    in der Anlage einmal ein Beispiel mit Prioritäten in den Schülerwünschen.

    a) Verfahren:
    1) allgemein
    Für jede Ebene der Wünsche wird für jeden Workshop nachgesehen wieviele Schüler, die auf den vorherigen Ebenen noch nicht berücksichtigt wurden, auf der aktuellen Ebene diesen Workshop gewählt haben.
    Ist die Zahl grösser als die Anzahl der Restplätze in diesem Workshop, wird die Liste über Zufallszahlen reduziert.
    Die restlichen Schüler werden dem Workshop zugeordnet.
    2) nicht immer lösbar
    Diese Verfahren führt nicht immer zu einer Lösung, in der alle Schüler berücksichtigt werden. Das kann daran liegen, dass es für dieses Problem gar keine Lösung gibt (siehe unten), oder, dass bei dem Zufallsprozess Schüler ausgewählt wurden, die das Restproblem unlösbar machen.
    In dem Programm wird zur Zeit bis zu 1000 Mal versucht eine Lösung zu finden, in der für jeden Schüler einer der n Wünsche berücksichtigt wird.

    b) Bemerkungen:
    1) nicht gerecht
    Das wiederholte Versuchen eine Lösung zu finden bevorzugt die Schüler, die nur populäre Workshops ausgewählt haben, da ein abwählen dieser Schüler aus überbelegten Workshops häufiger zu Nichtlösbarkeit des Restproblems führt.
    2) nicht immer lösbar
    Wenn bei einem Aufruf (in den zur Zeit 1000 Versuchen) keine Lösung gefunden wurde, sollte man es mehrmalig probieren, da sich die Auswahl durch den Zufallsprozess jedes mal ändert.
    Falls auch nach mehrmaligem Versuch keine Lösung gefunden werden kann, kann man die Workshopgrössen anhand der Anzahl der Wünsche vielleicht anpassen.
     
  7. Hallo Oge,

    wir haben ein ganz ähnliches Problem, für das wir noch keine Lösung gefunden haben. Wir müssen zwei Mal im Jahr eine (un)gewisse Anzahl von Teilnehmern auf eine bestimmte Anzahl von Gruppen verteilen. Im nächsten Durchgang gibt es z.B. 30 Gruppen und bis zu 240 Teilnehmer. Dabei müssen wir berücksichtigen, welche für sie möglichen Gruppen die Teilnehmer (TN) im Vorfeld angegeben haben. Die Auswahl geeigneter Gruppen können wir über einen Doodle erledigen und die Daten anschließend als Tabelle exportieren.Ein Beispiel wie die Tabelle dann aufgebaut ist, habe ich im Anhang hochgeladen.
    Bei der Verteilung müssen wir diese Bedingungen berücksichtigen:
    - Eine Gruppe (g*) muss minimal 8TN und maximal 11 TN enthalten.
    - Wenn Gruppen komplett leer bleiben, ist das nicht schlimm
    - Die Wünsche der Teilnehmer (TN) sollten berücksichtigt werden, d.h. niemand sollte einer Gruppe zugeordnet werden, die er nicht gewählt hat. Unlösbare Fälle könnten vielleicht markiert oder separat aufgelistet werden, um sie später von Hand zu bearbeiten.

    Die Unterschiede zu der bereits vorliegenden Lösung sind m.E. dass wir per Doodle 1. keine Prioritäten, sondern nur gleichberechtigte Wünsche erfassen können, 2. die Anzahl der Wünsche nicht festgelegt ist.

    Meine Fähigkeiten reichen leider nicht annähernd aus, um deine Lösung entsprechend anzupassen. Von Hand könnte ich höchstens unser Tabellenlayout an deines anpassen.
    Siehst du eine Möglichkeit unser Problem auf Grundlage deines Beispiels für Jess (annähernd) zu lösen?

    Herzliche Grüße
    Daniel
     
  8. Gruppeneinteilung mit Präferenzen

    Hallo Daniel,

    auch hier ist eine vollständige Überprüfung aller Kombinationen nicht möglich.
    Bei einem möglichen Vorgehen über Zufallszuordnungen -wie in der Version für Jess- könnte die sehr restriktive Begrenzung der Teilnehmerzahl pro Gruppe hinderlich sein da sie den Lösungsraum stark begrenzt.

    zu:
    Das wir nicht notwendig sein, da sich die Nebenbedinungen doch sehr stark unterscheiden und dadurch ein anderer Algorithmus notwendig wird.
    Kannst du mir aus der Vergangenheit einige Beispiele der Wünsche bereitstellen, damit ich meine Überlegungen zu einem Algorithmus an realen Daten testen kann?
    Vielleich kannst du mir auch kurz beschreiben, wie ihr in der Vergangenheit vorgegangen seid.
     
  9. Hallo Oge,

    danke für deine schnelle Antwort.
    Wir müssen diese Zuteilung zum ersten Mal vornehmen, daher habe ich noch keine Erfahrungswerte und auch noch keinen manuellen Lösungsweg. Im schlechtesten Fall würden wir alle Teilnehmer ohne vorherige Abfrage ihrer Wünsche per Zufallsprinzip einteilen. In jeder Gruppe würden wir dabei 1-2 Plätze als Reserve unbesetzt lassen. Jeder Teilnehmer, der einen unpassenden Termin bekommen hat müsste sich dann bei uns melden, damit wir in der Reserve eine passende Alternative finden.

    Die Erfassung der Wünsche per Doodle setzt uns leider schon ein paar Grenzen. Wir könnten den Teilnehmern zwar sagen, dass sie mindestens x Wünsche ankreuzen oder genau x Wünsche, technisch lässt sich das über den Doodle aber nicht sicherstellen. Wenn jeder alle möglichen Termine ankreuzen würde (auch das können wir den TN empfehlen), wäre die Chance auf eine gute Verteilungslösung vermutlich am höchsten, oder?

    Viele Grüße
    Daniel
     
  10. Hallo Daniel,

    anbei einmal eine Formellösung, sicherlich in dieser Art als VBA-Lösung etwas angenehmer im Handling ist, da ich mit Zufallszahlen arbeite und deshalb die automatische Berechnung abgeschaltet habe.

    Jede Betätigung der F9-Taste bewirkt somit eine Berechnung.

    Ich habe die Tabellenblätter "Zuordnung" und "Kurseinteilung" hinzugefügt.

    Im Tabellenblatt "Zuordnung" wird eine Zufallszahl generiert, für die der Rang bestimmt und entsprechend des Ranges aus "Umfrage" die Teilnehmer mit ihren Kurswünschen übernommen.

    Damit ist sichergestellt, dass nicht immer diejenigen, deren Namen mit A beginnt, bevorzugt werden. Die Kurse in "Zuordnung" sind nach Häufigkeit der Nachfrage absteigend sortiert.

    In der Matrix wird immer dann der Kurs zugeordnet, wenn dieser mehr als 7 Mal nachgefragt wurde und bisher noch nicht mehr al 10 Mal zugeordnet wurde. In der Spalte "AH" wird dann der zugeordnete Kurs noch einmal genannt.

    In Umfrage wird der zugeordnete Kurs in Spalte AF übernommen und in Spalte AG daraus die Kurs-/Teilnehmernummer generiert, die benötigt wird, um im Tabellenblatt "Kurseinteilung" die Teilnehmer der einzelnen Kurse auflisten zu können.

    Weiterhin wird im Tabellenblatt "Umfrage", der jeweils zugeordnete Kurs grün markiert.

    In Zeile 6 sind per roter Markierung die Kurse erkennbar, bei denen die Mindestteilnehmerzahl von 8 nicht erreicht wurde.

    Ich denke, damit solltest du eine gute Basis haben.

    Das Zip-File wurde notwendig, da ich die die Tabelle auf 240 Teilnehmer erweitert habe und diese somit für den direkten Upload zu groß ist.
     
  11. Hallo Daniel,

    da war ich wohl zu langsam.
    Trotzdem möchte ich dir in der Analge meine VBA-Lösung vorstellen. Und hier noch einige Bemerkungen:

    A) zu:
    1) "alle möglichen Termine"
    Ich hoffe das heist nicht alle vorhandenen Termine*wink.gif* . Dann wäre meine Arbeit ja sinnlos gewesen.

    2) Ansonsten ist es jedoch wahrscheinlicher eine gültige Lösung zu finden wenn möglichst viele Teilnehmer möglichst viele Termine akzeptieren.
    Eine Empfehlung von möglichst vielen und mindestens x Wünschen ist bestimmt hilfreich.

    B) Zur Datei

    1) allgemein
    Die Datei besteht zur Zeit aus vier verschiedenen Teilen.

    2) 1.Teil: Eingabedaten (zur Zeit A2:AE242)
    In der ersten Zeile/Spalte erwartet das Programm die Teilnehmer-/Gruppenkennungen.
    In allen anderen Zellen erwartet das Programm Nullen und Einsen. Eine Eins steht dabei für "Termin möglich".
    Diesem Eingabebereich habe ich den Namen "Liste" gegeben. Das Programm greift auf die Daten unter diesem Namen zu. Die "Liste" kann beliebig in der Datei verschoben werden.
    Das Programm ermittelt die Anzahl der Teilnehmer und Gruppen aus der grösse der "Liste" falls mehr Teilnehmer oder Gruppen erforderlich sind, sollten die zusätzlichen Zeilen/Spalten nach der ersten und vor der Letzten Zeile/Spalte der "Liste" eingefügt werden, damit der benannte Bereich automatisch angepasst wird.

    3) 2. Teil: Ausgabedaten (zur Zeit AJ2:BN242)
    Ich habe einer Zelle der Datei den Namen "Ausgabe" gegeben. Das Programm schreibt die Ausgabedaten (zur Zeit für eine einfachere Prüfung im gleichen Format wie die Eingabedaten nur mit einem Eintrag pro Teilnehmer) ab der Zelle "Ausgabe". Eventuell vorhandene Inhalte in dem Bereich werden gnadenlos überschrieben. Diese Zelle kann beliebig in der Datei positioniert werden (auch in ein anderes Blatt).
    Die Ausgabe der Zuordnung Teilnehmer>Gruppe, kann auf Wusch auch ganz anders aufbereitet werden.

    4) 3. Teil: Prüffelder (zur Zeit Spalten AF:AI und Zeile 243)
    Diese Zellen sind für das Programm nicht notwendig, sie sollten für mich nur die Richtigkeit der Ergebnisse und Testfälle anzeigen.

    5) 4. Teil: Erzeugung Testdaten (zur Zeit Zeilen 245:485)
    Auch diese Zellen sind für das Programm nicht notwendig. Ich habe hier die Testeinträge erst als Funktion (wie Zelle B245) und dann als Wert zur übernahme in die Eingabedaten eingetragen.

    6) Vorraussetzung
    Für jeden Teilnehmer muss mindestens Terminwunsch eingetragen werden. Ansonsten endet das Programm nach vielen Versuchen (auf meinem Rechner nach ca 8 Sekunden) auf jeden Fall mit einer Fehlermeldung.

    7) Programmablauf
    Das Programm ermittelt im ersten Schritt für die Gruppen passende Teilnehmer bis zur Mindestteilnehmerzahl pro Gruppe. Hierbei werden Gruppen mit wenigen Teilnehmerwünschen und innerhalb der Gruppen Teilnehmer mit wenig Gruppenwünschen vorrangig behandelt. Falls bei hierbei festgestellt wird, dass für eine noch nicht bearbeitete Gruppe nicht mehr genügend mögliche Teilnehmer vorhanden sind wird diese Gruppe nicht mehr berücksichtigt.
    Im zweiten Schritt werden die noch nicht zugeordneten Teilnehmer auf die Gruppen, in denen noch Platz ist aufgeteilt.
    In beiden Schritten gibt es bei der Auswahl der Teilnehmer und Gruppen einen Zufallsprozess. Falls das Programm merkt, dass das Problem mit der aktuellen Auswahl nicht mehr lösbar ist, wird der Prozess für den aktuellen Schritt neu gestartet.

    8) Anpassungen
    Falls das Programm für die aktuellen Eingabedaten bei mehrmaligen Versuchen (durch den Zufallsprozess könnte ein späterer Versuch ein Lösung erzeugen) keine Lösung findet und die Eingabedaten nicht mehr abgeändert werden können, könnte man im Programm die Mindestteilnehmerzahl pro Gruppe reduzieren oder die maximale Teilnehmerzahl pro Gruppe erhöhen. Sie sind zu Beginn als Konstante (Deklaration "const") festgelegt.
     
  12. Wow, vielen Dank euch beiden! Ich finde beide Lösungen total beeindruckend, vor allem weil sie ganz unterschiedlich zu einer Lösung führen!
     
  13. Gruppeneinteilung mit Präferenzen

    Hallo Daniel,

    ich habe das ganze nun noch einmal überarbeitet. Vor allem hat mich gestört, dass wegen der Zufallszahlen, jede Aktualisierung ständig andere Ergebnisse ermittelt hat und so eine Kontrolle sehr schwierig war.

    Ich musste nun zwar auch etwas Makroprogrammierung einsetzen, aber dies hält sich stark in Grenzen.

    Die Zufallszahlen sind nun in das Tabellenblatt "ZZ" (ZufallsZahlen) in Spalte A gewandert. Im Tabellenblatt "Umfrage" gibt es nun 2 Drucktasten. Wenn du die Taste mit dem Titel "Kurseinteilung durchführen" drückst und mit JA bestätigst, werden die Zufallszahlen im Tabellenblatt ZZ mittels "Kopieren > Inhalte einfügen > Werte" von Spalte A in Spalte B übertragen.

    Und da nun die Reihenfolge Der Teilnehmer über die Zufallszahlen der Spalte B gebildet wird, bleibt diese solange konstant, bis du die Taste entweder wieder erneut drückst, oder du die Taste "Kurseinteilung löschen" drückst.

    Die Löschtaste bewirkt, dass der Inhalt der Spalte B im Tabellenblatt ZZ gelöscht wird und somit sämtliche Einteilungen zurückgenommen werden. Weiterhin werden im Tabellenblatt "Kurseinteilung" die manuell vorgenommenen Einteilungen gelöscht.

    Im neuen Tabellenblatt "Kurse" kannst du Kursvorgaben für: max. Plätze, Füllgrenze, mindest Anzahl und Füllgrenze Runde 2 machen.

    Mit dem Kurseintrag "Default" legst du die Standardwerte fest. Nur für Kurse, bei denen es Abweichungen gibt, sind hier weitere Einträge erforderlich. Die Reihenfolge spielt dabei keine Rolle.

    Im Tabellenblatt "Zuordnung" wird nun 1-mal von größter zur geringsten Nachfrage eingeteilt und in einer 2. Runde, für die übrig gebliebenen, wird dann von der geringsten zu größten Nachfrage eingeteilt.
    Im Tabellenblatt "Kurseinteilung" siehst du dann alle Kurse mit den zugeordneten Teilnehmern.

    Dabei ist die individuelle Teilnehmergrenze markiert. Ebenso werden Kurse markiert, die zu wenige Teilnehmer haben.

    Unterhalb der Kurseinteilung werden all die Teilnehmer gezeigt, für die entweder keine Einteilung vorgenommen wurde, oder deren zugeordneter Kurs zu wenige Teilnehmer hat.

    In diesem Bereich kannst du nun in Spalte H (Titel: man. Zuteilung), die übrig gebliebenen Teilnehmer manuell einem Kurs zuweisen.

    Teilnehmer, die du von einem Kurs umbuchst, der zu wenige Zuweisungen hat, werden im alten Kurs, mittels bedingter Formatierung, dunkelgrau hinterlegt dargestellt.

    Die Spalten mit dem Titel "Platz" und "Key" enthalten Formeln, über deren Ergebnisse dann im oberen Teil, jeder manuell eingeteilte Teilnehmer sofort im jeweiligen Kurs gezeigt wird.

    Im Tabellenblatt "Umfrage", werden die von den Teilnehmern gewählten Kurse gelb markiert, die automatisch zugewiesenen, werden grün markiert und die manuell zugewiesenen werden braun markiert.

    Achtung! Da die Mappe nun für den Upload zu umfangreich geworden ist, habe ich im Tabellenblatt "Zuordnung" alles ab Zeile 61 gelöscht.
    Damit alles richtig funktioniert, musst du die Formeln der letzten Zeile bis auf Zeile 260 runter ziehen.
     
  14. Hallo WS-53,

    danke für deinen Hinweis per Mail, dass du noch eine neue Version erstellt hast, die Forenbenachrichtigung ist leider im Spamordner gelandet!

    Die Datei berücksichtigt auf jeden Fall viel mehr, als ich am Anfang bedacht habe. Nebem dem endgültigen Resultat finde ich die Bedienung jetzt auch ziemlich komfortabel. Vielen Dank für deine Arbeit!

    Beste Grüße
    Daniel
     
  15. Hallo an alle Interessierten,

    da ich in den letzten zwei Jahren schon einige Fragen zu dem Thema gefunden habe, möchte ich meinen Beitrag #6 ein wenig vervollständigen, damit die Datei an die jeweiligen Bedürfnisse angepasst werden kann.

    A) Aufgabe:
    Das Programm ermittelt wenn möglich
    a) für eine vorgegebene Anzahl von Workshops mit vorgegebenen maximaler Teilnehmerzahl und
    b) für eine vorgegeben Anzahl von möglichen Teilnehmer mit einer priorisierten Wunschliste
    eine zulässige Zuordnung.


    B) Verfahren:
    1) allgemein
    Da bei einer grösseren Anzahl von Teilnehmern eine vollständige Untersuchung aller Kombinationen zeitlich nicht möglich ist, versucht das Programm eine gültige Kombination über Zufallsprozesse zu ermitteln.
    Für jede Ebene der Wünsche wird für jeden Workshop nachgesehen wieviele Schüler, die auf den vorherigen Ebenen noch nicht berücksichtigt wurden, auf der aktuellen Ebene diesen Workshop gewählt haben.
    Ist die Zahl grösser als die Anzahl der Restplätze in diesem Workshop, wird die Liste über Zufallszahlen reduziert.
    Die restlichen Schüler werden dem Workshop zugeordnet.
    2) nicht immer lösbar
    Diese Verfahren führt nicht immer zu einer Lösung, in der alle Schüler berücksichtigt werden. Das kann daran liegen, dass es für dieses Problem gar keine Lösung gibt (siehe unten), oder, dass bei dem Zufallsprozess Schüler ausgewählt wurden, die das Restproblem unlösbar machen.
    In dem Programm wird zur Zeit bis zu 10.000 Mal versucht eine Lösung zu finden, in der für jeden Schüler einer der n Wünsche berücksichtigt wird.

    C) Bemerkungen:
    1) nicht gerecht
    Das wiederholte Versuchen eine Lösung zu finden bevorzugt die Schüler, die nur populäre Workshops ausgewählt haben, da ein abwählen dieser Schüler aus überbelegten Workshops häufiger zu Nichtlösbarkeit des Restproblems führt.
    2) nicht immer lösbar
    Wenn bei einem Aufruf (in den zur Zeit 10.000 Versuchen) keine Lösung gefunden wurde, sollte man es mehrmalig probieren, da sich die Auswahl durch den Zufallsprozess jedes mal ändert.
    Falls auch nach mehrmaligem Versuch keine Lösung gefunden werden kann, kann man die Workshopgrössen anhand der Anzahl der Wünsche vielleicht anpassen.
    Falls es häufiger vorkommt, dass erst nach mehrmaligen Aufruf eine gültige Lösung gefunden wird (der Lösungsraum im Verhältnis zum Suchraum also sehr klein ist), kann man im Programm die Anzahl der Versuche erhöhen (Konstante "lngMaxVersuch").
    Ein Nachteil dabei ist, dass sich, falls keine Lösung gefunden wird, die Zeit bis zur Beendigung des Programms linear erhöht.

    D) Vorraussetzungen
    a) benötigt werden
    neben dem Programmcode und dem Button zum Aufrufen des Codes drei benannte Bereiche:
    1) benannter Bereich "Wuensche"
    In diesem Bereich werden die priorisierten n Wünsche der Teilknehmer eingetragen. In der ersten Spalte erwartet das Programm eine eindeutige Kennung des Teilnehmers und in den folgenden Spalten die Workshopnummer nach Priorität.
    Anhand der Anzahl der gefüllten Teilnehmerkennungen im Bereich ermittelt das Programm die Anzahl der Teilnehmer und anhand der Anzahl der Spalten die mögliche Hierarchietiefe der Wünsche.
    2) benannter Bereich "Workshops"
    In diesem Bereich erwartet das Programm in der ersten Zeile eine eindeutige Kennung des Workshops und in der zweiten Zeile die maximale Teilnehmerzahl.
    Die Workshopnummer für die Wunschliste ergibt sich aus der Spaltennummer des Bereiches.
    3) benannte Zelle "Ausgabe"
    Ab dieser Zelle werden die Ergebnisse der Berechnung eingetragen. Der Bereich bis zur maximalen Teilnehmerzahl aller Workshops wird immer überschrieben. Falls sich diese Zahl reduziert, sollte man den Bereich darunter manuell löschen.
    b) nicht benötigt werden
    1) der Button cbWunsch und das zugehörige Programm
    Es dient lediglich zum Erzeugen von Testdaten für die Wunschliste.
    2) die dritte Zeile des Bereiches "'Workshops"
    Auch sie wird nur für die Erzeugung von Testdaten benötigt.
    3) Die Zeilen mit "Anzahl Wunsch n" in der ersten Spalte
    Sie sollen nur die Häufigkeiten der Wünsche auflisten.

    E) Anpassen
    a) Erweitern der Anzahl der Teilnehmer und Workshops und der Hierarchietiefe der Wünsche.
    Da das Programm diese Zahlen anhand der Grösse der benannten Bereiche ermittelt müssen nur die Bereichsgrenzen angepasst werden. Dies kann explizit über "Formeln">"Namensmanager" geschehen oder implizit über Ergänzen von Zeilen/Spalten nach der ersten und vor der letzten Zeile/Spalte des aktuellen Bereiches. Im folgenden beschreibe ich nur die implizite Erweiterung mit den im Anhang eingestellten Bereichsgrenzen.
    1. Anzahl der Teilnehmer
    Nach der zweiten und vor der 181.ten Zeile im Blatt "'Wuensche" eine entsprechende Anzahl von Zeilen einfügen.
    2. Hierarchietiefe
    Nach der Spalte A und vor der Spalte D im Blatt "'Wuensche" eine entsprechende Anzahl von Spalten einfügen.
    Falls im Blatt "'Workshops" die Zeilen mit dem Text "Anzahl Wunsch n" in der ersten Spalte weiterhin angezeigt werden sollen, müssen die entsprechenden Zeilen hinzugefügt und die Formeln angepasst werden.
    3. Anzahl der Workshops
    Nach der Spalte B und vor der Spalte M im Blatt "Workshops" eine entsprechende Anzahl von Spalten einfügen.
    Falls im Blatt "'Workshops" die Zeilen mit dem Text "Anzahl Wunsch n" in der ersten Spalte weiterhin angezeigt werden sollen, müssen die entsprechenden Formeln angepasst werden und in der ersten Zeile eine fortlaufende Nummerierung geschrieben werden.
    b) Reduzierung der Anzahl der Teilnehmer und Workshops und der Hierarchietiefe der Wünsche.
    Dies kann wiederum durch Veränderung (explizit oder implizit) der Bereiche geschehen aber auch durch eine Anpassung der Eingaben.
    1. Anzahl der Teilnehmer.
    Da nur Teilnehmerzeilen berücksichtigt werden, die in der ersten Spalte eine Kennung haben können entsprechend viele Zeilen leer bleiben.
    2. Hierarchietiefe
    Hier kann man die hinteren Spalten einfach leeren. Die Hierarchietiefe wird im Programm zwar berücksichtigt, da sie aber leer ist, beeinflusst sie nicht das Ergebnis und benötigt so gut wie keine Zeit.
    3. Anzahl der Workshops
    Im Bereich "Wuensche" nur Nummern von vorhandenen Workshops eintragen.
     
Thema:

Gruppeneinteilung mit Präferenzen

Die Seite wird geladen...
  1. Gruppeneinteilung mit Präferenzen - Similar Threads - Gruppeneinteilung Präferenzen

  2. Gruppeneinteilung: Zufallsgenerator ohne Wiederholung

    in Microsoft Excel Hilfe
    Gruppeneinteilung: Zufallsgenerator ohne Wiederholung: Hallo, ich versuche gerade mit Excel eine Datei zu erstellen, welche aus einem Kreis von 50 Personen zufällige Zweiergruppen erstellt. Die Gruppenaufteilung muss mehrfach durchführbar sein und...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden