Home > Back-end >  Apps script : How do I return data filtered by month year?
Apps script : How do I return data filtered by month year?

Time:02-05

I need to get the data filtered by month and year with dates in column A. I tried something like this, but have a problem with the date formatting

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 )  

}

Here's a simple test sheet : https://docs.google.com/spreadsheets/d/1P58YMZZ5VrVCrTR8huhhhnmsOMZvKnzRqEqua2dICpo/edit#gid=0

CodePudding user response:

In your script, how about the following modification?

From:

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

To:

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

or

var filteredData = data.filter(r => Utilities.formatDate(r[0], "GMT 2", 'MMMMyyyy') == "December2021");
  • Utilities.formatDate(r[0],"GMT 2",'MMMMyyyy' == "December2021") is modified to Utilities.formatDate(r[0], "GMT 2", 'MMMMyyyy') == "December2021".

Reference:

CodePudding user response:

ahem (cough, cough) programming 101 : check your parenthesis !

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

Ty Tanaike; sorry for waisting your time for such a trivial problem.

  •  Tags:  
  • Related