Nancy versucht, Excel dazu zu bringen, 50 „Zahlen“ auszuwählen, die jeweils acht zufällige Zeichen enthalten. Die Zeichen können entweder Ziffern oder Buchstaben sein (Groß- oder Kleinbuchstaben).

Wenn Ihre Zufallszahlen wirklich Zahlen wären (nur Ziffern), wäre es einfach, sie zu generieren. Sie müssen lediglich die Funktion RANDBETWEEN (im Analysis ToolPak) folgendermaßen verwenden:

=RANDBETWEEN(10000000,99999999)

Dies ist jedoch nicht das, was Nancy will. Ihre zufälligen „Zahlen“ können auch Groß- und Kleinbuchstaben enthalten. Das wird etwas klebriger.

Es gibt jedoch mehrere Ansätze, die Sie verwenden können.

Ein Ansatz besteht darin, alle möglichen Zeichen in einer einzelnen Zelle abzulegen, z. B. B7:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789

Nennen Sie diese Zelle etwas Schickes wie MySource. Sie können dann eine Formel wie die folgende verwenden, um die zufällige Zeichenfolge zurückzugeben:

=MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

Die Formel ist lang; Es wurde aus Gründen der Klarheit in einzelne Zeilen unterteilt, aber es ist immer noch eine einzige Formel. Es verkettet acht Zeichen, die aus der Quelle stammen, die Sie in Zelle B7 eingegeben haben.

Ein anderer Ansatz besteht darin, eine Tabelle zu erstellen, die alle gewünschten Zeichen in Ihrer zufälligen Textzeichenfolge enthält. Beginnen Sie, indem Sie die Nummern 1 bis 62 in eine Spalte einfügen, eine Nummer in jeder Zeile. Links von diesen Zahlen platzieren Sie Ihre Zeichen – A, B, C, D usw. (Dies sollten die gleichen Zeichen sein, die Sie in der vorherigen Technik in Zelle B7 platziert haben.) Wählen Sie beide Spalten der 62 Zeilen aus und geben Sie ihr einen Namen , wie MyTable. Sie können dann die folgende Formel verwenden, um die zufälligen Zeichen zu generieren:

=VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

Denken Sie auch hier daran, dass dies eine einzelne Formel ist, obwohl sie etwas kürzer als die vorherige Formel ist.

Jeder der bisher vorgestellten Ansätze hat einen Nachteil: Sie werden jedes Mal neu generiert, wenn Ihr Arbeitsblatt neu berechnet wird. Daher ist es schwierig, eine einzelne generierte Zufallszeichenfolge zu haben, die sich nicht regelmäßig ändert. Der beste Weg, dies zu umgehen, ist die Verwendung eines Makros, aber Sie möchten nicht unbedingt eine benutzerdefinierte Funktion verwenden. Warum? Weil auch es sein Ergebnis jedes Mal ändern würde, wenn das Arbeitsblatt neu berechnet wurde.

Stattdessen benötigen Sie ein Makro, das die zufälligen Zeichenfolgen ab einer bestimmten Zellenposition in Ihre Arbeitsmappe einfügt. Das Folgende ist ein Beispiel für ein solches Makro:

Sub MakeRandom()

Dim J As Integer     Dim K As Integer     Dim iTemp As Integer     Dim sNumber As String     Dim bOK As Boolean

Range("D4").Activate     Randomize     For J = 1 To 50         sNumber = ""

For K = 1 To 8             Do                 iTemp = Int((122 - 48 + 1) * Rnd + 48)

Select Case iTemp                     Case 48 To 57, 65 To 90, 97 To 122                         bOK = True                     Case Else                         bOK = False                 End Select             Loop Until bOK             bOK = False             sNumber = sNumber & Chr(iTemp)

Next K         ActiveCell.Value = sNumber         ActiveCell.Offset(1, 0).Select     Next J End Sub

Führen Sie das Makro aus, und alles, was sich in den Zellen D4: D53 befindet, wird durch die Zufallswerte überschrieben. Wenn Sie möchten, dass die Werte an eine andere Stelle geschrieben werden, ändern Sie die Range-Anweisung am Anfang des Makros.

_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 (3872) 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: