Generieren zufälliger Zeichenfolgen (Microsoft Excel)
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: