Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zufallszahlen

Forumthread: Zufallszahlen

Zufallszahlen
08.10.2008 12:24:39
Hirsch
Hallo,
ich habe folgende Situation .
Für eine Schulungsveranstaltung haben sich 6 Teilnehmer angemeldet.
Bei jedem Termin können 4 Personen teilnehmen.
jeder Teilnehmer muss 12 Termine wahrnehmen.
Dies bedeutet dass 18 Schulungstermine angeboten werden müssen.
Jetzt meine Frage, gibt es eine Möglichkeit, per Zufallszahl oder anderer Excelformeln,
den Teilnehmern jeweils 12 Termine aus den 18 Terminen nach dem Zufallsprinzip zuzuweisen.
Es wäre schön wenn jemand eine Lösung hierfür hätte, da sich diese Situation in veränderter Form oft stellt und die manuelle Verteilung mühsam ist.
Vielen Dank im Voraus
Eugen
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zufallszahlen
08.10.2008 15:13:13
Peter
Hallo Eugen,
so könnte es gehen


Option Explicit
Public Sub Zufall()
Const iMax = 18      ' die maximale Anzahl der zu generierenden Rnd-Zahlen
Dim iIndex            As Integer  ' For/Next Schleifen Index & Index für den Array
Dim aTemp()           As Variant  ' der temporäre Array
Dim iRndZahl          As Integer  ' die erzeugte Zufallszahl zwischen 1 und iMax
Dim rZelle            As Range    ' die Ausgabe-Zelle
Dim iSpalte           As Integer  ' die Teilnehmer Spalten
   For iSpalte = 1 To 6           ' die 6 Teinehmer
'                                 ' die 18 Termine
      aTemp = Array(1, "07.10.2008", "08.10.2008", "10.10.2008", "14.10.2008", _
      "16.10.2008", "20.10.2008", "22.10.2008", "23.10.2008", "24.10.2008", "27.10.2008", _
      "28.10.2008", "29.10.2008", "03.11.2008", "04.11.2008", "05.11.2008", "10.11.2008", _
      "11.11.2008", "12.11.2008")
      iIndex = iMax    ' iMax in ein Arbeitsfeld speichern
      Randomize Timer  ' initialisiert den Zufallszahlengenerator
'         es wird nur eine Auswahl, nämlich 12 Termine wiedergegeben !
      For Each rZelle In Range(Cells(2, iSpalte), Cells(13, iSpalte))
         iRndZahl = Int((iIndex * Rnd) + 1) ' eine Zufallszahl zwischen 1 und iMax
         rZelle.NumberFormat = "dd.mm.yyyy"
         rZelle.Value = CDate(aTemp(iRndZahl)) ' die Zelle mit dem generierten Datum füllen
         aTemp(iRndZahl) = aTemp(iIndex)  ' ersetze das gezogene Datum durch das Element iMax
         iIndex = iIndex - 1              ' vermindere iMax um eins
      Next rZelle
      Range(Cells(2, iSpalte), Cells(13, iSpalte)).Sort _
         Key1:=Cells(2, iSpalte), Order1:=xlAscending, _
         Header:=xlNo, OrderCustom:=1, _
         MatchCase:=False, Orientation:=xlTopToBottom
   Next iSpalte
End Sub 


Gruß Peter
Anzeige
AW: Zufallszahlen
08.10.2008 16:22:00
Hirsch
Hallo Peter,
ich bin ja leider kein VBA Freak.
Habe dein Makro mal eingegeben, bekomme aber immer eine Fehlermeldung, "Fehler beim Kompilieren: Keine zuweisung an Datenfeld möglich"
Trotzdem Danke
Eugen
AW: Zufallszahlen
08.10.2008 15:59:00
Hirsch
Hallo Ralf,
bin leider damit nicht klar gekommen, aber mit der Lösung von WF, klappt das.
Danke Eugen
Anzeige
Teilnehmer nicht per Zufall sondern per Logik
08.10.2008 15:44:25
WF
Hi Eugen,
in A1 bis A6 stehen die Teilnehmer
in C9 bis C12 stehen die Zahlen 1 bis 4
in D9 steht =WENN(C9=6;1;C9+1)
D9 bis T12 kopieren
Die Zeilen 9 bis 12 dann ausblenden.
In C1 bis T1 stehen die Schulungsnummern 1 bis 18.
In C2 steht =INDEX($A$1:$A$6;C9)
C2 bis T5 kopieren
Salut WF
Anzeige
AW: Teilnehmer nicht per Zufall sondern per Logik
08.10.2008 15:58:02
Hirsch
Hallo WF,
deine Lösung ist zwar etwas aufwendiger zum eingeben, funktioniert aber prima.
Danke
Eugen
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige