Automatische Generierung einer eindeutigen Nummer ohne Duplikate

Automatische Generierung einer eindeutigen Nummer ohne Duplikate

Wie kann ich automatisch eine Nummer generieren, wenn eine Spalte fest mit der gewünschten Nummer versehen ist und eine andere Spalte zufällig eine Nummer generiert, die nicht in der ersten Spalte steht? Ich möchte keine Duplikate.

Beispiel: Ich muss 1-10 automatisch in zwei Spalten generieren. Spalte A (feste Zahl)

1
3
4
5
6

Spalte B (Zufallszahl)

zu generieren, das nicht in Spalte A erschien?

Spalte B sollte 2,7,8,9,10 enthalten.

Mit dieser Formel kann ich eindeutige Zahlen für zwei Spalten von 1 bis 10 generieren. Wenn ich jetzt aber die erste Spalte reparieren möchte, wie muss ich den Code so programmieren, dass die Zahlen in der zweiten Spalte keine Duplikate aus Spalte A enthalten?

=IF(ROW()-ROW(P$3)+1>$A$3/2,"",RANK(OFFSET($B$3,ROW()-ROW(P$3)+(COLUMN()-COLUMN($P3))*($A$3/2),),$B$3:INDEX($B$3:$B$1002,$A$3)))

Der Zweck der beiden Spalten besteht für mich darin, einen Vergleich zwischen der aktuellen und der nächsten Sitzung anzustellen. Ich dachte daran, die Zufallszahl zu generieren und INDEX zu verwenden, um den Namen abzurufen, aber zuerst muss ich die Zahl in den einzelnen Zeilen abrufen und darf keine Duplikate erhalten.

Spalte B/C/D entsprechen den Angaben des Personals.

In Spalte A kann ich die Gesamtzahl der Mitarbeiter manuell eingeben, was sich auf die Spalten L/M/N auswirkt. Wenn ich 10 Mitarbeiter habe, ändert sich die Spalte L entsprechend 5 Gruppen und die Spalten M und N ändern sich entsprechend.

Derzeit kann ich mit meinen Formeln die Zahlen für Spalte M und N automatisch neu mischen, basierend auf dem, was ich in Spalte A eingefügt habe, nämlich 20. Dies kann geändert werden.

Mein Problem besteht darin, die Nummer in Spalte M neu zu mischen, ohne dass es eine Duplikatnummer für die in Spalte N erschienene Nummer gibt.

Die Zufallsauswahl/Shuffle bis 10 Zahlen ist nur ein Beispiel. Die Liste kann bis über 50 Zahlen heruntergehen. Ist es möglich, die verbleibende Zahl automatisch zu generieren, anstatt sie manuell einzugeben?

Schauen Sie sich meinen Screenshot an

Antwort1

Zuerst müssen Sie die Zufallszahlen der Spalte B in eine neue Spalte H schreiben, zum Beispiel (H1=2, H3=9...H5=7), lassen Sie in Spalte A Ihre Wahl und in B die generierten Zahlen.
Schreiben Sie in I1 =Rand() und ziehen Sie es nach unten, um 5 Zeilen mit Zufallszahlen <0 zu erhalten .
Schreiben Sie in J1 die folgende Formel, um die Rand()-Zahlen der Spalte I zu ordnen:
=RANK(I1,$I$1:$I$5,0)
Ziehen Sie sie bis J5, Sie erhalten 5 Zahlen zwischen 1 und 5.
Schreiben Sie in B1:
=OFFSET($H$1,J1-1,0)
und ziehen Sie es nach unten bis B5, Sie erhalten die verbleibenden 5 eindeutigen Zahlen zufällig.
Aktualisieren
Sie können die Formeln „Rank“ und „Offset“ kombinieren und in B1 schreiben:
„=OFFSET($H$1,RANK(I1,$I$1:$I$5,0)-1,0)“.
Beachten Sie, dass „Rank“ auf „Rand()“ in Spalte I funktioniert und nicht auf H, wo die Zahlen stehen.

Bildbeschreibung hier eingeben

verwandte Informationen