Eine häufige Aufgabe für viele Menschen ist es, eine Reihe von zufälligen Namen aus einer großen Liste auszuwählen. Beispielsweise führen Sie möglicherweise einen Wettbewerb für Ihre Community durch und haben 1.000 Personen, die sich angemeldet haben. Mit ihren Namen in jeder Zeile einer Tabelle fragen Sie sich möglicherweise, wie Sie eine bestimmte Anzahl der Namen zufällig auswählen können.

Wie so oft bei Excel gibt es verschiedene Ansätze. Bei jedem in diesem Tipp untersuchten Ansatz wird davon ausgegangen, dass die Namen, aus denen Sie auswählen müssen, in den Zellen A1 bis A1000 aufgeführt sind.

Natürlich kann Ihr Namensbereich kürzer oder länger sein, aber der Punkt ist, dass sie sich in zusammenhängenden Zellen in Spalte A befinden. In den Beispielen wird auch davon ausgegangen, dass Sie 15 Namen zufällig aus der Liste auswählen müssen.

Der erste Ansatz ist die Verwendung der INDEX-Funktion. Geben Sie die folgende Formel in die Zellen B1 ein: B15:

=INDEX(A:A,INT((RAND()*1000)+1),1)

Eine ähnliche Formel verwendet die OFFSET-Funktion:

=OFFSET($A$1,ROUNDUP(RAND()*1000,0),0,1,1)

Es ist möglich, aber nicht wahrscheinlich, dass Sie in der resultierenden Liste zweimal denselben Namen erhalten. (Die Unwahrscheinlichkeit ist auf die Größe der ursprünglichen Liste zurückzuführen. Je größer die Liste, desto weniger wahrscheinlich sind Duplikate in der extrahierten Liste.) Wenn Sie einen doppelten Namen erhalten, erzwingen Sie einfach eine Neuberechnung Ihres Arbeitsblatts, indem Sie F9 drücken . Bei jeder Neuberechnung wird die Liste der extrahierten Namen neu generiert.

Ein weiterer möglicher Ansatz erfordert die Verwendung mehrerer Spalten. Befolgen Sie einfach diese Schritte:

  1. Geben Sie in Zelle B1 = RAND () ein.

  2. Geben Sie die folgende Formel in Zelle C1 ein:

  3. Wählen Sie den Bereich B1: C1 und füllen Sie ihn bis zur Zeile 1000 aus.

  4. Wählen Sie den Bereich B1: C1000.

  5. Drücken Sie Strg + C, um den Bereich in die Zwischenablage zu kopieren.

  6. Wählen Sie im Menü Bearbeiten die Option Inhalte einfügen. Excel zeigt das Dialogfeld Inhalte einfügen an. (Siehe Abbildung 1.)

  7. Stellen Sie sicher, dass das Optionsfeld Werte ausgewählt ist.

  8. Klicken Sie auf OK. Sie haben jetzt statische Werte in B1: C1000, was bedeutet, dass sie sich nicht jedes Mal ändern, wenn das Arbeitsblatt neu berechnet wird.

  9. Wählen Sie eine Zelle in Spalte C aus.

  10. Wählen Sie im Menü Daten die Option Sortieren. Excel zeigt das Dialogfeld Sortieren an.

(Siehe Abbildung 2.)

  1. Klicken Sie auf OK. Die Tabelle (Bereich A1: C1000) ist nach den Werten in Spalte C sortiert.

Das Ergebnis ist, dass Spalte C jetzt eine Rangfolge aller Zufallszahlen in Spalte B enthält. Die ersten 15 Zeilen enthalten Ihre Zufallsnamen.

Bei diesem Ansatz hätten Sie auch Spalte C vollständig weglassen und Ihre Liste einfach anhand der statischen Zufallswerte in Spalte B sortieren können.

Auch hier wären die Top 15 Ihre zufälligen Namen.

Natürlich gibt es eine beliebige Anzahl von Makrolösungen, die Sie für dieses Problem verwenden können. Die Codierung eines Makros ist ähnlich und basiert auf der RND-Funktion von VBA, um Zufallszahlen zu generieren. Von allen möglichen Makrolösungen ist möglicherweise die folgende die einzigartigste und bietet einige Vorteile, die mit den bisher diskutierten Arbeitsmappenlösungen nicht verfügbar sind:

Sub GetRandom()

Dim iRows As Integer     Dim iCols As Integer     Dim iBegRow As Integer     Dim iBegCol As Integer     Dim J As Integer     Dim sCells As String          Set TempDO = New DataObject          iRows = Selection.Rows.Count     iCols = Selection.Columns.Count     iBegRow = Selection.Row     iBegCol = Selection.Column          If iRows < 16 Or iCols > 1 Then         MsgBox "Too few rows or too many columns"

Else         Randomize Timer         sCells = ""

For J = 1 To 15             iWantRow = Int(Rnd() * iRows) + iBegRow             sCells = sCells & Cells(iWantRow, iBegCol) & vbCrLf         Next J         TempDO.SetText sCells         TempDO.PutInClipboard     End If End Sub

Um dieses Makro zu verwenden, wählen Sie einfach die Namen aus, aus denen Sie die 15 zufälligen Namen auswählen möchten. In den bisherigen Beispielen würden Sie den Bereich A1: A1000 auswählen. Das Makro zieht dann zufällig 15 Namen aus den Zellen und legt sie in der Zwischenablage ab. Wenn Sie das Makro ausführen, können Sie den Inhalt der Zwischenablage an einer beliebigen Stelle einfügen. Jedes Mal, wenn das Makro ausgeführt wird, wird eine andere Gruppe von 15 ausgewählt.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (2811) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: