Проверьте дату и вставьте лист со столбцами и строками - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь автоматизировать отчет на работе. Данные поступают в Google лист из формы Google, в настоящее время я автоматизировал часть процесса, см. Код ниже.

var sheets = SpreadsheetApp.getActiveSpreadsheet();          //Gets the active spreadsheet.

var inputSheet = sheets.getSheetByName('Form');  //Gets sheet Form responses 1.

var lastRow = inputSheet.getLastRow();                       //Gets last row and stores it to variable lastRow.

var statSheet = sheets.getSheetByName('Nums');            //Gets numbers sheet.

var type = inputSheet.getRange('C' + lastRow).getValue();    //Gets column C which contains type of review i.e. compliment, comment or complaint.

var service = inputSheet.getRange('O' + lastRow).getValue(); //Gets column O which contains the service the review is assigned to.

var date = new Date(inputSheet.getRange('L' + lastRow).getValue());    //Gets column L which contains the date the review was submitted.
var month = date.getMonth();

var array = [["Befriending", "Comment", "B2"],["Befriending", "Compliment", "C2"],["Befriending", "Complaint", "D2"], ["Finance", "Comment", "B3"],["Finance", "Compliment", "C3"],["Finance", "Complaint", "D3"],

           ["Fund Raising", "Comment", "B4"],["Fund Raising", "Compliment", "C4"],["Fund Raising", "Complaint", "D4"],

           ["Home Help", "Comment", "B5"],["Home Help", "Compliment", "C5"],["Home Help", "Complaint", "D5"],

           ["I & A", "Comment", "B6"],["I & A", "Compliment", "C6"],["I & A", "Complaint", "D6"],

           ["Management Services", "Comment", "B7"],["Management Services", "Compliment", "C7"],["Management Services", "Complaint", "D7"],

           ["Toe Nails", "Comment", "B8"],["Toe Nails", "Compliment", "C8"],["Toe Nails", "Complaint", "D8"],

           ["Trading", "Comment", "B2"],["Trading  ", "Compliment", "C2"],["Trading  ", "Complaint", "D2"]  // Mutli-dimensional array containing the service, type of review and data range.
];           

for(m = 0; m < 12; m++) // For loop that iterates through m as an index less than 12 times.
{
  if(m === month){

  for(i = 0; i < array.length; i++)
  {

    collectingData(statSheet, service, type, array[i][0], array[i][1], array[i][2]); // Calling function to pass through arguments if conditions are met.
  }
}
}


function collectingData(statSheet,service, type, numbersService, numbersType, numbersColumn)
{

if(service === numbersService && type === numbersType)   // If service and type conditions are met, value is added to currentTotal

  {
  var currentTotal = statSheet.getRange(numbersColumn).getValue();
currentTotal++ 
statSheet.getRange(numbersColumn).setValue(currentTotal);
}
}
}

Приведенный выше код работает нормально, однако мне нужно проверить, существует ли месяц, и не создает ли он новый лист для данных, которые нужно вводить. Я относительно новичок в кодировании и не знаю, возможно ли это? Я верю, что это так, но то, как я пишу это в коде, озадачивает меня!

1 Ответ

0 голосов
/ 26 июня 2019
  • Зайдя в редактор кода, нажав на кнопку часов, которая между "сохранить" и "запустить".
  • Это приведет вас к месту запуска, в правом нижнем углу там будет кнопка «добавить новый триггер».
  • Нажмите на нее, и вы сможете выбрать триггеры, которые лучше всего подходят вам.
  • Для того, который вы хотите, в «источнике событий» выберите «Управляемый временем»
  • Затем выберите «ежемесячно», какой день месяца и в какое время дня.

Картинки ниже, чтобы показать пример:

trigger button


trigger settings


Кроме того, здесь - это некоторая документация по триггерам, на случай, если у вас возникнут дополнительные вопросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...