Javascript 使用导入范围、筛选和匹配Google应用程序脚本,从主工作表创建子工作表

Javascript 使用导入范围、筛选和匹配Google应用程序脚本,从主工作表创建子工作表,javascript,google-apps-script,google-sheets,filter,match,Javascript,Google Apps Script,Google Sheets,Filter,Match,我想从google工作表数据转储/主工作表获取数据。每个月都有一张单子。将数据导入/匹配到另一个子电子表格中顺序不同的列,并将所有月份放在一张工作表中。最后,我想按人员、状态和日期过滤数据,因此只有这些项目才会显示,除非填充单元格H1。如果单元格H1已填充且不为空,则将显示符合条件的所有数据 大师: 子表: 函数Importmatchfilter(){ //源表 变量ss=('1NizCqqul1K4HWYUGV0JXJJJJLKSFAEQVN27F_pkoL9j0/编辑#gid=1395833

我想从google工作表数据转储/主工作表获取数据。每个月都有一张单子。将数据导入/匹配到另一个子电子表格中顺序不同的列,并将所有月份放在一张工作表中。最后,我想按人员、状态和日期过滤数据,因此只有这些项目才会显示,除非填充单元格H1。如果单元格H1已填充且不为空,则将显示符合条件的所有数据

大师:

子表:

函数Importmatchfilter(){
//源表
变量ss=('1NizCqqul1K4HWYUGV0JXJJJJLKSFAEQVN27F_pkoL9j0/编辑#gid=1395833187');
var ssn1=ss.getSheetByName('April');('A:Z'))
var ssn2=ss.getSheetByName('May');('A:Z'))
var ssn3=ss.getSheetByName('June');('A:Z'))
var ssn4=ss.getSheetByName('July');('A:Z'))
var ssn5=ss.getSheetByName('August');('A:Z'))
var ssn6=ss.getSheetByName('septer');('A:Z'))
var ssn7=ss.getSheetByName('十月');('A:Z'))
var ssn8=ss.getSheetByName('11');('A:Z'))
var ssn9=ss.getSheetByName('December');('A:Z')
//获取完整的数据范围
var SRange1=ssn1.getDataRange();
var SRange2=ssn2.getDataRange();
var SRange3=ssn3.getDataRange();
var SRange4=ssn4.getDataRange();
var SRange5=ssn5.getDataRange();
var SRange6=ssn6.getDataRange();
var SRange7=ssn7.getDataRange();
var SRange8=ssn8.getDataRange();
var SRange9=ssn9.getDataRange();
//获取标识范围的A1符号
var A1Range=SRange1.getA1Notation();
var A1Range1=SRange1.getA1Notation();
var A1Range2=SRange2.getA1Notation();
var A1Range3=SRange3.getA1Notation();
var A1Range4=SRange4.getA1Notation();
var A1Range5=SRange5.getA1Notation();
var A1Range6=SRange6.getA1Notation();
var A1Range7=SRange7.getA1Notation();
var A1Range8=SRange8.getA1Notation();
var A1Range9=SRange9.getA1Notation();
//获取范围内的数据值
var SData1=SRange1.getValues();
var SData2=SRange2.getValues();
var SData3=SRange3.getValues();
var SData4=SRange4.getValues();
var SData5=SRange5.getValues();
var SData6=SRange6.getValues();
var SData7=SRange7.getValues();
var SData8=SRange8.getValues();
var SData9=SRange9.getValues();
//靶板
var ts=tss.getSheetByName('Sheet1');
函数列表(){
gapi.client.sheets.spreadsheets.values.get({
电子表格ID:'1-V0F_pJTKFmP8jRBwpIzBe_sP7GbC-314oUB97N0K-0',
范围:A1
}).然后(功能(响应){
var范围=响应。结果;
如果(range.values.length>0){
appendPre(“到期日、状态、地址”);
对于(i=0;i0?2:1),1,numRows,numCols).setValues(sData);
}}

我不明白您想要完成什么。您提供的代码非常混乱,正在使用API,我不确定您是否想要使用API。请尝试更清楚地解释。您是否知道源电子表格中不存在
状态
?哪些字段应位于源电子表格和目标电子表格中?And过滤器应如何工作?数据应满足哪些条件才能显示?请检查。感谢您的回复。基本上,我们正在尝试的是填充子表的主表。我们希望数据循环,因此,如果您更新一张表,它们都会更新。该表的顺序与主表不同,没有t需要提取所有数据。子工作表上的数据按人员/部门过滤,因此他们只能看到未清项。示例工作表可能与代码不同,因为它们是根据真实数据创建的示例。再次感谢!
function Importmatchfilter() {

  // source sheet
var ss = ('1nIzCqQUL1K4HwYUGV0jxjJjLKSFaeqVn27f_pkoL9j0/edit#gid=1395833187');
  var ssn1 = ss.getSheetByName('April'); ('A:Z')
 var ssn2 = ss.getSheetByName('May'); ('A:Z')
   var ssn3 = ss.getSheetByName('June'); ('A:Z')
  var ssn4 = ss.getSheetByName('July'); ('A:Z')
  var ssn5 = ss.getSheetByName('August'); ('A:Z')
  var ssn6 = ss.getSheetByName('September'); ('A:Z')
  var ssn7 = ss.getSheetByName('October'); ('A:Z')
  var ssn8 = ss.getSheetByName('November'); ('A:Z')
  var ssn9 = ss.getSheetByName('December'); ('A:Z')

  // Get full range of data
  var SRange1 = ssn1.getDataRange();
    var SRange2 = ssn2.getDataRange();
    var SRange3 = ssn3.getDataRange();
    var SRange4 = ssn4.getDataRange();
    var SRange5 = ssn5.getDataRange();
    var SRange6 = ssn6.getDataRange();
    var SRange7 = ssn7.getDataRange();
    var SRange8 = ssn8.getDataRange();
  var SRange9 = ssn9.getDataRange();

  // get A1 notation identifying the range
  var A1Range = SRange1.getA1Notation();
    var A1Range1 = SRange1.getA1Notation();
    var A1Range2 = SRange2.getA1Notation();
    var A1Range3 = SRange3.getA1Notation();
    var A1Range4 = SRange4.getA1Notation();
    var A1Range5 = SRange5.getA1Notation();
    var A1Range6 = SRange6.getA1Notation();
    var A1Range7 = SRange7.getA1Notation();
    var A1Range8 = SRange8.getA1Notation();
    var A1Range9 = SRange9.getA1Notation();


  // get the data values in range
  var SData1 = SRange1.getValues();
  var SData2 = SRange2.getValues();
  var SData3 = SRange3.getValues();
  var SData4 = SRange4.getValues();
  var SData5 = SRange5.getValues();
  var SData6 = SRange6.getValues();
  var SData7 = SRange7.getValues();
  var SData8 = SRange8.getValues();
   var SData9 = SRange9.getValues();


  // target sheet
  var ts = tss.getSheetByName('Sheet1');
  function listMajors() {
        gapi.client.sheets.spreadsheets.values.get({
          spreadsheetId: '1-V0F_pJTKFmP8jRBwpIzBe_sP7GbC-314oUB97N0K-0',
          range: A1
        }).then(function(response) {
          var range = response.result;
          if (range.values.length > 0) {
            appendPre('Due date, Status, Address:');
            for (i = 0; i < range.values.length; i++) {
              var row = range.values[i];

              appendPre(row[0] + ', ' + row[4]);

              function getheaderValues(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Sheet2');
                var range = sheet.getRange("A:Z");
  var allOfColumnAz = range.getValues()

  for (var i = 1; i < 10 ; i++){ 
    var sData = eval("SData"+i); 
    var lastRow = ts.getLastRow(); 
    var numRows = sData.length; 
    var numCols = sData[0].length; 
    ts.getRange(lastRow+(lastRow > 0 ? 2 : 1), 1, numRows, numCols).setValues(sData);
  }}