Auswählen verschiedener Zufallszahlen aus einem Bereich (Microsoft Excel)
Angenommen, Sie haben eine Liste von Mitarbeitern (oder Produkten oder Widgets oder was auch immer) und möchten zufällig zwei Elemente aus dieser Liste auswählen.
Es gibt verschiedene Arbeitsblattfunktionen, mit denen Sie Elemente aus der Liste auswählen können, z. B. RANDOM und RANDBETWEEN.
Viele Leute benutzen die RANDBETWEEN-Funktion, weil sie sehr einfach ist und eine Zufallszahl innerhalb eines Bereichs liefert. Wenn Sie also 25 Elemente in Ihrer Liste haben, kann RANDBETWEEN eine Zahl zwischen 1 und 25 zurückgeben, die dann Elementen in der Liste entsprechen kann.
Angenommen, Ihre Liste der Elemente liegt im Bereich A2: A26, und Sie geben diesem Bereich den Namen Elemente. Sie können dann die folgende Formel in Zelle C2 einfügen, um eine Zahl zwischen 1 und der Anzahl der Elemente zurückzugeben:
=RANDBETWEEN(1,ROWS(Items))
Kopieren Sie diese Formel in Zelle C3, und Sie haben jetzt zwei Zufallszahlen, die Elemente aus der Liste darstellen. In Zelle D2 und D3 können Sie solche Formeln einfügen, um die tatsächlichen Namen aus der Liste zu erhalten:
=INDEX(Items,C2)
Das einzige Problem bei diesem Ansatz besteht darin, dass beide Instanzen von RANDBETWEEN (Zellen C2 und C3) denselben Wert zurückgeben können und Sie daher dasselbe Element zweimal aus Ihrer Liste auswählen.
Eine Möglichkeit, dieses potenzielle Problem zu umgehen, besteht darin, drei statt zwei Elemente aus der Liste auszuwählen. Wenn die ersten beiden Elemente identisch sind, kann das dritte Element als „Fallback“ -Element verwendet werden, um das eindeutige zweite Element bereitzustellen. Die Methode ist nicht narrensicher, da es möglich – aber ziemlich unwahrscheinlich – ist, dass alle drei gleich sind.
Ein anderer Ansatz zur Auswahl von Elementen aus der Liste besteht darin, jedem Element einen eigenen Zufallswert zuzuweisen und dann basierend auf der höchsten Zahl in der Reihe auszuwählen. Die RANDOM-Funktion gibt einen Zufallswert zwischen 0 und 1 zurück. Geben Sie in jede Zelle der Spalte B rechts neben jedem Element in Spalte A die folgende Formel ein:
=RAND()
Wählen Sie den Zellenbereich (B2: B26) aus und benennen Sie den Bereich mit einem Namen wie ItemNums. Sie können dann den ersten zufälligen Namen aus der Liste mithilfe der folgenden Array-Formel ermitteln:
=OFFSET(A$1,SUM((LARGE(ItemNums,1)=(ItemNums))*ROW(ItemNums))-1,0)
Um anzuzeigen, dass es sich um eine Array-Formel handelt, geben Sie sie ein, indem Sie Umschalt + Strg + Eingabetaste drücken. Die Formel sollte einen einzelnen Namen zurückgeben. Sie können dann die folgende Array-Formel verwenden, um den zweiten Namen zurückzugeben:
=OFFSET(A$1,SUM((LARGE(ItemNums,2)=(ItemNums))*ROW(ItemNums))-1,0)
Der Grund dafür, dass die Verwendung des RAND-Funktionsansatzes besser funktioniert als die Verwendung von RANDBETWEEN, liegt darin, dass die Wahrscheinlichkeit, dass RAND zwei identische Werte zurückgibt, unendlich gering ist, während die Wahrscheinlichkeit, dass RANDBETWEEN dies tut, viel höher ist.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (2874) 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: