Wie kehre ich die Reihenfolge der ausgewählten Zeilen um?

33

Gibt es eine einfache Möglichkeit, die Reihenfolge der ausgewählten Zeilen umzukehren ? (Oder wie wäre es mit allen Zeilen , wenn das einfacher ist.)

Insbesondere gibt es in diesem Fall keine Spalte, die zum Sortieren verwendet werden könnte, um sie in die richtige Reihenfolge zu bringen. Ist es bei einer Reihe von Zeilen in einer beliebigen Reihenfolge möglich, diese Reihenfolge umzukehren?

Als Beispiel...

Bildbeschreibung hier eingeben

... nach der Umkehrung dieser 5 Zeilen sollte "Waitrose 756" an erster Stelle und "Moot" an letzter Stelle stehen.

Jonik
quelle
"Es gibt keine Spalte, die zum Sortieren verwendet werden könnte." Warum nicht einfach eine Spalte mit aufsteigenden Werten (1, 2, 3, ...) hinzufügen, absteigend nach dieser Spalte sortieren und dann entfernen?
Patrick
Dies ist eine sehr häufige Anforderung, da so viele Benutzer eine Tabelle mit einer Zeile für jeden Eintrag beginnen und am unteren Rand neue Zeilen hinzufügen. Nachdem 100 Zeilen erkannt haben, möchten sie diese invertieren, um Zeilen am oberen Rand hinzuzufügen, da dies WAY dauert Sie haben zu viel Zeit, um jedes Mal, wenn Sie ein neues Datenelement hinzufügen möchten, die unterste nicht leere Zeile zu finden. Leider AFAIK gibt es keine Möglichkeit, dies zu tun, nicht wenn Sie möchten, dass Ihre Formeln und Formatierungen nach der Inversion gleich bleiben.
Phil Goetz

Antworten:

24

Um die Reihenfolge des ausgewählten Bereichs umzukehren (im Gegensatz zum Sortieren nach einer bestimmten Spalte), können Sie das folgende Skript verwenden:

function reverseOrder()
{
  var range = SpreadsheetApp.getActiveRange();
  var values = range.getValues();
  range.setValues(values.reverse());
}

Durch Hinzufügen dieses onOpen-Skripts wird ein Menüelement mit dem Namen " Extra" erstellt , das ein Element mit dem Namen " Reverse" enthält :

function onOpen ()
{
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menu = [{name: "Reverse", functionName: "reverseOrder"}];
  ss.addMenu("Extra", menu);
}
AdamL
quelle
3
Vielen Dank. Ich habe einen Moment gebraucht, um herauszufinden, wie ich diese hinzufügen kann, damit das Menüelement angezeigt wird (Extras -> Skript-Manager ...), aber wenn ich das erledigt habe, funktioniert es!
Jonik
@AdamL, Wie können wir das ohne Scripting machen?
Pacerier
1
@AdamL: Hervorragend zum Verschieben von Text, aber nicht zum Verschieben der Zellenhintergrundfarbe usw. Wie kann das Skript erweitert werden, um dies auch auszuführen?
Gruber
1
@Pacerier: Entschuldigung für die außergewöhnlich späte Antwort, aber eine Lösung wäre eine Hilfsspalte mit aufsteigenden Zahlen, und sortieren Sie den Bereich nach dieser absteigenden Spalte (und dann können Sie die Hilfswerte entfernen).
AdamL
@ Gruber: Die erste Option wäre, dass das Skript jeweils eine Zelle kopiert / einfügt. Die zweite Option wäre, alle erforderlichen Formate für den Bereich abzurufen, diese ebenfalls umzukehren und festzulegen. Ich würde sagen, die erste Option ist für kleine Bereiche in Ordnung, für große Bereiche jedoch schrecklich. Die zweite Option ist die beste Option, um alle Anwendungsfälle abzudecken.
AdamL
21

Hier ist ein Beispiel, wie dies ohne Verwendung von Skripten geschehen kann. Beachten Sie, dass diese Methode davon ausgeht, dass es sich bei Ihren Daten nur um Daten handelt. Wenn Sie Formeln haben, die auf andere Zellen in demselben Bereich verweisen, kann dies seltsame Dinge bewirken:

  1. Fügen Sie eine neue Spalte ein (zum Beispiel nennen wir sie Spalte A).
  2. Geben Sie in A1 den Wert [1] ein. (Sie können bei A10 oder A50 beginnen, wenn Sie nur einen Bereich sortieren möchten.)
  3. Geben Sie in A2 die Formel [= A1 + 1] ein. (Passen Sie an, ob Sie in Schritt 2 nicht bei A1 angefangen haben.)
  4. Erweitern Sie die Formel in A2 bis zum Ende der Daten, die Sie umkehren möchten.

    Alles sollte jetzt von 1 bis zur Anzahl der Zeilen in dem Bereich nummeriert sein, den Sie sortieren.

  5. Wählen Sie alle Zeilen in dem Bereich aus, den Sie eingerichtet haben.
  6. Klicken Sie auf das Menü Daten und wählen Sie "Bereich nach Spalte A, Z -> A sortieren".

Ihre Daten sollten nun in umgekehrter Reihenfolge sein. Aufgrund der Art und Weise, wie wir die Nummerierungsformel eingerichtet haben, wird die Nummer zurückgesetzt und beginnt immer noch bei 1 oben ... aber die tatsächlichen Daten in anderen Spalten sollten alle umgekehrt werden.

Mir
quelle
2
Das ist so wahnsinnig einfach, dass ich mir die Stirn schlagen musste, weil ich nicht daran gedacht hatte. Fantastische Antwort. +1.
GroggyOtter
2
Für die Schritte 2 bis 4 benötigen Sie nicht einmal eine Formel. Geben Sie einfach 1 in A1, 2 in A2 ein, wählen Sie beide aus und ziehen Sie diese so weit wie nötig nach unten.
Patrick
4

Nach dem Beispiel von Mir können Sie die SORT-Funktion in die Zelle D3 einfügen, um die Reihenfolge der Daten in Spalte C umzukehren:

=sort(C3:C,A3:A,False)
artu
quelle