Google Spreadsheet Sortieren Sie zwei Spalten

9

Daher habe ich die folgende Antwort in Bezug auf die automatische Sortierung nach einer Spalte gefunden, die hervorragend funktioniert. Wie kann ich einige Daten in einer automatischen Google Spreadsheet-Sortierung erstellen?

Mein Anwendungsfall erfordert jedoch das Sortieren von zwei Spalten. Eine Spalte besteht aus ganzen Zahlen, während die zweite Spalte aus Datumsangaben besteht. Ich möchte zuerst die ganze Zahlenspalte sortieren und dann innerhalb jeder Zahl das Datum sortieren.

Irgendwelche Vorschläge?

Viet
quelle

Antworten:

9

Beginnen Sie mit der folgenden Codezeile:

var range = sheet.getRange("A1:B10");

Die Sortierung kann auf verschiedene Arten durchgeführt werden:

  1. range.sort([1,2]);
  2. range.sort([{column: 1, ascending: true}, {column: 2, ascending: true}]);

Beide Methoden sind identisch, da der Sortiertyp standardmäßig aufsteigend ist. Die zweite Option ermöglicht jedoch eine unterschiedliche Sortierreihenfolge, wenn TRUEin geändert wird FALSE.

Siehe Referenz: range.sort

Jacob Jan Tuinstra
quelle
1
Danke für die schnelle Antwort. Ihre Antwort macht für mich Sinn. Ich habe das Wissen mit Erfolg umgesetzt.
Viet
OK, neu in diesem Zeug ... wo genau gebe ich den obigen Code ein?
@robb siehe Referenz, die das OP verwendet, die zu einer Antwort führen wird, die ich mit Erklärung gegeben habe.
Jacob Jan Tuinstra
2

Ein bisschen spät zur Party, aber das habe ich getan.

function onEdit(event){
  var sheet = event.source.getActiveSheet();
  if(sheet.getName()=='Sort by country full'){
    var editedCell = sheet.getActiveCell();
    var columnToSortBy = 16;
    var columnToSortBy2 = 2;
    var tableRange = "A2:AU1451";
    if(editedCell.getColumn() == columnToSortBy){   
      var range = sheet.getRange(tableRange);
      range.sort( [{ column : columnToSortBy },{column: columnToSortBy2,ascending: false }] );
    }
  }
}

Sortiert nach Spalte 16, die für mich Länder sind, und dann nach einer absteigenden Bewertung in Spalte 2.

user128415
quelle