MS Excel: Spalte mit Zeichenfolgen zufällig in ein Zeichenfolgenraster anordnen

MS Excel: Spalte mit Zeichenfolgen zufällig in ein Zeichenfolgenraster anordnen

Ich habe ein MS Excel-Blatt mit 100 Namen in einer einzigen Spalte.

Auf einem anderen Blatt habe ich ein 10 x 10 Zellenraster, dem ich nach dem Zufallsprinzip einen Namen aus der Spalte zuweisen möchte.

Gibt es eine relativ einfache Möglichkeit, dies zu erreichen, oder ist dafür VBA-Arbeit erforderlich?

Antwort1

Dies kann mit einer Hilfsspalte erfolgen, die eine zufällige Ordnungszahl von 1 bis 100 erstellt. Mit Ihren Namen in A2:A101. In B2 geben Sie ein:

=AGGREGATE(15,7,ROW($1:$100)/(COUNTIFS($B$1:B1,ROW($1:$100))=0),RANDBETWEEN(1,100-COUNT($B$1:B1)))

Und nach unten kopieren.

Dadurch wird zufällig eine Zahl zwischen 1 und 100 ausgewählt, wobei das k im AGGREGATE ist RANDBETWEEN(1,100-COUNT($B$1:B1)). Dabei COUNTIFS($B$1:B1,ROW($1:$100))=0wird sichergestellt, dass wir keine Duplikate erhalten.

Bildbeschreibung hier eingeben

Dann verwenden wir INDEX/MATCH, um den Wert zu finden. Tragen Sie diesen in die obere rechte Ecke des Rasters ein:

=INDEX($A:$A,MATCH((ROW($A1)-1)*10+COLUMN(A$1),$B:$B,0))

Beim Hin- und Herziehen sucht es in der ersten Zeile nach 1-10 und in der zweiten nach 11-20 usw. Und da die Nachschlagespalte zufällig ist, wird sie zufällig sein.

Kopieren Sie dann 10 Zoll nach oben und 10 Zoll nach unten:

Bildbeschreibung hier eingeben


Wenn Sie Office 365 Excel haben, können Sie den INDEX/MATCH durch diese dynamische Version ersetzen, die die 10x10-Aufteilung automatisch übernimmt:

=INDEX(A:A,MATCH(SEQUENCE(10,10),B:B,0))

Antwort2

Angenommen, die Namen sind in Spalte A gespeichert:

  1. Wenden Sie in Spalte B die Formel an=RAND()
  2. Kopieren Sie die resultierenden Werte und fügen Sie sie in Spalte B ein. Überschreiben Sie dabei die Formel
  3. Wenden Sie in Spalte C die Formel an =RANK(B2, $B$2:$B$101). Auf diese Weise können Sie jedem Namen eine Nummer zwischen 1 und 100 zuweisen.
  4. Fügen Sie über Ihrem 10x10-Raster die Zahlen 1-10 hinzu. Machen Sie dasselbe links von Ihrem 10x10-Raster. Diese dienen als Zeilen- und Spaltenüberschriften.

Angenommen, Ihre Zeilenüberschriften sind in ... E2:E11und Ihre Spaltenüberschriften sind in F1:O1...

  1. Geben Sie die Formel =INDEX($A$2:$A$101, MATCH(($E2-1)*10+F$1, $C$2:$C$101,0))in Zelle F2 ein und ziehen Sie sie über das 10x10-Raster

Beispiellösung

Antwort3

Probieren Sie diese Matrixformel aus und beenden Sie mitUmschalt+Strg+Eingabe:

=INDEX($A$1:$A$10,RANDBETWEEN(1,COUNTA($A$1:$A$10)))

Bildbeschreibung hier eingeben

verwandte Informationen