Clever-Excel-Forum

Normale Version: Gruppeneinteilung nach Kriterien
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Liebes Forum,
 
ich stehe vor der Bewältigung der untenstehenden Aufgabe und möchte hier um Ideen und Hilfestellungen bitten um meinen Horizont zu erweitern.
 
Aufgabenstellung:
 
Einteilung von 500-1500 Menschen in Gruppen nach bestimmten Kriterien
 
Kriterien für die Einteilung:
   ·        Besuch der Veranstaltungen der jeweiligen Stufe.
      o  Stufe 1: Veranstaltung 1 & 2
      o  Stufe 2: Veranstaltung 3 & 4
      o  Stufe 3: Veranstaltung 5 & 6
   ·        Entfernung zum Veranstaltungsort (möglichst kurze Anreise)
   ·        Paareinteilung (zwei Menschen müssen zwingend in die selbe Gruppe)
   ·        Paartrennung (zwei Menschen dürfen keinesfalls in die selbe Gruppe)
   ·        Gruppengröße je nach Veranstaltungsort unterschiedlich (15 – 20)
 
 
Ziel ist es am Ende eine Gruppeneinteilung zu bekommen die möglichst alle Kriterien erfüllt.
 
Eine Beispieltabelle mit Fakedaten habe ich angehängt. Diese dient als Grundlage.
 
Ich habe Grundkenntnisse in VBA und kann ansonsten mit Excel und seinen Formeln gut umgehen. Jedoch ist mir nicht klar, ob ich mit meiner Logik weiterkomme.
 
Vorgestellt habe ich mir eine Art „Punktesystem“ in dem jeder Fall für jeden Teilnehmer durchgerechnet wird und entsprechend mehr oder weniger Punkte vergeben werden, wenn Kriterien Erfüllt werden.
 
Im Nächsten Schritt müssten mit diesen Punkten entsprechende Gruppen zusammengesetzt werden und diese Bewertet werden. Hier fehlt es mir an wissen wie genau ich das umsetzen kann.
 
Ich würde gerne von euch wissen, ob das umsetzbar ist und wo ich mich einlesen muss, damit ich entsprechend weiterkomme.
 
Vielen Dank für eure Unterstützung, 
Zigi
Hi,

(17.08.2018, 11:40)Zigi schrieb: [ -> ]Eine Beispieltabelle mit Fakedaten habe ich angehängt. Diese dient als Grundlage.

das Anhängen hat nicht geklappt.

Vorgehen:
  1. "Neues Attachment" auswählen
  2. "Attachment hinzufügen"
  3. "in den Beitrag einfügen"
Danke für den Hinweis. Jetzt auch hier der Anhang. 

P.S.: Wie lange kann ich denn Beiträge bearbeiten?
Hi,

60 Minuten nach Einstellen.
Hallo Zigi,

hier einmal einige Anmerkungen:

A) Aus meiner Sicht fehlen in deiner Beispieldatei Daten und/oder in der Beschreibung Bedingungen.
Hier einmal erste Fragen:


1. Welche Veranstaltung kann an welchem Ort wieviel Teilnehmer aufnehmen?
Hier müssten meines Erachtens Unter- und Obergrenzen angegeben werden da ja nicht sichergestellt sein muss, dass die Teilnehmer genau der Anzahl der Plätze entspricht.


2. Welche Veranstaltung findet an welchem Ort wie oft statt?
In der Stufe 1 gibt es 188 Teilnehmer, die die Veranstqaltung 2 noch nicht besucht haben. Bei maximal 20 Teilnehmern pro Veranstaltung und vier Orten, muss sie wohl öfter gehalten werden.

3. Finden eventuell bide Veranstaltungen zu einer Stufe gleichzeitig statt?

4. ...?

B) Die Fragestellung ist eigentlich ein Optimierungsaufgabe.
1. In Excel gibt es zwar einen Solver, aber für den ist diese Aufgabenstellung auf jeden Fall zu gross.
2. Ich nehme an, dass die Aufgabe als Optimierung kaum in ein Problem für lineare Optimierung übersetzt werden kann und eher durch einen evolutioinären Algorithmus gelöst werden muss.
3. Hierfür wäre aber Excel nicht das richtige Werkzeug, da dieser Algorithmus sehr rechenaufwendig ist und andere Programmierumgebungen weit mehr als 10mal so schnell sind wie Excelmakros.

Aber vielleicht habe ich die Aufgabe auch noch nicht ganz verstanden und man kann auch in Excel über Ausprobieren und Bewerten verschiedener Kombinationen eine gute Lösung finden. Als gröstes Problem sehe ich die Minimierung der Anfahrtsstrecken. Hier könnte man manuell eventuell einen grossen Teil von möglichen Kombinationen eliminieren, wenn man zB die Anfahrt von Flensburg nach München nicht zuläst, wenn auch Hamburg und Bremen als Veranstaltungsort möglich sind.


C) zu

Zitat:Vorgestellt habe ich mir eine Art „Punktesystem“ in dem jeder Fall für jeden Teilnehmer durchgerechnet wird und entsprechend mehr oder weniger Punkte vergeben werden, wenn Kriterien Erfüllt werden.
Das habe ich wohl noch nicht verstanden. Was heist für dich "jeder Fall für jeden Teilnehmer"?
Wenn für dich auch jede Teilnehmerkombination in jeder Gruppe dazugehört, ist es nicht machbar. Die Berechnungen aller Kombinationen würden auf einem einfachen Rechner, so wie ich die Aufgabe verstanden habe, Jahre oder sogar Jahrhunderte dauern.
Hallo Helmut,

danke für deine Ausführlichen Hinweise und Fragen.

A)
Zitat:1. Welche Veranstaltung kann an welchem Ort wieviel Teilnehmer aufnehmen?

Diese Information muss ich noch einpflegen. Zur einfachheit können wir aber davon ausgehen, dass alle Veranstaltungen jeweils 20 Teilnehmer aufnehemen kann.

Zitat:2. Welche Veranstaltung findet an welchem Ort wie oft statt?
Die Veranstaltungen werden entsprechend so oft stattfinden wie die Anzahl erfordert. Sollten 60 Leute Veranstaltung 1 Besuchen müssen, wird diese bei 20 Teilnehmern entsprechend 3 mal stattfinden. Die Anzahl ist somit variabel und wird durch die jeweiligen Leute in der Stufe festgelegt.

Zitat:3. Finden eventuell bide Veranstaltungen zu einer Stufe gleichzeitig statt?
Die Zeitpunkte der Veransstaltungen spielen aktuell keine Rolle. Diese werden im Nachgang manuell so geplant, dass diese Über das Jahr verteilt sind und mit den Veranstaltungsorten Termine möglich sind. Für das hier zu lösende Problem als nicht relevant.

Zitat:B) Die Fragestellung ist eigentlich ein Optimierungsaufgabe.
Danke für diesen Hinweis. Der Plan war das ohne solver in VBA zu lösen. Jedoch habe ich gestern auch in recherchen verstanden, dass ich mit BruteForce, also Ausprobieren aller möglichen Kombinationen an leistungsgrenzen komme. Ich habe auch eine Abschlussarbeit zum Thema lineare optimierung gefunden, die ich noch lesen möchte. Sie benutz die "Simplex Methode". Hier endet leider mein Wissenshorizont und ich muss mich erst mühsam vorarbeiten.  Deshalb bin ich dankbar für jeden Hinweis der Machbarkeit um entsprechend von Anfang an in die richtigen Richtung gehen zu können.

In welche Richtungen denkst du denn, wenn du sagst andere umgebungen wären schneller?
Wäre eine Kombination aus Access und VBA eine alternative?
Auch wenn das schon sehr lange her ist, aber ich habe etwas erfahrung in Javascript, PHP und eben VBA.

C)
Ja, das hat sich dann ja oben schon geklärt. Ich dachte an eine Art Bruteforce berechnung aller möglichen Kombinationen.


Vielen Dank schon mal für die Denkanstöße,
Zigi