Automatische Generierung einer eindeutigen Nummer ohne Duplikat

3276
clairelinliting

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

Zum Beispiel: Ich muss automatisch 1-10 in 2 Spalten generieren. Spalte A (feste Nummer)

1 3 4 5 6 

Spalte B (Zufallszahl)

zu generieren, dass in Spalte A nicht angezeigt wurde?

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

Mit dieser Formel kann ich eine eindeutige Nummer für 2 Spalten von 1 bis 10 generieren. Wenn ich nun jedoch die erste Spalte korrigieren möchte, wie soll ich dann Code schreiben, um sicherzustellen, dass die Nummer in der zweiten Spalte kein Duplikat aus Spalte A hat?

=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 2 Spalten besteht für mich darin, einen Vergleich zwischen der aktuellen Sitzung und der nächsten Sitzung durchzuführen. Ich habe überlegt, die Zufallszahl zu generieren und den Namen mithilfe von INDEX abzurufen, aber zuerst muss ich die Nummer in den separaten Zeilen abrufen und keine Duplikate erhalten.

Col B / C / D sind wie die Informationen des Personals.

Col A, ich bin in der Lage, die Personalsumme manuell einzugeben, was Col L / M / N beeinflusst. Wenn ich 10 Mitarbeiter habe, ändert sich die Spalte L nach 5 Gruppen und die Spalten M und N ändern sich entsprechend.

Jetzt kann ich mit meinen Formeln die Anzahl für Col M und N basierend auf dem, was ich in Spalte A eingefügt habe, automatisch 20 mischen. Dies kann 20 sein. Dies kann geändert werden.

Ich habe ein Problem damit, die Zahl auf M zu mischen, ohne dass die Zahl, die in Spalte N erscheint, doppelt vorhanden ist.

Zufallszahlen / Zufallszahlen bis 10 sind nur ein Beispiel. Die Liste kann auf über 50 reduziert werden. Kann die verbleibende Nummer automatisch generiert werden, anstatt sie manuell einzugeben?

Schau auf meinen Screenshot

-1
Verwenden von IF oder VBA? Stephen vor 7 Jahren 0
Was ist der Zweck von 2 Spalten? Müssen Sie Col A 13456 fixiert haben? Oder stecken Sie nur zwischen 1-10 Nicht-Dupes? Einfach, wenn dies nicht der Fall ist. Schließlich möchten Sie nur eine zufällige 10 Zahlen in zwei Spalten gleichmäßig aufgeteilt, 5 und 5 richtig? Ich werde posten, was ich denke, dass du meinst. Sie müssen einschalten und mir sagen, ob es für Sie funktioniert oder nicht. Ich konnte mich fast davon überzeugen, dass ich keine Fragen mit jemandem mit weniger als 100 Wiederholungspunkten beantworte, weil ich ohne Feedback viel Zeit vergeude. ejbytes vor 7 Jahren 0
Ich verstehe nicht, wo die Zufälligkeit eintritt. Es klingt, als würden alle Zahlen von 1-10 erscheinen. Sie definieren, welche in der 1. Spalte sind, und das Komplement ist das Ziel der 2. Spalte. Könntest Du das erläutern? fixer1234 vor 7 Jahren 0
SuperSam hat unten eine Lösung erarbeitet. Der Benutzer muss 5 eindeutige Nummern auswählen und diese manuell in einer Spalte eingeben, die verbleibenden Nummern kennen und in eine zweite Spalte eingeben. Es gibt also keinerlei Zufall. Dann wird die zweite Spalte gemischt. Das wurde gefragt, denke ich. Aber es gibt überhaupt keine Zufälligkeit. Die zweite Spalte mischt sich, das ist alles. Ja (-1) für Klarheit. Es ist "Shuffle", nicht zufällig. Wissen Sie, wie viele Wiederholungen (1) ich versucht habe zu helfen, aber sie scheinen zu fragen und verschwinden für immer. ejbytes vor 7 Jahren 0
Denken Sie daran, dass ich Rand () verwendet habe, um die Zahlen zu mischen. Dies ist die gleiche Methode wie bei OP Formulas vor 7 Jahren 0
Willkommen bei Super User. Sie können Ihre eigenen Beiträge frei bearbeiten, dies muss jedoch zu Ihrem Schutz unter dem ursprünglichen Benutzerkonto erfolgen. Es sieht so aus, als hätten Sie ein zweites Konto erstellt, das sich auch auf Ihre Fähigkeit auswirkt, innerhalb Ihres Threads zu kommentieren und eine Antwort zu akzeptieren. Unter [Meine Konten zusammenführen] (http://superuser.com/help/merging-accounts) können Sie Ihre Konten zusammenführen, um das Problem zu lösen. fixer1234 vor 7 Jahren 0

1 Antwort auf die Frage

0

Zuerst müssen Sie die Zufallszahlen der Spalte B in eine neue Spalte H schreiben (H1 = 2, H3 = 9 ... H5 = 7). Lassen Sie Spalte A mit Ihrer Wahl und B für die generierten Zahlen.
Schreiben Sie in I1 = Rand () und ziehen Sie es nach unten, um 5 Zeilen mit Zufallszahlen <0
in J1 zu erhalten. Schreiben Sie die folgende Formel in Rang der Rand () - Zahlen von Spalte I:
=RANK(I1,$I$1:$I$5,0)
Ziehen Sie es bis J5, Sie haben 5 Zahlen zwischen 1 und 5
In B1 schreiben:
=OFFSET($H$1,J1-1,0)
und ziehen Sie es bis B5 nach unten. Die restlichen 5 eindeutigen Zahlen werden zufällig ausgewählt.
Aktualisieren
Sie können die Formeln Rang und Offset miteinander kombinieren und in B1 schreiben:
`= OFFSET ($ H $ 1, RANK (I1, $ I $ 1: $ I $ 5,0) -1,0) '
Beachten Sie, dass Rank für Rand funktioniert ( ) in Spalte I und nicht auf H, wo sich die Zahlen befinden.

Ich fand es cool, dass es so einfach sein könnte. Ich habe es selbst ausprobiert und konnte es nicht herausfinden. Ich bin ziemlich gut mit Excel und Algorithmen im Allgemeinen. Ich habe eine Spalte mit Random <1, wie du gesagt hast. Aber die Rang-Formel ordnete sie einfach an. Kannst du das an einem Beispiel erklären? Vielleicht ein Druckbildschirm mit Formel? Ich bin gespannt ob / wie das funktioniert. Vielen Dank! "Strg + ~" für Formularbelegung. ejbytes vor 7 Jahren 0
Der Rang steht auf Rand () und nicht auf Ihren Zahlen. Ich werde die Antwort mit einem Screenshot aktualisieren vor 7 Jahren 0
Die Spalte A ist also immer statisch 6,3,4,1,5. Die zweite Spalte muss also 2,7,8,9,10 sein, jedoch in zufälliger Reihenfolge. Was ist, wenn ich die Spalte a als 1,2,3,4,5 auswählte? Die zweite Spalte würde immer noch 2,7,8,9,10 enthalten. Ist das richtig? Es würde also ein Duplikat geben. Dies funktioniert nur, wenn die Spalte A manuell als 5 eindeutige Zahlen eingegeben wird und auch die verbleibenden eindeutigen Nummern der verbleibenden 5. Man wählt also wirklich 5 eindeutige Nummern und mischt dann die restlichen 5 nicht gewählten, aber diese müssen zuerst eingegeben werden. Es funktioniert, aber ich sehe den Punkt nicht aus dem OP. Ich glaube, darum hat er gefragt, oder? ejbytes vor 7 Jahren 0
SuperSam, ich muss nur sagen ... Sie haben die Frage so beantwortet, wie sie gestellt wurde. Aber ich habe gerade die Klugheit in Ihrer Lösung gesehen. Bieten Sie mit Ihrer Methode die bessere Lösung an, indem Sie nur eine einzige Spalte mit 10 Rändern in einer geraden Linie / Spalte verwenden und dann die Zehner-Spalte einordnen. Dann sind die 2-Spalten von 5 die ersten 5 und die restlichen 5. Die Show zeigt es als "Dies ist, was Sie wollen, denke ich", als Alternative eine bessere Wahl. ejbytes vor 7 Jahren 0
Und danke! Ich habe einen klugen Trick von dir gelernt. ejbytes vor 7 Jahren 0
OP hatte die Lösung für nicht manuelle Entscheidungen und fragte, ob eine Spalte fixiert ist und eine zufällige Auswahl für die zweite. Deshalb habe ich mit dieser Methode geantwortet vor 7 Jahren 0