Javascript Google应用程序脚本将多个工作表合并到一个主工作表中

Javascript Google应用程序脚本将多个工作表合并到一个主工作表中,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我有一个小的销售团队(5人,但人数正在增加),负责将销售记录到工作簿中的多个工作表中。我想运行一个脚本,将所有这些工作表合并到一个脚本中,如果可能的话,每天都要运行一个脚本 因此,这些阶段将以每天为基础 1) 从Master Daily中删除所有记录(这是为了说明单个销售表中以前数据的任何更改) 2) 循环浏览所有工作表并添加数据 共有6列,它们的顺序相同,但包含不同的数据 编辑打开,直到赏金授予 代码尝试: function merge() { var v, arr,

我有一个小的销售团队(5人,但人数正在增加),负责将销售记录到工作簿中的多个工作表中。我想运行一个脚本,将所有这些工作表合并到一个脚本中,如果可能的话,每天都要运行一个脚本

因此,这些阶段将以每天为基础

1) 从Master Daily中删除所有记录(这是为了说明单个销售表中以前数据的任何更改) 2) 循环浏览所有工作表并添加数据

共有6列,它们的顺序相同,但包含不同的数据

编辑打开,直到赏金授予

代码尝试:

function merge() {
    var v, arr,
        ss = SpreadsheetApp.getActive();
    ss.getSheets().filter(function(s) {
        return s.getName()
            .indexOf('Project') > -1
    }).forEach(function(s, i) {
        v = s.getDataRange()
            .getValues()
            .filter(function(r) {
                return r.toString()
                    .length > 0
            })
        arr = (i == 0) ? v : arr.concat(v);
    })
    ss.getSheetByName('Master')
        .getRange(1, 1, arr.length, arr[0].length)
        .setValues(arr);
}
任何帮助都将不胜感激


谢谢

尝试SheetGo附加组件,它将有助于在几次单击后完成工作

看看这个:
这些是主要功能

dailysheets.gs:

function archiveDaily() {
  const mshsr=4;
  const ss=SpreadsheetApp.getActive();
  const msh=ss.getSheetByName('Master');
  const dss=SpreadsheetApp.openById(getGlobal('MasterSheetsLogId'));//open master archive
  const ts=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MM/dd/yy HH:mm:ss")
  msh.copyTo(dss).setName(ts);//copies current master sheet to master archive not sure if you would want this but I would
  if(msh.getLastRow()-mshsr+1>0) {
    msh.getRange(mshsr,1,msh.getLastRow()-mshsr+1,msh.getLastColumn()).clearContent();
  }
  const nA=getGlobal('DailySheetNames').split(',');//sheet name store in Globals sheet as a hash table
  const dt=new Date();
  const td=new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()).valueOf();//start of day
  const to=new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()+1).valueOf();//end of day
  const dshsr=4;
  nA.forEach(function(name,i){
    let dsh=ss.getSheetByName(name);
    let drg=dsh.getRange(dshsr,1,dsh.getLastRow()-dshsr+1,dsh.getLastColumn());
    let v=drg.getDisplayValues();
    let mv=[[dsh.getName(),'','','','','','','','','','','','','','','','']];//Display Sheetname on top of every group
    v.forEach(function(r,i){
      let idt=new Date(r[0]).valueOf();
      //Select rows that fall between midnights
      if(idt>td && idt<to) {
        mv.push(r);
      }
    });
    msh.getRange(msh.getLastRow()+1,1,mv.length,mv[0].length).setValues(mv);//Put each sheets data into master sheet
  });
}

function createDailyTrigger() {
  var ss=SpreadsheetApp.getActive();
  //This line keeps you  from creating more than one trigger
  if(!isTrigger('archiveDaily')) {
    ScriptApp.newTrigger('archiveDaily').timeBased().everyDays(1).atHour(23).create();
  }
}
其中一张图纸的图像:

其中一个数据表的csv:

1234567891011121314151617
012345678910111213141516
HDR1HDR2HDR3HDR4HDR5HDR6HDR7HDR8HDR9HDR10HDR11HDR12HDR13HDR14HDR15HDR16HDR17
Mon Feb 10 2020 06:00:00 GMT-0700 (Mountain Standard Time)12345678910111213141516
Mon Feb 10 2020 06:20:00 GMT-0700 (Mountain Standard Time)234567891011121314151617
Mon Feb 10 2020 06:40:00 GMT-0700 (Mountain Standard Time)3456789101112131415161718
Mon Feb 10 2020 07:00:00 GMT-0700 (Mountain Standard Time)45678910111213141516171819
Mon Feb 10 2020 07:20:00 GMT-0700 (Mountain Standard Time)567891011121314151617181920
Mon Feb 10 2020 07:40:00 GMT-0700 (Mountain Standard Time)6789101112131415161718192021
Mon Feb 10 2020 08:00:00 GMT-0700 (Mountain Standard Time)78910111213141516171819202122
Mon Feb 10 2020 08:20:00 GMT-0700 (Mountain Standard Time)891011121314151617181920212223
Mon Feb 10 2020 08:40:00 GMT-0700 (Mountain Standard Time)9101112131415161718192021222324
Mon Feb 10 2020 09:00:00 GMT-0700 (Mountain Standard Time)10111213141516171819202122232425
Mon Feb 10 2020 09:20:00 GMT-0700 (Mountain Standard Time)11121314151617181920212223242526
Mon Feb 10 2020 09:40:00 GMT-0700 (Mountain Standard Time)12131415161718192021222324252627
Mon Feb 10 2020 10:00:00 GMT-0700 (Mountain Standard Time)13141516171819202122232425262728
Mon Feb 10 2020 10:20:00 GMT-0700 (Mountain Standard Time)14151617181920212223242526272829
Mon Feb 10 2020 10:40:00 GMT-0700 (Mountain Standard Time)15161718192021222324252627282930
Mon Feb 10 2020 11:00:00 GMT-0700 (Mountain Standard Time)16171819202122232425262728293031
Mon Feb 10 2020 11:20:00 GMT-0700 (Mountain Standard Time)17181920212223242526272829303132
Mon Feb 10 2020 11:40:00 GMT-0700 (Mountain Standard Time)18192021222324252627282930313233
母版纸的图像:

母版页的csv:

1234567891011121314151617
012345678910111213141516
HDR1HDR2HDR3HDR4HDR5HDR6HDR7HDR8HDR9HDR10HDR11HDR12HDR13HDR14HDR15HDR16HDR17
Adam
Mon Feb 10 2020 06:00:00 GMT-0700 (Mountain Standard Time)12345678910111213141516
Mon Feb 10 2020 06:20:00 GMT-0700 (Mountain Standard Time)234567891011121314151617
Mon Feb 10 2020 06:40:00 GMT-0700 (Mountain Standard Time)3456789101112131415161718
Mon Feb 10 2020 07:00:00 GMT-0700 (Mountain Standard Time)45678910111213141516171819
Mon Feb 10 2020 07:20:00 GMT-0700 (Mountain Standard Time)567891011121314151617181920
Mon Feb 10 2020 07:40:00 GMT-0700 (Mountain Standard Time)6789101112131415161718192021
Mon Feb 10 2020 08:00:00 GMT-0700 (Mountain Standard Time)78910111213141516171819202122
Mon Feb 10 2020 08:20:00 GMT-0700 (Mountain Standard Time)891011121314151617181920212223
Mon Feb 10 2020 08:40:00 GMT-0700 (Mountain Standard Time)9101112131415161718192021222324
Mon Feb 10 2020 09:00:00 GMT-0700 (Mountain Standard Time)10111213141516171819202122232425
Mon Feb 10 2020 09:20:00 GMT-0700 (Mountain Standard Time)11121314151617181920212223242526
Mon Feb 10 2020 09:40:00 GMT-0700 (Mountain Standard Time)12131415161718192021222324252627
Mon Feb 10 2020 10:00:00 GMT-0700 (Mountain Standard Time)13141516171819202122232425262728
Mon Feb 10 2020 10:20:00 GMT-0700 (Mountain Standard Time)14151617181920212223242526272829
Mon Feb 10 2020 10:40:00 GMT-0700 (Mountain Standard Time)15161718192021222324252627282930
Mon Feb 10 2020 11:00:00 GMT-0700 (Mountain Standard Time)16171819202122232425262728293031
Mon Feb 10 2020 11:20:00 GMT-0700 (Mountain Standard Time)17181920212223242526272829303132
Mon Feb 10 2020 11:40:00 GMT-0700 (Mountain Standard Time)18192021222324252627282930313233
Bill
Mon Feb 10 2020 06:00:00 GMT-0700 (Mountain Standard Time)12345678910111213141516
Mon Feb 10 2020 06:20:00 GMT-0700 (Mountain Standard Time)234567891011121314151617
Mon Feb 10 2020 06:40:00 GMT-0700 (Mountain Standard Time)3456789101112131415161718
Mon Feb 10 2020 07:00:00 GMT-0700 (Mountain Standard Time)45678910111213141516171819
Mon Feb 10 2020 07:20:00 GMT-0700 (Mountain Standard Time)567891011121314151617181920
Mon Feb 10 2020 07:40:00 GMT-0700 (Mountain Standard Time)6789101112131415161718192021
Mon Feb 10 2020 08:00:00 GMT-0700 (Mountain Standard Time)78910111213141516171819202122
Mon Feb 10 2020 08:20:00 GMT-0700 (Mountain Standard Time)891011121314151617181920212223
Mon Feb 10 2020 08:40:00 GMT-0700 (Mountain Standard Time)9101112131415161718192021222324
Mon Feb 10 2020 09:00:00 GMT-0700 (Mountain Standard Time)10111213141516171819202122232425
Mon Feb 10 2020 09:20:00 GMT-0700 (Mountain Standard Time)11121314151617181920212223242526
Mon Feb 10 2020 09:40:00 GMT-0700 (Mountain Standard Time)12131415161718192021222324252627
Mon Feb 10 2020 10:00:00 GMT-0700 (Mountain Standard Time)13141516171819202122232425262728
Mon Feb 10 2020 10:20:00 GMT-0700 (Mountain Standard Time)14151617181920212223242526272829
Mon Feb 10 2020 10:40:00 GMT-0700 (Mountain Standard Time)15161718192021222324252627282930
Mon Feb 10 2020 11:00:00 GMT-0700 (Mountain Standard Time)16171819202122232425262728293031
Mon Feb 10 2020 11:20:00 GMT-0700 (Mountain Standard Time)17181920212223242526272829303132
Mon Feb 10 2020 11:40:00 GMT-0700 (Mountain Standard Time)18192021222324252627282930313233
Charlie
Mon Feb 10 2020 06:00:00 GMT-0700 (Mountain Standard Time)12345678910111213141516
Mon Feb 10 2020 06:20:00 GMT-0700 (Mountain Standard Time)234567891011121314151617
Mon Feb 10 2020 06:40:00 GMT-0700 (Mountain Standard Time)3456789101112131415161718
Mon Feb 10 2020 07:00:00 GMT-0700 (Mountain Standard Time)45678910111213141516171819
Mon Feb 10 2020 07:20:00 GMT-0700 (Mountain Standard Time)567891011121314151617181920
Mon Feb 10 2020 07:40:00 GMT-0700 (Mountain Standard Time)6789101112131415161718192021
Mon Feb 10 2020 08:00:00 GMT-0700 (Mountain Standard Time)78910111213141516171819202122
Mon Feb 10 2020 08:20:00 GMT-0700 (Mountain Standard Time)891011121314151617181920212223
Mon Feb 10 2020 08:40:00 GMT-0700 (Mountain Standard Time)9101112131415161718192021222324
Mon Feb 10 2020 09:00:00 GMT-0700 (Mountain Standard Time)10111213141516171819202122232425
Mon Feb 10 2020 09:20:00 GMT-0700 (Mountain Standard Time)11121314151617181920212223242526
Mon Feb 10 2020 09:40:00 GMT-0700 (Mountain Standard Time)12131415161718192021222324252627
Mon Feb 10 2020 10:00:00 GMT-0700 (Mountain Standard Time)13141516171819202122232425262728
Mon Feb 10 2020 10:20:00 GMT-0700 (Mountain Standard Time)14151617181920212223242526272829
Mon Feb 10 2020 10:40:00 GMT-0700 (Mountain Standard Time)15161718192021222324252627282930
Mon Feb 10 2020 11:00:00 GMT-0700 (Mountain Standard Time)16171819202122232425262728293031
Mon Feb 10 2020 11:20:00 GMT-0700 (Mountain Standard Time)17181920212223242526272829303132
Mon Feb 10 2020 11:40:00 GMT-0700 (Mountain Standard Time)18192021222324252627282930313233
Don
Mon Feb 10 2020 06:00:00 GMT-0700 (Mountain Standard Time)12345678910111213141516
Mon Feb 10 2020 06:20:00 GMT-0700 (Mountain Standard Time)234567891011121314151617
Mon Feb 10 2020 06:40:00 GMT-0700 (Mountain Standard Time)3456789101112131415161718
Mon Feb 10 2020 07:00:00 GMT-0700 (Mountain Standard Time)45678910111213141516171819
Mon Feb 10 2020 07:20:00 GMT-0700 (Mountain Standard Time)567891011121314151617181920
Mon Feb 10 2020 07:40:00 GMT-0700 (Mountain Standard Time)6789101112131415161718192021
Mon Feb 10 2020 08:00:00 GMT-0700 (Mountain Standard Time)78910111213141516171819202122
Mon Feb 10 2020 08:20:00 GMT-0700 (Mountain Standard Time)891011121314151617181920212223
Mon Feb 10 2020 08:40:00 GMT-0700 (Mountain Standard Time)9101112131415161718192021222324
Mon Feb 10 2020 09:00:00 GMT-0700 (Mountain Standard Time)10111213141516171819202122232425
Mon Feb 10 2020 09:20:00 GMT-0700 (Mountain Standard Time)11121314151617181920212223242526
Mon Feb 10 2020 09:40:00 GMT-0700 (Mountain Standard Time)12131415161718192021222324252627
Mon Feb 10 2020 10:00:00 GMT-0700 (Mountain Standard Time)13141516171819202122232425262728
Mon Feb 10 2020 10:20:00 GMT-0700 (Mountain Standard Time)14151617181920212223242526272829
Mon Feb 10 2020 10:40:00 GMT-0700 (Mountain Standard Time)15161718192021222324252627282930
Mon Feb 10 2020 11:00:00 GMT-0700 (Mountain Standard Time)16171819202122232425262728293031
Mon Feb 10 2020 11:20:00 GMT-0700 (Mountain Standard Time)17181920212223242526272829303132
Mon Feb 10 2020 11:40:00 GMT-0700 (Mountain Standard Time)18192021222324252627282930313233
Earl
Mon Feb 10 2020 06:00:00 GMT-0700 (Mountain Standard Time)12345678910111213141516
Mon Feb 10 2020 06:20:00 GMT-0700 (Mountain Standard Time)234567891011121314151617
Mon Feb 10 2020 06:40:00 GMT-0700 (Mountain Standard Time)3456789101112131415161718
Mon Feb 10 2020 07:00:00 GMT-0700 (Mountain Standard Time)45678910111213141516171819
Mon Feb 10 2020 07:20:00 GMT-0700 (Mountain Standard Time)567891011121314151617181920
Mon Feb 10 2020 07:40:00 GMT-0700 (Mountain Standard Time)6789101112131415161718192021
Mon Feb 10 2020 08:00:00 GMT-0700 (Mountain Standard Time)78910111213141516171819202122
Mon Feb 10 2020 08:20:00 GMT-0700 (Mountain Standard Time)891011121314151617181920212223
Mon Feb 10 2020 08:40:00 GMT-0700 (Mountain Standard Time)9101112131415161718192021222324
Mon Feb 10 2020 09:00:00 GMT-0700 (Mountain Standard Time)10111213141516171819202122232425
Mon Feb 10 2020 09:20:00 GMT-0700 (Mountain Standard Time)11121314151617181920212223242526
Mon Feb 10 2020 09:40:00 GMT-0700 (Mountain Standard Time)12131415161718192021222324252627
Mon Feb 10 2020 10:00:00 GMT-0700 (Mountain Standard Time)13141516171819202122232425262728
Mon Feb 10 2020 10:20:00 GMT-0700 (Mountain Standard Time)14151617181920212223242526272829
Mon Feb 10 2020 10:40:00 GMT-0700 (Mountain Standard Time)15161718192021222324252627282930
Mon Feb 10 2020 11:00:00 GMT-0700 (Mountain Standard Time)16171819202122232425262728293031
Mon Feb 10 2020 11:20:00 GMT-0700 (Mountain Standard Time)17181920212223242526272829303132
Mon Feb 10 2020 11:40:00 GMT-0700 (Mountain Standard Time)18192021222324252627282930313233
Francis
Mon Feb 10 2020 06:00:00 GMT-0700 (Mountain Standard Time)12345678910111213141516
Mon Feb 10 2020 06:20:00 GMT-0700 (Mountain Standard Time)234567891011121314151617
Mon Feb 10 2020 06:40:00 GMT-0700 (Mountain Standard Time)3456789101112131415161718
Mon Feb 10 2020 07:00:00 GMT-0700 (Mountain Standard Time)45678910111213141516171819
Mon Feb 10 2020 07:20:00 GMT-0700 (Mountain Standard Time)567891011121314151617181920
Mon Feb 10 2020 07:40:00 GMT-0700 (Mountain Standard Time)6789101112131415161718192021
Mon Feb 10 2020 08:00:00 GMT-0700 (Mountain Standard Time)78910111213141516171819202122
Mon Feb 10 2020 08:20:00 GMT-0700 (Mountain Standard Time)891011121314151617181920212223
Mon Feb 10 2020 08:40:00 GMT-0700 (Mountain Standard Time)9101112131415161718192021222324
Mon Feb 10 2020 09:00:00 GMT-0700 (Mountain Standard Time)10111213141516171819202122232425
Mon Feb 10 2020 09:20:00 GMT-0700 (Mountain Standard Time)11121314151617181920212223242526
Mon Feb 10 2020 09:40:00 GMT-0700 (Mountain Standard Time)12131415161718192021222324252627
Mon Feb 10 2020 10:00:00 GMT-0700 (Mountain Standard Time)13141516171819202122232425262728
Mon Feb 10 2020 10:20:00 GMT-0700 (Mountain Standard Time)14151617181920212223242526272829
Mon Feb 10 2020 10:40:00 GMT-0700 (Mountain Standard Time)15161718192021222324252627282930
Mon Feb 10 2020 11:00:00 GMT-0700 (Mountain Standard Time)16171819202122232425262728293031
Mon Feb 10 2020 11:20:00 GMT-0700 (Mountain Standard Time)17181920212223242526272829303132
Mon Feb 10 2020 11:40:00 GMT-0700 (Mountain Standard Time)18192021222324252627282930313233

脚本的简化版本:

//@OnlyCurrentDoc
function merge() {
  const ss = SpreadsheetApp.getActive();
  const arr = ss
    .getSheets()
    .filter(s => !s.getName().includes('Master'))//exclude Master sheet
    .flatMap(s => s.getDataRange().getValues());//map sheet to values and flatten it
  ss.getSheetByName('Master')
    .getRange(1, 1, arr.length, arr[0].length)
    .setValues(arr);
}
修改

  • 排除主控图纸而不包括所有项目图纸的步骤
  • 使用v8 es6语法和优化

    • 以下脚本执行以下操作:

      1) 每天存档,而不考虑其他选项卡的命名约定(只有主选项卡需要正确命名)

      2) 忽略其他选项卡中的标题行(假定主选项卡具有标题行)

      3) 每日触发器

      4) 增加了在访问数据之前运行脚本的情况下存档以前主控文件的功能-仅存档1天

      EverydayTrigger函数创建每日循环,MergeSheet函数是合并工作表的主脚本。每行脚本的解释都在脚本本身中

      function EverydayTrigger() {
        ScriptApp.newTrigger("MergeSheets")
        .timeBased()
        .everyDays(1)
        .create();
      }
      
      function MergeSheets() {
        var app = SpreadsheetApp;
        var ss = app.getActiveSpreadsheet();
        var data = null;
        var RetrieveSheet = null;
        var PasteSheet = ss.getSheetByName("Master");
      
        /*
        // Use this if you are using the archiving option
        var PrevArchSheetName = PasteSheet.getRange(1,1000).getValue();
      
        if(PrevArchSheetName.length > 1){
          var PrevArchSheet = ss.getSheetByName(PrevArchSheetName); //Retrieve the stored Archive Sheet's Name
          ss.deleteSheet(PrevArchSheet);
        }
        */
      
        var sheets = ss.getSheets();//get all sheets regardless of naming conventions (allow you to expand your data source)
      
        /*
        //This portion can be used to allow for archiving of the previous day data in case you still need it.
        var ArchiveSheet = ss.insertSheet(new Date() + "Master");
        PasteSheet.getDataRange().copyTo(ArchiveSheet.getRange(1,1));
        PasteSheet.getRange(1,1000).setValue(ArchiveSheet.getName()); // stores the name of the sheet so as to delete it when the script run again
        */
      
        PasteSheet.getRange(2,1,PasteSheet.getLastRow(),PasteSheet.getLastColumn()).clear();//removes all old information
      
        for (var i =0; i<sheets.length; i++){
          RetrieveSheet = ss.getSheetByName(sheets[i].getName());
          if (RetrieveSheet.getName() != 'Master'){
            //data = RetrieveSheet.getDataRange(); //use this if you want the header row for each salesperson
            data = RetrieveSheet.getRange(2,1,RetrieveSheet.getLastRow(),RetrieveSheet.getLastColumn()); //presuming you dont want the header rows
            data.copyTo(PasteSheet.getRange(parseInt(PasteSheet.getLastRow())+1,1));
          }
        }
      }
      
      函数EverydayTrigger(){
      ScriptApp.newTrigger(“合并表单”)
      .基于时间的()
      .每天(1)
      .create();
      }
      函数MergeSheets(){
      var app=电子表格应用程序;
      var ss=app.getActiveSpreadsheet();
      var数据=null;
      var RetrieveSheet=null;
      var PasteSheet=ss.getSheetByName(“主”);
      /*
      //如果要使用存档选项,请使用此选项
      var PrevArchSheetName=PasteSheet.getRange(11000.getValue();
      如果(PrevArchSheetName.length>1){
      var PrevArchSheet=ss.getSheetByName(PrevArchSheetName);//检索存储的存档工作表的名称
      ss.deleteSheet(上一页);
      }
      */
      var sheets=ss.getSheets();//获取所有工作表,而不考虑命名约定(允许您扩展数据源)
      /*
      //这一部分可用于存档前一天的数据,以防您仍然需要它。
      var ArchiveSheet=ss.insertSheet(新日期()+“主日期”);
      PasteSheet.getDataRange().copyTo(ArchiveSheet.getRange(1,1));
      PasteSheet.getRange(11000).setValue(ArchiveSheet.getName());//存储工作表的名称,以便在脚本再次运行时将其删除
      */
      PasteSheet.getRange(2,1,PasteSheet.getLastRow(),PasteSheet.getLastColumn()).clear();//删除所有旧信息
      
      对于(var i=0;我想看看,因为它可能是解决您问题的非脚本解决方案。我确实尝试过将项目添加到我的每个团队工作表中,但结果是主工作表中只返回了一个工作表。每个团队工作表名称中是否都有“项目”?@datanovel what进入“Master Daily”?问题是,你的原始脚本似乎可以很好地工作,似乎非常适合这份工作。它不工作吗?你所要做的就是添加“项目”为了所有团队的名字。由于数据隐私,我对任何附加组件都很谨慎。在GDPR后的世界中,我们必须对我们的数据更加严格。也许这会有帮助,我们会很快进行测试并回复给你。感谢这一点,我相信很多其他人都会受益。我已经在所有脚本中添加了dailysheets.gs错误,在第17行说
      missing;before statement
      我在主要帖子中添加了一个演示页。我试图实现的地方是你在运行V8吗?很抱歉,我再也不关注这些链接了。如果你想发布该页面的csv,那就太好了。非常感谢cooper,我尽了最大的努力让它工作,但这超出了我的能力范围-非常棒的代码片段o它肯定会对其他人有益。谢谢!注意:您需要在测试之前进行测试。
      1234567891011121314151617
      012345678910111213141516
      HDR1HDR2HDR3HDR4HDR5HDR6HDR7HDR8HDR9HDR10HDR11HDR12HDR13HDR14HDR15HDR16HDR17
      Adam
      Mon Feb 10 2020 06:00:00 GMT-0700 (Mountain Standard Time)12345678910111213141516
      Mon Feb 10 2020 06:20:00 GMT-0700 (Mountain Standard Time)234567891011121314151617
      Mon Feb 10 2020 06:40:00 GMT-0700 (Mountain Standard Time)3456789101112131415161718
      Mon Feb 10 2020 07:00:00 GMT-0700 (Mountain Standard Time)45678910111213141516171819
      Mon Feb 10 2020 07:20:00 GMT-0700 (Mountain Standard Time)567891011121314151617181920
      Mon Feb 10 2020 07:40:00 GMT-0700 (Mountain Standard Time)6789101112131415161718192021
      Mon Feb 10 2020 08:00:00 GMT-0700 (Mountain Standard Time)78910111213141516171819202122
      Mon Feb 10 2020 08:20:00 GMT-0700 (Mountain Standard Time)891011121314151617181920212223
      Mon Feb 10 2020 08:40:00 GMT-0700 (Mountain Standard Time)9101112131415161718192021222324
      Mon Feb 10 2020 09:00:00 GMT-0700 (Mountain Standard Time)10111213141516171819202122232425
      Mon Feb 10 2020 09:20:00 GMT-0700 (Mountain Standard Time)11121314151617181920212223242526
      Mon Feb 10 2020 09:40:00 GMT-0700 (Mountain Standard Time)12131415161718192021222324252627
      Mon Feb 10 2020 10:00:00 GMT-0700 (Mountain Standard Time)13141516171819202122232425262728
      Mon Feb 10 2020 10:20:00 GMT-0700 (Mountain Standard Time)14151617181920212223242526272829
      Mon Feb 10 2020 10:40:00 GMT-0700 (Mountain Standard Time)15161718192021222324252627282930
      Mon Feb 10 2020 11:00:00 GMT-0700 (Mountain Standard Time)16171819202122232425262728293031
      Mon Feb 10 2020 11:20:00 GMT-0700 (Mountain Standard Time)17181920212223242526272829303132
      Mon Feb 10 2020 11:40:00 GMT-0700 (Mountain Standard Time)18192021222324252627282930313233
      Bill
      Mon Feb 10 2020 06:00:00 GMT-0700 (Mountain Standard Time)12345678910111213141516
      Mon Feb 10 2020 06:20:00 GMT-0700 (Mountain Standard Time)234567891011121314151617
      Mon Feb 10 2020 06:40:00 GMT-0700 (Mountain Standard Time)3456789101112131415161718
      Mon Feb 10 2020 07:00:00 GMT-0700 (Mountain Standard Time)45678910111213141516171819
      Mon Feb 10 2020 07:20:00 GMT-0700 (Mountain Standard Time)567891011121314151617181920
      Mon Feb 10 2020 07:40:00 GMT-0700 (Mountain Standard Time)6789101112131415161718192021
      Mon Feb 10 2020 08:00:00 GMT-0700 (Mountain Standard Time)78910111213141516171819202122
      Mon Feb 10 2020 08:20:00 GMT-0700 (Mountain Standard Time)891011121314151617181920212223
      Mon Feb 10 2020 08:40:00 GMT-0700 (Mountain Standard Time)9101112131415161718192021222324
      Mon Feb 10 2020 09:00:00 GMT-0700 (Mountain Standard Time)10111213141516171819202122232425
      Mon Feb 10 2020 09:20:00 GMT-0700 (Mountain Standard Time)11121314151617181920212223242526
      Mon Feb 10 2020 09:40:00 GMT-0700 (Mountain Standard Time)12131415161718192021222324252627
      Mon Feb 10 2020 10:00:00 GMT-0700 (Mountain Standard Time)13141516171819202122232425262728
      Mon Feb 10 2020 10:20:00 GMT-0700 (Mountain Standard Time)14151617181920212223242526272829
      Mon Feb 10 2020 10:40:00 GMT-0700 (Mountain Standard Time)15161718192021222324252627282930
      Mon Feb 10 2020 11:00:00 GMT-0700 (Mountain Standard Time)16171819202122232425262728293031
      Mon Feb 10 2020 11:20:00 GMT-0700 (Mountain Standard Time)17181920212223242526272829303132
      Mon Feb 10 2020 11:40:00 GMT-0700 (Mountain Standard Time)18192021222324252627282930313233
      Charlie
      Mon Feb 10 2020 06:00:00 GMT-0700 (Mountain Standard Time)12345678910111213141516
      Mon Feb 10 2020 06:20:00 GMT-0700 (Mountain Standard Time)234567891011121314151617
      Mon Feb 10 2020 06:40:00 GMT-0700 (Mountain Standard Time)3456789101112131415161718
      Mon Feb 10 2020 07:00:00 GMT-0700 (Mountain Standard Time)45678910111213141516171819
      Mon Feb 10 2020 07:20:00 GMT-0700 (Mountain Standard Time)567891011121314151617181920
      Mon Feb 10 2020 07:40:00 GMT-0700 (Mountain Standard Time)6789101112131415161718192021
      Mon Feb 10 2020 08:00:00 GMT-0700 (Mountain Standard Time)78910111213141516171819202122
      Mon Feb 10 2020 08:20:00 GMT-0700 (Mountain Standard Time)891011121314151617181920212223
      Mon Feb 10 2020 08:40:00 GMT-0700 (Mountain Standard Time)9101112131415161718192021222324
      Mon Feb 10 2020 09:00:00 GMT-0700 (Mountain Standard Time)10111213141516171819202122232425
      Mon Feb 10 2020 09:20:00 GMT-0700 (Mountain Standard Time)11121314151617181920212223242526
      Mon Feb 10 2020 09:40:00 GMT-0700 (Mountain Standard Time)12131415161718192021222324252627
      Mon Feb 10 2020 10:00:00 GMT-0700 (Mountain Standard Time)13141516171819202122232425262728
      Mon Feb 10 2020 10:20:00 GMT-0700 (Mountain Standard Time)14151617181920212223242526272829
      Mon Feb 10 2020 10:40:00 GMT-0700 (Mountain Standard Time)15161718192021222324252627282930
      Mon Feb 10 2020 11:00:00 GMT-0700 (Mountain Standard Time)16171819202122232425262728293031
      Mon Feb 10 2020 11:20:00 GMT-0700 (Mountain Standard Time)17181920212223242526272829303132
      Mon Feb 10 2020 11:40:00 GMT-0700 (Mountain Standard Time)18192021222324252627282930313233
      Don
      Mon Feb 10 2020 06:00:00 GMT-0700 (Mountain Standard Time)12345678910111213141516
      Mon Feb 10 2020 06:20:00 GMT-0700 (Mountain Standard Time)234567891011121314151617
      Mon Feb 10 2020 06:40:00 GMT-0700 (Mountain Standard Time)3456789101112131415161718
      Mon Feb 10 2020 07:00:00 GMT-0700 (Mountain Standard Time)45678910111213141516171819
      Mon Feb 10 2020 07:20:00 GMT-0700 (Mountain Standard Time)567891011121314151617181920
      Mon Feb 10 2020 07:40:00 GMT-0700 (Mountain Standard Time)6789101112131415161718192021
      Mon Feb 10 2020 08:00:00 GMT-0700 (Mountain Standard Time)78910111213141516171819202122
      Mon Feb 10 2020 08:20:00 GMT-0700 (Mountain Standard Time)891011121314151617181920212223
      Mon Feb 10 2020 08:40:00 GMT-0700 (Mountain Standard Time)9101112131415161718192021222324
      Mon Feb 10 2020 09:00:00 GMT-0700 (Mountain Standard Time)10111213141516171819202122232425
      Mon Feb 10 2020 09:20:00 GMT-0700 (Mountain Standard Time)11121314151617181920212223242526
      Mon Feb 10 2020 09:40:00 GMT-0700 (Mountain Standard Time)12131415161718192021222324252627
      Mon Feb 10 2020 10:00:00 GMT-0700 (Mountain Standard Time)13141516171819202122232425262728
      Mon Feb 10 2020 10:20:00 GMT-0700 (Mountain Standard Time)14151617181920212223242526272829
      Mon Feb 10 2020 10:40:00 GMT-0700 (Mountain Standard Time)15161718192021222324252627282930
      Mon Feb 10 2020 11:00:00 GMT-0700 (Mountain Standard Time)16171819202122232425262728293031
      Mon Feb 10 2020 11:20:00 GMT-0700 (Mountain Standard Time)17181920212223242526272829303132
      Mon Feb 10 2020 11:40:00 GMT-0700 (Mountain Standard Time)18192021222324252627282930313233
      Earl
      Mon Feb 10 2020 06:00:00 GMT-0700 (Mountain Standard Time)12345678910111213141516
      Mon Feb 10 2020 06:20:00 GMT-0700 (Mountain Standard Time)234567891011121314151617
      Mon Feb 10 2020 06:40:00 GMT-0700 (Mountain Standard Time)3456789101112131415161718
      Mon Feb 10 2020 07:00:00 GMT-0700 (Mountain Standard Time)45678910111213141516171819
      Mon Feb 10 2020 07:20:00 GMT-0700 (Mountain Standard Time)567891011121314151617181920
      Mon Feb 10 2020 07:40:00 GMT-0700 (Mountain Standard Time)6789101112131415161718192021
      Mon Feb 10 2020 08:00:00 GMT-0700 (Mountain Standard Time)78910111213141516171819202122
      Mon Feb 10 2020 08:20:00 GMT-0700 (Mountain Standard Time)891011121314151617181920212223
      Mon Feb 10 2020 08:40:00 GMT-0700 (Mountain Standard Time)9101112131415161718192021222324
      Mon Feb 10 2020 09:00:00 GMT-0700 (Mountain Standard Time)10111213141516171819202122232425
      Mon Feb 10 2020 09:20:00 GMT-0700 (Mountain Standard Time)11121314151617181920212223242526
      Mon Feb 10 2020 09:40:00 GMT-0700 (Mountain Standard Time)12131415161718192021222324252627
      Mon Feb 10 2020 10:00:00 GMT-0700 (Mountain Standard Time)13141516171819202122232425262728
      Mon Feb 10 2020 10:20:00 GMT-0700 (Mountain Standard Time)14151617181920212223242526272829
      Mon Feb 10 2020 10:40:00 GMT-0700 (Mountain Standard Time)15161718192021222324252627282930
      Mon Feb 10 2020 11:00:00 GMT-0700 (Mountain Standard Time)16171819202122232425262728293031
      Mon Feb 10 2020 11:20:00 GMT-0700 (Mountain Standard Time)17181920212223242526272829303132
      Mon Feb 10 2020 11:40:00 GMT-0700 (Mountain Standard Time)18192021222324252627282930313233
      Francis
      Mon Feb 10 2020 06:00:00 GMT-0700 (Mountain Standard Time)12345678910111213141516
      Mon Feb 10 2020 06:20:00 GMT-0700 (Mountain Standard Time)234567891011121314151617
      Mon Feb 10 2020 06:40:00 GMT-0700 (Mountain Standard Time)3456789101112131415161718
      Mon Feb 10 2020 07:00:00 GMT-0700 (Mountain Standard Time)45678910111213141516171819
      Mon Feb 10 2020 07:20:00 GMT-0700 (Mountain Standard Time)567891011121314151617181920
      Mon Feb 10 2020 07:40:00 GMT-0700 (Mountain Standard Time)6789101112131415161718192021
      Mon Feb 10 2020 08:00:00 GMT-0700 (Mountain Standard Time)78910111213141516171819202122
      Mon Feb 10 2020 08:20:00 GMT-0700 (Mountain Standard Time)891011121314151617181920212223
      Mon Feb 10 2020 08:40:00 GMT-0700 (Mountain Standard Time)9101112131415161718192021222324
      Mon Feb 10 2020 09:00:00 GMT-0700 (Mountain Standard Time)10111213141516171819202122232425
      Mon Feb 10 2020 09:20:00 GMT-0700 (Mountain Standard Time)11121314151617181920212223242526
      Mon Feb 10 2020 09:40:00 GMT-0700 (Mountain Standard Time)12131415161718192021222324252627
      Mon Feb 10 2020 10:00:00 GMT-0700 (Mountain Standard Time)13141516171819202122232425262728
      Mon Feb 10 2020 10:20:00 GMT-0700 (Mountain Standard Time)14151617181920212223242526272829
      Mon Feb 10 2020 10:40:00 GMT-0700 (Mountain Standard Time)15161718192021222324252627282930
      Mon Feb 10 2020 11:00:00 GMT-0700 (Mountain Standard Time)16171819202122232425262728293031
      Mon Feb 10 2020 11:20:00 GMT-0700 (Mountain Standard Time)17181920212223242526272829303132
      Mon Feb 10 2020 11:40:00 GMT-0700 (Mountain Standard Time)18192021222324252627282930313233
      
      //@OnlyCurrentDoc
      function merge() {
        const ss = SpreadsheetApp.getActive();
        const arr = ss
          .getSheets()
          .filter(s => !s.getName().includes('Master'))//exclude Master sheet
          .flatMap(s => s.getDataRange().getValues());//map sheet to values and flatten it
        ss.getSheetByName('Master')
          .getRange(1, 1, arr.length, arr[0].length)
          .setValues(arr);
      }
      
      function EverydayTrigger() {
        ScriptApp.newTrigger("MergeSheets")
        .timeBased()
        .everyDays(1)
        .create();
      }
      
      function MergeSheets() {
        var app = SpreadsheetApp;
        var ss = app.getActiveSpreadsheet();
        var data = null;
        var RetrieveSheet = null;
        var PasteSheet = ss.getSheetByName("Master");
      
        /*
        // Use this if you are using the archiving option
        var PrevArchSheetName = PasteSheet.getRange(1,1000).getValue();
      
        if(PrevArchSheetName.length > 1){
          var PrevArchSheet = ss.getSheetByName(PrevArchSheetName); //Retrieve the stored Archive Sheet's Name
          ss.deleteSheet(PrevArchSheet);
        }
        */
      
        var sheets = ss.getSheets();//get all sheets regardless of naming conventions (allow you to expand your data source)
      
        /*
        //This portion can be used to allow for archiving of the previous day data in case you still need it.
        var ArchiveSheet = ss.insertSheet(new Date() + "Master");
        PasteSheet.getDataRange().copyTo(ArchiveSheet.getRange(1,1));
        PasteSheet.getRange(1,1000).setValue(ArchiveSheet.getName()); // stores the name of the sheet so as to delete it when the script run again
        */
      
        PasteSheet.getRange(2,1,PasteSheet.getLastRow(),PasteSheet.getLastColumn()).clear();//removes all old information
      
        for (var i =0; i<sheets.length; i++){
          RetrieveSheet = ss.getSheetByName(sheets[i].getName());
          if (RetrieveSheet.getName() != 'Master'){
            //data = RetrieveSheet.getDataRange(); //use this if you want the header row for each salesperson
            data = RetrieveSheet.getRange(2,1,RetrieveSheet.getLastRow(),RetrieveSheet.getLastColumn()); //presuming you dont want the header rows
            data.copyTo(PasteSheet.getRange(parseInt(PasteSheet.getLastRow())+1,1));
          }
        }
      }