计算左侧的工作表数量或名称中具有最高日期的选项卡

时间:2018-02-15 15:20:37

标签: google-sheets

我有一个包含模板的Google电子表格。现在,我将复制此选项卡以创建一个新选项卡。然后我必须根据它的周来调整开始日期。因为我每两周创建一次,所以我想知道是否有办法在左边计算标签数量。如果可以,那么我只需要查看模板上的开始日期,并根据每个标签代表2周的周数来添加日期。

如果这不可能,那么是否可以改为获取lat标签的名称并将其转换为日期?然后我可以在那个日期增加2周。我的标签名称基本上是日期(02-25-2018)。

2 个答案:

答案 0 :(得分:1)

这应该这样做:

function createSheet() {
  var ss=SpreadsheetApp.getActiveSpreadsheet()
  var s=ss.getSheets()//get all the sheets
  var len=s.length// how many sheets
  var name=s[len-1].getSheetName()//get name of last sheet
  var newSheet=new Date(name)//convert to date
  var newdate = newSheet.setDate(newSheet.getDate()+14);//add 14 days to date
  var twoWeekDate = Utilities.formatDate(new Date(newdate), "GMT+1", "MM/dd/yyyy")//set format
   ss.insertSheet(twoWeekDate)//create new sheet
  }

答案 1 :(得分:0)

我建议你更通用的解决方案。

这里是获取所有标签名称的功能:

function getAllTabsNames()
{
  var file = SpreadsheetApp.getActive();
  var sheets = file.getSheets();
  var result = [];
  sheets.forEach(function(sheet) { result.push(sheet.getName()); } );
  return result;
}

用法:

=IF(A1,getAllTabsNames())

注意:

  • 出现新工作表时,该功能不会自动刷新。要手动刷新它,请使用此技巧。在单元格TRUE中写下A1,然后再将其更改为FALSETRUE

enter image description here

结果是数组:工作表名称列表。

接下来的步骤:

  • 使用原生函数来获得所需的结果。