@msnn

Как в Google таблице найти строки, которые соответствуют условию, получить номера их строк и по каждой выполнить мой скрипт?

Привет друзья.
Столкнулся с проблемой, которую не могу решить собственными силами и обращаюсь к вам за помощью. Задача заключается в том, чтобы проверить все ячейки в столбце и найти те, статус которых не соответствует значению "Бан".
5fbac30aaa307899660099.jpeg
Затем получить номер строки по каждой ячейке с нужным статусом и по очереди для них выполнить мой скрипт. Сейчас этот скрипт получает данные из разлычных столбцов активной(выбранной) строки, отправляет GET запрос и записывает полученные в ответ данные в другие столбцы активной строки. Мне нужно то же самое, только в автоматическом режиме. Но я не знаю, как написать функцию, которая будет перебирать весь массив данных из диапазона, получать номера строк, которые соответствуют условию и отрабатывать по ним скрипт.
Вот код моего скрипта:
var ss = SpreadsheetApp.getActiveSpreadsheet();
  var activeCell = ss.getActiveSheet().getActiveCell();
  var sheet = ss.getSheetByName("Тех");
  var rowNum = activeCell.getRow();
  var accID = ss.getSheetByName("Тех").getRange(rowNum , 7).getValue();
  var rkID = ss.getSheetByName("Тех").getRange(rowNum , 8).getValue();
  var options = "JLZlG30r5d7_NGLKyH-nTzwiKJFNNRWKKV"; 
  var rowExa = sheet.getRange(rowNum , 10);
  var rowExb = sheet.getRange(rowNum, 11);
  var rowExc = sheet.getRange(rowNum, 12);
  var rowExd = sheet.getRange(rowNum, 13);
  var rowExe = sheet.getRange(rowNum, 14);
  var curDate = new Date();
  var status = ss.getSheetByName("Тех").getRange(rowNum, 10).getValue();
  var response = UrlFetchApp.fetch("https://fbtool.pro/api/get-adaccounts?key=" + options + "&account=" + accID + "&ad_account=" + rkID);
  var datas = JSON.parse(response);
  var status = datas.data[0].account_status;
  var currency = datas.data[0].currency;
  var trshhold = datas.data[0].adspaymentcycle.data[0].threshold_amount/100;
  var curntspent = datas.data[0].current_unbilled_spend.offsetted_amount/100;
  var totalspent = datas.data[0].amount_spent/100;    
  rowExa.setValue(status);
  rowExb.setValue(currency);
  rowExc.setValue(trshhold);
  rowExd.setValue(curntspent);
  rowExe.setValue(totalspent);
    if(ss.getSheetByName("Тех").getRange(rowNum, 15).getValue() == "" && status == "1") {
       ss.getSheetByName("Тех").getRange(rowNum, 15).setValue(curDate)
    } else { 
    ss.getSheetByName("Тех").getRange(rowNum, 16).setValue(curDate)
    }


Буду очень благодарен за любую помощь в решении этого вопроса)
  • Вопрос задан
  • 1849 просмотров
Пригласить эксперта
Ответы на вопрос 1
BasiC2k
@BasiC2k
.NET developer (open to job offers)
1. Определяете последнюю заполненную строку в столбце
2. Считываете колонку в массив
3. Перебираете все элементы массива. Запускаете обработку в зависимости от номера элемента и его значения.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы