it-swarm.com.de

Wie kann ich einige Daten in einer automatischen Sortierung von Google Sheets vornehmen?

Angenommen, Google Sheets soll einige Daten automatisch sortieren, z. B. die Spalte C.

Wie mache ich das?

Ich weiß, dass ich Daten manuell sortieren kann, indem ich mit der rechten Maustaste klicke und Daten sortieren auswähle, aber das ist nicht das, wonach ich suche.

57
Diego Petrucci

Sie können die Funktion sort() verwenden, aber Sie müssen Ihre Daten an einem Ort und eine automatisch sortierte Kopie dieser Daten an einem anderen Ort haben.

Angenommen, ich habe Sheet1 mit meinen Daten:

   | A    | B    | C
=====================
 1 | This | this | 2
 2 | Is   | is   | 1
 3 | Test | test | 3

Dann würde ich in Sheet2, Zelle A1, diese Funktion einfügen:

= sortieren (Sheet1! A: C, 3, TRUE)

Dies würde meine Daten anzeigen, aber aufsteigend nach Spalte C (dritte Spalte) sortiert.

   | A    | B    | C
=====================
 1 | Is   | is   | 1
 2 | This | this | 2
 3 | Test | test | 3
51
William Jackson

Es ist auch möglich, Google Apps Scripts zu verwenden, um eine automatische direkte Sortierung der Daten zu erreichen.

Dies mag schwieriger zu erreichen und fehleranfälliger sein (ich würde mich immer noch für William Jacksons Lösung entscheiden, +1 BTW), aber ich fand es interessant genug, dies zu zeigen.

Ich habe ein Blatt, das so aussieht:

auto-sorting sheet

Mit den folgenden Schritten habe ich ein neues Skript hinzugefügt:

  • gehen Sie im Menü zu Tools -> Script Editor ...
  • select Erstellt ein neues Projekt
  • fügen Sie in das leere Codefenster den folgenden Code ein, der automatisch ausgeführt wird, wenn eine Zelle bearbeitet wird:

    function onEdit(event){
      var sheet = event.source.getActiveSheet();
      var editedCell = sheet.getActiveCell();
    
      var columnToSortBy = 4;
      var tableRange = "B3:E9";
    
      if(editedCell.getColumn() == columnToSortBy){   
        var range = sheet.getRange(tableRange);
        range.sort( { column : columnToSortBy } );
      }
    }
    
  • kehren Sie zum Blatt zurück und spielen Sie mit den Werten, damit die Tabelle jedes Mal automatisch sortiert wird

Hinweis:

Im obigen Skript

  • der Wert 4 steht für den Index der Spalte D (die Spalte Value - die Spalte, nach der sortiert werden soll).
  • der Wert "B3:E9" steht für den Tabellenbereich (ohne die Kopfzeile)

Ihre Tabelle wird höchstwahrscheinlich von meiner abweichen, daher sollten diese Werte entsprechend angepasst werden.

41

Hier ist ein generisches Skript, das basierend auf der ersten Spalte automatisch sortiert und eine Kopfzeile annimmt.

So erstellen Sie ein Skript:

  • Gehen Sie im Menü zu Extras -> Skripteditor ...

Fügen Sie im leeren Codefenster den folgenden Code ein, der automatisch ausgeführt wird, wenn eine Zelle bearbeitet wird:

 // LinkBack to this script:
 // http://webapps.stackexchange.com/questions/7211/how-can-i-make-some-data-on-a-google-spreadsheet-auto-sorting/43036#43036

 /**
 * Automatically sorts the 1st column (not the header row) Ascending.
 */
function onEdit(event){
  var sheet = event.source.getActiveSheet();
  var editedCell = sheet.getActiveCell();

  var columnToSortBy = 1;
  var tableRange = "A2:T99"; // What to sort.

  if(editedCell.getColumn() == columnToSortBy){   
    var range = sheet.getRange(tableRange);
    range.sort( { column : columnToSortBy, ascending: true } );
  }
}
10
geekzspot

Eine andere Option ohne Skript ist:

=QUERY(A1:C3,"SELECT * ORDER BY C")  

Der Bereich ist eingeschränkt (A1: C3), da bei aufsteigender Reihenfolge zuerst leere Einträge angezeigt werden.

6
pnuts

Google Sheets hat aus diesem Grund Filter und erfordert nicht, dass Sie ein neues Blatt in Ihrem Dokument erstellen.

Dokumentation: https://support.google.com/docs/answer/3540681

0
Jay

Verwenden Sie die Skriptlösung, aber sortieren Sie nach mehr als einer Spalte

Ich wollte nach einer Dropdown-Menü-Spalte und dann nach Datum sortieren.

Ändern Sie dazu die Zeile "range.sort" eines der Codeausschnitte von Cristian oder geekspotz wie folgt:

// Sorts descending by edited column, then ascending by column 1 
// Note the use of an array
range.sort([{column: columnToSortBy, ascending: false}, {column: 1, ascending: true}]);

Der Unterschied besteht darin, die geraden Klammern um die gesamte Anweisung (Array) zu setzen und die Sortierungen durch Kommas zu trennen.

Änderung des Sortiercodes aus Serge's Stack Overflow-Antwort hier : Automatic Sorting On Sheets

0
deepstructure