Antworten:
Sie können die sort()
Funktion dafür verwenden, aber Sie müssen Ihre Daten an einem Ort haben und eine automatisch sortierte Kopie dieser Daten an einem anderen Ort.
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
Es ist auch möglich, Google Apps Scripts zu verwenden, um eine automatische direkte Sortierung der Daten zu erreichen.
Dies ist möglicherweise schwieriger zu erreichen und fehleranfälliger (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:
Mit den folgenden Schritten habe ich ein neues Skript hinzugefügt:
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
4
stellt den Index der Spalte D dar (die Value
Spalte - die Spalte, nach der sortiert werden soll)"B3:E9"
repräsentiert den Tabellenbereich (ohne die Kopfzeile)Ihre Tabelle wird höchstwahrscheinlich von meiner abweichen, daher sollten diese Werte entsprechend angepasst werden.
null
für den event
Parameter an, der ansonsten ordnungsgemäß von der Google Spreadsheet-Infrastruktur ausgefüllt wird, wenn ein echtes Ereignis ausgelöst wird.
range.sort
Zeile wie folgt aus : range.sort( { column : columnToSortBy, ascending: false } );
. Weitere
Hier ist ein generisches Skript, das basierend auf der ersten Spalte automatisch sortiert und eine Kopfzeile annimmt.
So erstellen Sie ein Skript:
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 } );
}
}
var sheet = SpreadsheetApp.getActiveSpreadsheet();
statt dessen, was hier ist.
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.
SELECT * WHERE C <> '' ORDER BY C
leere Einträge ignorieren und dann einen Bereich verwenden, der groß genug ist, um alle aktuellen und zukünftigen Zeilen einzuschließen.
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.
Die Änderung des Sortiercodes stammt aus Serge's Antwort zum Stapelüberlauf : Automatische Sortierung auf Blättern
Google Sheets verfügt aus diesem Grund über Filter und erfordert nicht, dass Sie ein neues Blatt in Ihrem Dokument erstellen.
Dokumentation: https://support.google.com/docs/answer/3540681
;
z. B.= sort(Sheet1!A:C; 3; TRUE)