da das Thema "Wichteln" wieder im Umlauf ist, würde ich gerne per Zufallsprinzip Paare bilden.
Vielleicht könnt ihr mir dabei helfen dass dies per Klick ausgewertet wird.
https://www.herber.de/bbs/user/116685.xlsx
Vielen Dank.
Liebe Grüße
Amintire
Sub paare()
Dim lngRow As Long, lngCol As Long, lngRnd As Long, lngC As Long
Dim varIn As Variant, varOut() As Variant
If Application.CountA(Range("A4:A" & Application.Max(4, Cells(Rows.Count, 1).End(xlUp).Row))) < 2 Then
MsgBox "Zu wenige Namen!"
Else
varIn = Application.Transpose(Range("A4:A" & Application.Max(4, Cells(Rows.Count, 1).End(xlUp).Row)))
lngC = Int(UBound(varIn) / 2)
Redim Preserve varOut(1 To lngC, 1 To 2)
lngCol = 1
Randomize Timer
Do
lngRnd = Int((UBound(varIn)) * Rnd() + 1)
lngRow = lngRow + 1
If lngRow > lngC Then
lngRow = 1
lngCol = 2
End If
varOut(lngRow, lngCol) = varIn(lngRnd)
If UBound(varIn) = 1 Then Exit Do
varIn(lngRnd) = varIn(UBound(varIn))
Redim Preserve varIn(1 To UBound(varIn) - 1)
Loop
Range("C4").Resize(lngC, 2) = varOut
End If
End Sub
Um Paare in Excel zufällig zu bilden, kannst du die folgenden Schritte ausführen:
Namen eingeben: Erstelle in einer Spalte (z.B. Spalte A) eine Liste der Namen, die du paaren möchtest.
Zufallszahlen generieren: In der nächsten Spalte (z.B. Spalte B), füge die Funktion =ZUFALLSZAHL()
für jeden Namen ein. Das sieht dann so aus:
=ZUFALLSZAHL()
Sortieren: Markiere beide Spalten (A und B) und sortiere sie nach der Zufallszahl in Spalte B. Das kannst du über die Menüleiste tun, indem du auf "Daten" und dann auf "Sortieren" klickst.
Paare bilden: Nach dem Sortieren kannst du die Namen in den geraden Zeilen (z.B. A4 und A5) als Paare zusammenfassen.
Wiederholen: Jedes Mal, wenn du die Zufallszahlen neu generierst, werden neue Paare gebildet.
Doppelte Paare: Wenn du beim Auslosen von Paaren immer wieder die gleichen Namen bekommst, kann das an der Art der Zufallszahlengenerierung liegen. Stelle sicher, dass du die Liste jedes Mal neu sortierst.
Zu wenige Namen: Wenn du die Meldung "Zu wenige Namen!" erhältst, überprüfe, ob du mindestens zwei Namen in deiner Liste hast.
Eine weitere Möglichkeit, Paare zu bilden, ist die Verwendung von VBA (Visual Basic for Applications). Hier ist ein einfaches Skript, das du nutzen kannst:
Sub paare()
Dim lngRow As Long, lngCol As Long, lngRnd As Long, lngC As Long
Dim varIn As Variant, varOut() As Variant
If Application.CountA(Range("A4:A" & Application.Max(4, Cells(Rows.Count, 1).End(xlUp).Row))) < 2 Then
MsgBox "Zu wenige Namen!"
Else
varIn = Application.Transpose(Range("A4:A" & Application.Max(4, Cells(Rows.Count, 1).End(xlUp).Row)))
lngC = Int(UBound(varIn) / 2)
ReDim Preserve varOut(1 To lngC, 1 To 2)
lngCol = 1
Randomize Timer
Do
lngRnd = Int((UBound(varIn)) * Rnd() + 1)
lngRow = lngRow + 1
If lngRow > lngC Then lngRow = 1: lngCol = 2
varOut(lngRow, lngCol) = varIn(lngRnd)
If UBound(varIn) = 1 Then Exit Do
varIn(lngRnd) = varIn(UBound(varIn))
ReDim Preserve varIn(1 To UBound(varIn) - 1)
Loop
Range("C4").Resize(lngC, 2) = varOut
End If
End Sub
Mit diesem VBA-Code kannst du schnell und einfach Paare mit einem Klick bilden.
Wenn du beispielsweise die Namen "Anna", "Bert", "Clara" und "David" hast, kannst du diese wie folgt eingeben:
A | B |
---|---|
Anna | =ZUFALLSZAHL() |
Bert | =ZUFALLSZAHL() |
Clara | =ZUFALLSZAHL() |
David | =ZUFALLSZAHL() |
Nach dem Sortieren könnten die Namen in dieser Reihenfolge erscheinen:
A | B |
---|---|
Bert | 0.123 |
David | 0.456 |
Clara | 0.789 |
Anna | 0.999 |
Die Paare werden dann aus den benachbarten Zeilen gebildet.
Zufallsgenerator anpassen: Du kannst den Zufallsgenerator anpassen, um sicherzustellen, dass keine doppelten Paare gebildet werden. Eine Hilfsspalte kann hier hilfreich sein.
Automatisierung: Überlege, ein Makro zu erstellen, das den gesamten Prozess automatisiert, sodass du nur einen Button klicken musst, um neue Paare zu bilden.
Wichtelgenerator: Nutze die oben genannten Methoden auch für Wichteln. Erstelle eine Wichtelliste und setze die gleichen Schritte um, um die "wichteln auslosen" Funktion zu nutzen.
1. Wie oft kann ich die Paare neu generieren?
Du kannst die Paare beliebig oft neu generieren, indem du die Zufallszahlen aktualisierst und die Liste neu sortierst.
2. Gibt es eine Excel-Version, die ich benötigen werde?
Die vorgestellten Funktionen und VBA-Codes sind in den meisten Excel-Versionen ab 2010 verfügbar. Achte darauf, dass du Makros aktivieren kannst, wenn du den VBA-Ansatz verwenden möchtest.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen