我希望有人可以帮助我,我在过去的几天里一直在做很多搜索并且没有找到解决方案 . 可能与我缺乏编码知识有关......我知道这很危险,只是不够有效或高效!

首先,这是我的目标 .

  • 创建一个文档,其中包含我的营销团队的'master list'任务 .

  • 每个团队成员(目前为4个)将拥有自己的选项卡,该选项卡仅显示分配给其姓名的任务,并且在'completed'和'canceled'列下都有空格...

  • 除了团队成员选项卡之外,还有另外两个选项,'Completed'和'Canceled' . 这些选项卡将包含任何团队成员在相应列下具有日期的任何任务 .

目前,我设法创建了一个脚本,该脚本将删除所有选项卡(主列表除外)并使用指定的名称重新创建它们 . 我无法做的是让每张纸过滤结果 . 我似乎无法获得我在论坛中找到的任何代码 . 什么都不会在任何选项卡上自动过滤结果,它只复制主列表并重命名选项卡 . 有人能指出我正确的方向吗?

我能以最有效的方式解决这个问题吗?我是否需要一个可以在命令中运行脚本的按钮? 'team member'工作表是否有办法根据输入主列表的内容进行实时更新?我试图利用这些信息(Filter data by column K in Google Script Editor (Google Sheets)),但无法使其在我的文档中发挥作用 .

对不起,冗长的帖子,提前感谢任何和所有的帮助!

原始文件的副本:https://docs.google.com/spreadsheets/d/141JochDYmt9RHRnyaY2iIoyAISCNNXFVUvEtJlBwtiQ/edit?usp=sharing

代码示例:

function RunFilters() {

  var name = "Adam";

  /*ADAM*/

  var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  var sheet = ss.getSheetByName('Marketing').copyTo(ss);

  /* Before cloning the sheet, delete any previous copy */
  var old_name = ss.getSheetByName(name);
  if (old_name) ss.deleteSheet(old_name); // or old.setName(new Name);

  SpreadsheetApp.flush();
  sheet.setName(name);

  /* Make the new sheet active */
  ss.setActiveSheet(sheet);

      function myFunction() {
          var ss = SpreadsheetApp.getSheetByName('Marketing'); //replace with source Sheet tab name
          var range = ss.getRange('A:I'); //assign the range you want to copy
          var data = range.getValues();

          var tss = SpreadsheetApp.getActiveSpreadsheet(); //replace with destination ID
          var ts = tss.getSheetByName('Adam'); //replace with destination Sheet tab name
          ts.getRange(ts.getLastRow() + 1, 1, data.length, data[0].length).setValues(data);

          var range = ts.getRange(ts.getLastRow() + 1, 1, data.length, data[0].length)
          var rawData = range.getValues()     // get value from spreadsheet 2
          var data = []                       // Filtered Data will be stored in this array

          for (var i = 0; i < rawData.length; i++) {
               if(rawData[i][5] == "Adam")            // Check to see if column K says ipad if not skip it
                    {
                        data.push(rawData[i])
      }
    }
  }
}