Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Automatische Zuweisung von Studienorten nach Bestenauslese/Punktzahlen
#1
Hi Leute,

ich habe das folgende Problem bzw. will folgende Verteilung über Excel lösen.

Problemschilderung:

Ich habe eine Liste mit ca. 2.500 Namen/Personen. Diese Personen haben sich auf 11 verschiedene Studienorte beworben. Hier kann jeder nicht nur einen Erstwunsch angeben, sondern, wenn gewünscht, eine Rangfolge von allen 11 Orten. Nun hat jede Person nach einigen Tests einen gewisse Punktzahl erreicht (die Personen erhalten Ihre Werte nach und nach bzw. die Liste wird ständig aktualisiert). Nun soll eine Art Bestenauslese stattfinden. Der mit dem besten Wert bekommt seinen Erstwunsch und dann geht es immer so weiter. Nun hat aber jeder Studienort eine maximale Kapazität von ca. 30 Plätzen. Das heißt, wenn die besten 31 Personen den gleichen Erstwunsch haben/hätten, würde die Nummer 31 nicht mehr den Erstwunsch bekommen, sondern den Zweitwunsch.

Meine Frage:

Wie bekomme ich es nun hin, dass die Personen automatisch nach ihren Werten auf die verschiedenen Studienorte verteilt werden und, wenn ein Wunschort voll ist, soll automatisch eine Zuteilung des Zweitwunsches (Drittwunsches, Viertwunsches etc.) erfolgen. Wichtig ist auch, dass, wie schon erwähnt, die Liste stets aktualisiert wird und die Reihenfolgen sich daher immer wieder ändern können.

Beispiel:

Max Mustermann hat den höchsten Wert mit 120 Punkten erreicht und sein Erstwunsch ist Nürnberg. Nürnberg hat 30 Plätze zu vergeben, nun wird Max Mustermann automatisch Nürnberg zugeordnet.

Lisa Leuchte hat einen Wert von 95 und ist damit an Platz 567. Nun hat sie auch Nürnberg als Erstwunsch angegeben. Nürnberg hat aber bereits alle Plätze vergeben. Ihr Zweitwunsch ist München und dort gibt es noch freie Plätze, also wird sie München zugeordnet.

Thorsten Träne ist der an Platz 2000 mit einem Wert von 65. Nun sind alle, sagen wir in diesem Fall einfach mal 5 Wunschorte, die er ausgewählt hat, voll. Das heißt, er scheidet aus dem Verfahren aus bzw. kann nicht studieren, weil sein Wert zu schlecht ist bzw. er nicht ausreichend viele Wunschorte angegeben hat. Hätte er 11 Wunschorte gewählt, hätte dies anders aussehen können bzw. wäre er ggf. noch auf Wunschort 10 oder 11 verteilt worden.


Ich habe in den letzten Jahren relativ viel mit Excel gearbeitet, für diese Problemstellung kommt mir aber absolut keine Löstung in den Sinn... Ich hoffe, ihr könnt mir ggf. helfen.

LG
Antworten Top
#2
Hallo,

ich hätte bitte noch ein paar Nachfragen:

Sollte die Kapazität nicht bekannt sein? Mit ca. 30 kann man nicht rechnen...

Wenn es insgesamt 330 Plätze gibt, wie kann dann Platz 567 auch noch einen Platz bekommen?

Mal angenommen, Gerald Gewinnsucht mit 100 Punkten hat Platz 330 ergattert. Nun hat Rita Wichtig 101 Punkte erreicht. Wird nun Gerald rausgeworfen?
Antworten Top
#3
Hi

Nächste Frage.
Wäre denn eine VBA Lösung für dich ok, denn darauf wird es wohl hinauslaufen.  

Gruß Elex
Antworten Top
#4
rate mit schrieb:Hallo,

ich hätte bitte noch ein paar Nachfragen:

Sollte die Kapazität nicht bekannt sein? Mit ca. 30 kann man nicht rechnen...

Wenn es insgesamt 330 Plätze gibt, wie kann dann Platz 567 auch noch einen Platz bekommen?

Mal angenommen, Gerald Gewinnsucht mit 100 Punkten hat Platz 330 ergattert. Nun hat Rita Wichtig 101 Punkte erreicht. Wird nun Gerald rausgeworfen?
Minimum sind 23 Plätze und Maximum 31. Sollten die 23 unterschritten werden, kommt der Kurs dort nicht zustanden, wovon nicht auszugehen ist. Wir können also mit 31 rechnen. Es könnte aber ggf. ansonsten jede Zahl von 23 bis 31 sein. Für unseren Fall ist aber wohl nur die 31 relevant.

Man kann ggf. auch auf Platz 567 noch einen Platz bekommen, da viele Personen maximal einen Drittwunsch angeben und wenn diese dann rausfallen, weil ihr Punktwert zu schlecht ist, rutscht halt der nächste nach. Ob das jetzt wirklich bis Platz 567 oder nur Platz 375 geht, kann ich leider noch nicht sagen. Hätte ich aber besser herausstellen können, da hast du Recht!

Das ist richtig. Wenn Rita Wichtig plötzlich besser ist als Gerald Gewinnsucht auf Platz 330, dann würde dieser rausfliegen. Daher auch der Verweis darauf, dass die Liste ständig aktualisiert wird und man quasi ein "Live-Ranking" benötigt.

Elex schrieb:Hi
Nächste Frage.
Wäre denn eine VBA Lösung für dich ok, denn darauf wird es wohl hinauslaufen. 
Gruß Elex
Ja, wäre vollkommen okay für mich. Bin da offen. Wäre toll, wenn es irgendwie automatisiert werden könnte, denn jedes Mal die Listen per Hand zu aktualisieren ist, gerade bei den 2., 3.-Wünschen etc. schon wirklich mühsam. Es könnte ja durchaus auch passieren, dass jemand plötzlich sienen Erstwunsch nicht mehr bekommt, dann in seinen Zweitwunsch rutscht und dort dann jemanden rauskegelt, der diesen Standort aber als Erstwunsch ausgewählt hatte usw. Viele Dinge, an die man denken muss... Leider ziemlich komplex. Bisher hat noch alles geklappt, aber hier stoße ich aufgrund der Komplexität leider an meine Grenzen, was Excel angeht.
Antworten Top
#5
Hallo,

wenn die Daten wie in der Beispieldatei strukturiert sind, sollte dieser VBA-Code reichen:

Code:
Sub Zuordnung()
Dim WSF As WorksheetFunction: Set WSF = Application.WorksheetFunction

For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    For j = 2 To 12
        If WSF.CountIf(Range(Cells(2, "M"), Cells(i, "M")), Cells(i, j)) < 31 Then Cells(i, "M") = Cells(i, j): Exit For
    Next j
Next i
End Sub

mfg

PS: ohne Kenntnis des letzten Posts


Angehängte Dateien
.xlsm   Studenten Zuordnung.xlsm (Größe: 158,55 KB / Downloads: 9)
Antworten Top
#6
Hi

Mein Vorschlag.


Angehängte Dateien
.xlsb   S Plätze.xlsb (Größe: 17,36 KB / Downloads: 8)
Antworten Top
#7
Fennek schrieb:Hallo,

wenn die Daten wie in der Beispieldatei strukturiert sind, sollte dieser VBA-Code reichen:

Code:
Sub Zuordnung()
Dim WSF As WorksheetFunction: Set WSF = Application.WorksheetFunction

For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    For j = 2 To 12
        If WSF.CountIf(Range(Cells(2, "M"), Cells(i, "M")), Cells(i, j)) < 31 Then Cells(i, "M") = Cells(i, j): Exit For
    Next j
Next i
End Sub

mfg

PS: ohne Kenntnis des letzten Posts

Danke dafür. Gucke ich mir einmal an!


Elex schrieb:Hi

Mein Vorschlag.

Schaue ich mir auch mal an und gebe dann eine Rückmeldung, ob es geklappt hat!
Antworten Top


Gehe zu:


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