我希望有人可以帮助我,我在过去的几天里一直在做很多搜索并且没有找到解决方案 . 可能与我缺乏编码知识有关......我知道这很危险,只是不够有效或高效!
首先,这是我的目标 .
-
创建一个文档,其中包含我的营销团队的'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])
}
}
}
}