Namokonov

Untitled

May 19th, 2021 (edited)
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function main(){
  2. const sh = SpreadsheetApp.getActiveSheet();
  3. const range1 = sh.getRange("a1:c").getValues().filter(t=> t[0]);
  4.  
  5. const lastValue = range1[(range1.length-1)][1];
  6. const lastRow = getLength(range1);
  7.  
  8. const range2 = sh.getRange("g1:g").getValues();
  9. const range3 = sh.getRange("g1:h").getValues();
  10.  
  11. let row_from_dict = getFromDict(range3, searchInDict(lastValue, range2));
  12. row_from_dict.unshift(new Date())
  13.  
  14. sh.getRange(lastRow + 1, 1, 1, 3).setValues([row_from_dict]);
  15.  
  16. }
  17.  
  18. function searchInDict(search, search_arr) {
  19.   return search_arr.flat().indexOf(search);
  20. }
  21.  
  22. function getFromDict(dict, index) {
  23.   return dict[index+1];
  24. }
  25.  
  26. function getLengthCol(arr) {
  27.   let lr;
  28.   for (var x = 0; x < arr.length; x++) {
  29.     if (arr[x]) { lr = (x + 1) }
  30.   }
  31.   return lr
  32. }
  33.  
  34.  
  35. //пользовательская функция, определяем последнюю заполненную строку в переданном диапазоне
  36. function getLength(arr) {
  37.   //объявляем пустую переменную lr
  38.   let lr;
  39.  
  40.   //делаем цикл по строкам диапазон
  41.   for (var x = 0; x < arr.length; x++) {
  42.     //определяем строку
  43.     const row = arr[x];
  44.  
  45.     //фильтруем строку от пустых значений, если что-то осталось - значит проваливаемся в if
  46.     if (row.filter(t => t).length != 0) {
  47.       //и делаем lr равным x (номер строки в диапазоне + 1
  48.       lr = (x + 1)
  49.     }
  50.   }
  51.  
  52.   //после того, как цикл закончится возвращаем lr
  53.   return lr
  54. }
Add Comment
Please, Sign In to add comment