[英]Custom Sort in Google Sheets
我正在嘗試使用 Google 表格的 App Script 自定義排序列表,基本上我有一個月份列表,我希望它們按月份順序顯示為一月、二月、三月……。 這是我的清單的一個例子
我在 App Script 中使用的代碼是:
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]];
});
如何將 App Script 中的此代碼連接到我的電子表格,以便在幾個月內進行排序。
嘗試:
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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.