Ich habe eine Arbeitsmappe mit Daten, die ich bei jedem Öffnen der Arbeitsmappe nach dem Zufallsprinzip neu sortieren möchte. (Zum Beispiel die Sortierung nach Spalte B, erzeugt durch a rand()
rufen Sie in der unten abgebildeten Arbeitsmappe jedes Mal auf, wenn die Datei geöffnet wird.)
Ich bin kein Script-Wiz, aber es scheint auch nicht so
- Excel 2013, können Daten automatisch neu sortiert werden?
- Automatische Sortierung für Excel-Arbeitsblatt
ganz dort hin. (Wenn ich richtig lese, sprechen sie davon, Dinge zu aktualisieren, wenn eine Aktivität innerhalb des Arbeitsblatts ausgeführt wird: Für meinen Zweck ist es wichtig, dass die Sortierung beim ersten Öffnen des Arbeitsblatts erfolgt.)
Ich gehe davon aus, dass es so etwas wie ein vierzeiliges Skript gibt, das ich schreiben könnte, aber ich habe keine Ahnung wie.
Wie kann ich eine Arbeitsmappe bei geöffneter Datei neu sortieren?
[Excel-Version 14.0.7180.5002, Teil von Office 2010.]
Für den Fall, dass jemand neugierig ist, ist die Verwendung: Ich schicke meiner Gemeinschaft eine Liste mit einer Liste von Kandidaten, für die abgestimmt werden soll; Ich möchte, dass die Liste nach dem Zufallsprinzip präsentiert wird, um die Stimmen nicht nach oben zu streichen. (Es gibt über hundert Kandidaten und nur eine Stimme, die abgegeben werden kann.)
quelle
Noch eine weitere Alternative (VBA-frei).
Angenommen, eine Originalliste ist in
$H$2:$H$7
. und die Zellformel in einem Bereich$B$2:$B$7
istRAND()
. Geben Sie eine Formel einin
A2
und kopiere / füge die Zelle in einA3:A7
und speichern Sie die Datei.Die Liste in
A2:A7
wird bei jedem Öffnen neu sortiert.Beachten Sie jedoch, dass es auch jedes Mal neu sortiert wird
$B$2:$B$7
wird neu berechnet.Sie können die statische Liste aus der Ansicht verschieben (auf dem anderen Blatt, / verstecken / schützen, etc).
Kommentar: der Teil mit dem
FLOOR()
Funktionwurde hinzugefügt, um die Eindeutigkeit der Zufallsschlüssel zu gewährleisten durch Anhängen eines eindeutigen "Endes" an jeden Zufallswert.
Bearbeiten
Es ist besser, die Formel einzugeben
A2
wie Matrixformel ( Ctrl + Verschiebung + Eingeben ). Überraschenderweise macht dies keinen Unterschied fürExcel
oderLibreOffice Calc
. aber mitGnumeric
Nur das Array-Formular funktioniert einwandfrei.Bearbeiten 2
Das ist noch einfacher Matrixformel ( Ctrl + Verschiebung + Eingeben ) einfügen
A2
:quelle
rand()
Werte werden beim Öffnen der Datei neu berechnet? (Eine Tatsache, die ich nicht weiß, aber vielleicht ist sie wahr?) Wenn ja, warum nicht?randbetween(1,$NUMBER_MUCH_LARGER_THAN_NUMBER_OF_TERMS_TO_BE_RANDOMIZED)
anstelle von Skalierung + Bodenbelag & crand()
Neuberechnung scheint die plausibelste Erklärung zu sein. Wie fürrandbetween()
etc - der Kommentar war nur zu beachten, dass jede andere Art, einen eindeutigen Schlüssel zu erstellen, in Ordnung ist.Das macht es zufällig ein bisschen interessanter. Spalte A in diesem Beispiel (die 1 st Spalte) ist = rand (), und Sie befinden sich im Arbeitsblatt Geht kaputt mit 10000 Zeilen
quelle