繁体   English   中英

在 Google App Scripts 中处理单元格内的日期

[英]Working with Dates within cells in Google App Scripts

我有一个数组,我想仅使用特定时间段(数组中的第 4 列)之后的日期进行过滤。 startDate 变量是我想用来过滤数组的单元格中的日期。 我还想过滤掉第 4 列中的空白单元格。 我尝试了一些不同的东西,但该函数返回整个数组,只过滤空白列。 这是我尝试过的最新代码。

function invPayable(){
   var overview = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Overview");

   var paymentLog = SpreadsheetApp.openById("1KkR4jE1c00WuQpPrexW8f9BIq5vxl0fWaUGxbeYERsE").getSheetByName("Payment Log");
   var paymentArr = paymentLog.getRange(3, 1,paymentLog.getLastRow(),paymentLog.getLastColumn()).getValues();
   var startDate = new Date(overview.getRange(3, 1).getValue());

   var pay1 = paymentArr.map(function(r){return [r[0],r[1],r[2],r[3]]})
      .filter(function(item){
      if(item[3]!=""){return true}
      if(item[3]>=startDate){return true}
      else{return false}
   });

 //execute
 overview.getRange(2, 18,pay1.length,4).setValues(pay1);
 overview.getRange(6,1).setValue(startDate);
}//Added by editor

问题:

if(item[3]!=""){return true}
if(item[3]>=startDate){return true}

一旦满足第一个if条件(即第 4 列不为空),函数结束并返回true 从不检查第二个if条件。 所以,

该函数返回整个数组,只过滤空列。

解决方案:

在结束函数之前检查这两个条件。

片段:

if(item[3]!="" && item[3]>=startDate ){return true}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM