Feuille de calcul Google Trier deux colonnes

9

J'ai donc trouvé la réponse suivante en ce qui concerne le tri automatique sur une colonne, ce qui fonctionne très bien. Comment puis-je créer des données sur un tri automatique Google Spreadsheet?

Cependant, mon cas d'utilisation nécessite le tri de deux colonnes. Une colonne est des nombres entiers, tandis que la deuxième colonne est des dates. Je voudrais d'abord trier la colonne entière des nombres, puis à l'intérieur de chaque nombre trier la date.

Aucune suggestion?

Viet
la source

Réponses:

9

En commençant par la ligne de code suivante:

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

Le tri peut être effectué de différentes manières:

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

Les deux façons sont identiques car le type de tri est par défaut croissant, mais la deuxième option permet un ordre de tri différent quand TRUEest changé en FALSE.

Voir référence: range.sort

Jacob Jan Tuinstra
la source
1
Merci pour la réponse rapide. Votre réponse est logique pour moi. J'ai mis en œuvre les connaissances avec succès.
Viet
OK, nouveau dans ce genre de choses ... où dois-je saisir le code ci-dessus?
@robb voir référence que l'OP utilise, qui mènera à une réponse que j'ai donnée avec explication.
Jacob Jan Tuinstra
2

Un peu tard pour la fête mais c'est ce que j'ai fait.

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 }] );
    }
  }
}

Trie par colonne 16 d'abord, pour moi, les pays, puis par une note décroissante dans la colonne 2.

user128415
la source