Estaba tratando de ordenar una lista personalizada usando App Script para Google Sheets, básicamente tengo una lista de los meses y quiero que aparezcan como enero, febrero, marzo... en el orden de los meses. Este es un ejemplo de mi lista.
El código que usé en App Script es:
var sheet = SpreadsheetApp.getActive().getSheets()[0]; var range = sheet.getRange(1,3,sheet.getLastRow(),1); var values = range.getValues(); var sortBy = { "January": 1, "February": 2, "March": 3, "April": 4, "May": 5, "June": 6, "July": 7, "August": 8, "September": 9, "October": 10, "November": 11, "December": 12 }; values.sort(function(a,b){ return sortBy[[a][0]] - sortBy[[b][0]]; });¿Cómo puedo conectar este código en App Script a mi hoja de cálculo para que se ordenen los meses?
Probar:
values.sort(([a],[b]) => sortBy[a] - sortBy[b]); range.setValues(values); function sortMonths() { const mA = [...Array.from(new Array(12).keys(),x => Utilities.formatDate(new Date(new Date().getFullYear(), x , 1),Session.getScriptTimeZone,"MMMM"))]; const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName('Sheet1'); const vs = sh.getRange(1,1,sh.getLastRow()).getValues().sort((a,b) => { let vA = mA.indexOf(a[0]); let vB = mA.indexOf(b[0]); return vA-vB;//swap for descending });//Data in column A sh.getRange(1,1,vs.length,vs[0].length).setValues(vs); }