Estoy tratando de ordenar la columna "a" y luego ordenar la columna "b".
Tengo una columna llamada "Categorías", la estoy ordenando alfabéticamente. Luego también quiero ordenar alfabéticamente las "Subcategorías", respetando el orden de la primera columna.
function autoSort() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet=ss.getSheetByName("Table"); const orderArray = sheet.getRange(2, 1, sheet.getLastRow()-1,sheet.getLastColumn()).getValues() orderArray.sort(sortFunction) sheet.getRange(2,1,sheet.getLastRow()-1,sheet.getLastColumn()).setValues(orderArray) }
Esta es la función que uso para ordenar la primera columna. ¿Cómo puedo hacer para ordenar la segunda columna?
var sortFunction= function(a,b){ if (a[4]>b[4]){return 1} else if (b[4]>a[4]){return -1} return 0 }
Como alternativa, siempre puede usar el método Range.sort() .
function autoSort() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet=ss.getSheetByName("Table"); const range = sheet.getRange(2, 1, sheet.getLastRow()-1,sheet.getLastColumn()); range,sort([{column: 1, ascending: true}, {column: 2, ascending: true}]) }
La ordenación se puede escribir para ordenar la segunda columna (por ejemplo, Col6) en lugar de devolver 0:
var sortFunction= function(a,b){ if (a[4]>b[4]){return 1} else if (b[4]>a[4]){return -1} // they're equal: if (a[5]>b[5]){return 1} else if (b[5]>a[5]){return -1} return 0 }