Excel-Formel: Zufällige Liste von Namen -

Generische Formel

=INDEX(names,RANDARRAY(n,1,1,COUNTA(names),TRUE))

Zusammenfassung

Um eine zufällige Liste von Namen zu erstellen, können Sie die INDEX-Funktion und die RANDARRAY-Funktion verwenden, um zufällige Namen aus einer vorhandenen Liste auszuwählen. In dem gezeigten Beispiel lautet die Formel in D5:

=INDEX(names,RANDARRAY(10,1,1,COUNTA(names),TRUE))

Dies gibt 10 zufällige Werte aus dem benannten Bereich "Namen" zurück (B5: B104).

Erläuterung

Im Kern verwendet diese Formel die INDEX-Funktion, um 10 zufällige Namen aus einem benannten Bereich namens "names" abzurufen, der 100 Namen enthält. Um beispielsweise den fünften Namen aus der Liste abzurufen, verwenden wir INDEX wie folgt:

=INDEX(names,5)

Der Trick in diesem Fall ist jedoch, dass wir keinen einzigen Namen an einem bekannten Ort wollen, sondern 10 zufällige Namen an unbekannten Orten zwischen 1 und 100. Dies ist ein ausgezeichneter Anwendungsfall für die RANDARRAY-Funktion, mit der ein erstellt werden kann zufälliger Satz von ganzen Zahlen in einem bestimmten Bereich. Wir arbeiten von innen nach außen und verwenden RANDARRAY, um 10 Zufallszahlen zwischen 1 und 100 wie folgt zu erhalten:

RANDARRAY(10,1,1,COUNTA(names)

Die COUNTA-Funktion wird verwendet, um eine dynamische Anzahl von Namen in der Liste zu erhalten, aber wir könnten COUNTA in diesem Fall durch eine fest codierte 100 ersetzen, mit dem gleichen Ergebnis:

=INDEX(names,RANDARRAY(10,1,1,100,TRUE))

In beiden Fällen gibt RANDARRAY 10 Zahlen in einem Array zurück, das folgendermaßen aussieht:

(64;74;13;74;96;65;5;73;84;85)

Hinweis: Diese Zahlen sind nur zufällig und werden nicht direkt dem gezeigten Beispiel zugeordnet.

Dieses Array wird als Zeilenargument direkt an die INDEX-Funktion zurückgegeben:

=INDEX(names, (64;74;13;74;96;65;5;73;84;85)

Da wir INDEX 10 Zeilennummern geben, werden 10 Ergebnisse angezeigt, die jeweils einem Namen an der angegebenen Position entsprechen. Die 10 zufälligen Namen werden in einem Überlaufbereich zurückgegeben, der in Zelle D5 beginnt.

Hinweis: RANDARRAY ist eine flüchtige Funktion und wird bei jeder Änderung des Arbeitsblatts neu berechnet, wodurch Werte neu erstellt werden. Um zu verhindern, dass Werte automatisch sortiert werden, können Sie die Formeln kopieren und dann mithilfe von Inhalte einfügen> Werte Formeln in statische Werte konvertieren.

Vermeiden Sie Duplikate

Ein Problem mit der obigen Formel (abhängig von Ihren Anforderungen) ist, dass RANDARRAY manchmal doppelte Zahlen generiert. Mit anderen Worten, es gibt keine Garantie dafür, dass RANDARRAY 10 eindeutige Zahlen zurückgibt.

Um 10 verschiedene Namen aus der Liste sicherzustellen, können Sie die Formel anpassen, um die vollständige Liste der Namen zufällig zu sortieren, und dann die ersten 10 Namen aus der Liste abrufen. Die Formel in F5 verwendet diesen Ansatz:

=INDEX(SORTBY(names,RANDARRAY(COUNTA(names))),SEQUENCE(10))

Der Ansatz hier ist der gleiche wie oben - wir verwenden INDEX, um 10 Werte aus der Liste der Namen abzurufen. In dieser Version der Formel sortieren wir die Liste der Namen jedoch nach dem Zufallsprinzip, bevor wir sie INDEX wie folgt übergeben:

SORTBY(names,RANDARRAY(COUNTA(names)))

Hier wird die SORTBY-Funktion verwendet, um die Liste der Namen zufällig mit Array-Werten zu sortieren, die von der RANDARRAY-Funktion erstellt wurden, wie hier ausführlicher erläutert.

Schließlich müssen wir 10 Werte abrufen. Da wir bereits Namen in zufälliger Reihenfolge haben, können wir einfach die ersten 10 mit einem Array anfordern, das von der SEQUENCE-Funktion wie folgt erstellt wurde:

SEQUENCE(10)

SEQUENCE erstellt ein Array von fortlaufenden Zahlen:

(1;2;3;4;5;6;7;8;9;10)

Dies wird als Zeilenargument an die INDEX-Funktion zurückgegeben. INDEX gibt dann die ersten 10 Namen in einem Überlaufbereich wie in der Originalformel zurück.

Interessante Beiträge...