Создайте дополнительный лист из основного листа, используя диапазон импорта, отфильтруйте и сопоставьте Google App Script - PullRequest
0 голосов
/ 06 января 2020

Я хочу получить данные из дамп-листа данных Google. Есть лист за каждый месяц. Импортируйте / сопоставляйте данные со столбцами, расположенными в другом порядке в другой подчиненной электронной таблице, и размещайте все месяцы на одном листе. Наконец, я хочу отфильтровать данные по человеку, состоянию и дате, поэтому будут отображаться только эти элементы, если не заполнена ячейка H1. Если ячейка H1 заполнена и не равна нулю, будут показаны все данные, которые соответствуют критериям.

Мастер: https://docs.google.com/spreadsheets/d/1nIzCqQUL1K4HwYUGV0jxjJjLKSFaeqVn27f_pkoL9j0/edit?usp=sharing

Подсписок: https://docs.google.com/spreadsheets/d/1-V0F_pJTKFmP8jRBwpIzBe_sP7GbC-314oUB97N0K-0/edit#gid = 0

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);
  }}
...