Supportnet / Forum / Tabellenkalkulation
Zufallsgenerator in Excel?
Frage
hallo zusammen,
ich habe eine tabelle wo in spalte B über 2000 namen stehen und ich frage mich nun ob es in excel eine art von zufallsgenerator gibt, welcher mir aus den 2000 namen eine vorher definierte anzahl nach dem zufallsprinzip herausgibt. in spalte C steht der einsatzstandort. noch besser wäre, wenn ich definieren könnte, das aus dem standort 1 eine definierte anzahl ausgewählt werden soll und aus standort 2 ebenfalls eine vorher definierte anzahl.
habt ihr eine idee wie man dies automatisieren könnte?
Antwort 1 von nighty
hi :)
spalt b ist klar ,der rest net so :)
benenn die zelle worin steht wieviel zufallszahlen gezogen werden sollen aus spalte b
gruss nighty
spalt b ist klar ,der rest net so :)
benenn die zelle worin steht wieviel zufallszahlen gezogen werden sollen aus spalte b
gruss nighty
Antwort 2 von Primut
Hi,
am besten mit Makro, hier mal ein Vorschlag auf die Schnelle.
Die Auswahl wird hier einfach in Spalte E eingetragen, ließe sich aber auch anpassen.
Bei falschen Eingaben bricht das Makro einfach ab.
Es wird eine Zufallsauswahl entsprechender Anzahl für entsprechenden Standort vorgenommen.
Wichtig: Dieses Makro geht davon aus, daß zu jedem Namen in Spalte B ein Standort in Spalte C vorhanden ist.
Makro unter Alt / F11 einfügen unter Einfügen / Modul einfach reinkopieren.
Hab heut leider keine Zeit mehr, d.h. bei Fragen können die anderen weiterhelfen.
Gruß
am besten mit Makro, hier mal ein Vorschlag auf die Schnelle.
Die Auswahl wird hier einfach in Spalte E eingetragen, ließe sich aber auch anpassen.
Bei falschen Eingaben bricht das Makro einfach ab.
Es wird eine Zufallsauswahl entsprechender Anzahl für entsprechenden Standort vorgenommen.
Wichtig: Dieses Makro geht davon aus, daß zu jedem Namen in Spalte B ein Standort in Spalte C vorhanden ist.
Option Explicit
Sub Zufallsauswahl()
Randomize Timer
Dim Zeile As Integer
Dim i As Integer, AnzNam As Integer
Dim allezahlen As Integer
Dim ziehung As Integer
Dim gezogen As Integer
Dim endeindex As Integer
Zeile = Range("B65535").End(xlUp).Row
ReDim Nam(Zeile) As String
ReDim Ort(Zeile) As String
For i = 1 To Zeile
Nam(i) = Cells(i, 2).Value
Ort(i) = Cells(i, 3).Value
Next i
Ort(0) = InputBox("Eingabe Such-Standort:")
For i = 1 To Zeile
If Ort(0) = Ort(i) Then
Exit For
Else
If Ort(0) <> Ort(i) And i = Zeile Then
MsgBox ("Falsche Standorteingabe zur Suche")
Exit Sub
Else: End If
End If
Next i
Nam(0) = InputBox("Eingabe Anzahl:")
If Nam(0) > Zeile Then MsgBox ("Falsche Eingabe der Anzahl"): Exit Sub
AnzNam = 0
For i = 1 To Zeile
If Ort(0) = Ort(i) Then
AnzNam = AnzNam + 1
Nam(AnzNam) = Nam(i)
Else: End If
Next i
ReDim zuzahl(AnzNam) As Integer
ReDim zahl(Nam(0)) As Integer
endeindex = AnzNam
For allezahlen = 1 To AnzNam
zuzahl(allezahlen) = allezahlen
Next allezahlen
Cells(ziehung + 3, 5) = Ort(0)
Cells(ziehung + 2, 5) = Nam(0)
For ziehung = 1 To Nam(0)
gezogen = Int(Rnd * endeindex) + 1
zahl(ziehung) = zuzahl(gezogen)
zuzahl(gezogen) = zuzahl(endeindex)
endeindex = endeindex - 1
ReDim Preserve zuzahl(endeindex)
Cells(ziehung + 4, 5) = Nam(zahl(ziehung))
Next ziehung
End Sub
Makro unter Alt / F11 einfügen unter Einfügen / Modul einfach reinkopieren.
Hab heut leider keine Zeit mehr, d.h. bei Fragen können die anderen weiterhelfen.
Gruß
- Primut

