簡體   English   中英

Google 表格中的自定義排序

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

數組.from()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM