Apps 脚本:如何 return 按月份筛选数据?

Apps script : How do I return data filtered by month year?

我需要按月份和年份筛选数据,日期列在 A 列中。 我试过类似的方法,但日期格式有问题

function testMonthYear() {
  var ss = SpreadsheetApp.getActiveSpreadsheet()  
  var sheet = ss.getSheetByName("test");
  var data = sheet.getDataRange().getValues();
  
  Logger.log("data : " + JSON.stringify(data) +" "  + data.length)
  
  var filteredData = data.filter(function(r) {return Utilities.formatDate(r[0],"GMT+2",'MMMMyyyy' ==  "December2021")});
  
  Logger.log("filteredData : " + filteredData + "  "  + filteredData.length )  

}

这是一个简单的测试 sheet: https://docs.google.com/spreadsheets/d/1P58YMZZ5VrVCrTR8huhhhnmsOMZvKnzRqEqua2dICpo/edit#gid=0

在你的脚本中,做如下修改怎么样?

发件人:

var filteredData = data.filter(function(r) {return Utilities.formatDate(r[0],"GMT+2",'MMMMyyyy' ==  "December2021")});

收件人:

var filteredData = data.filter(function (r) { return Utilities.formatDate(r[0], "GMT+2", 'MMMMyyyy') == "December2021" });

var filteredData = data.filter(r => Utilities.formatDate(r[0], "GMT+2", 'MMMMyyyy') == "December2021");
  • Utilities.formatDate(r[0],"GMT+2",'MMMMyyyy' == "December2021")修改为Utilities.formatDate(r[0], "GMT+2", 'MMMMyyyy') == "December2021".

参考: