Задать вопрос
@Romka7070

Как отнять 1 еденицу значения при совпадении ячейки в разных листах одной гугл таблицы?

Делаю систему учета товара и продаж. Сделал гугл форму при продаже товара, где менеджер выбирает из списка товар. Все данные с гугл формы попадают в "Лист1". Также в этой таблице есть "Лист2" с учетом товара.
В "Лист1" есть колонки "время", "менеджер", "товар", "Сихронизация". В "Лист2" есть колонки "Товар", "Количество".

Мне нужно, поставить тригер onEdit, чтобы выполнялись следующие действия:
1. При редактировании строки "товар", проверялось заполнена ли строка "Синхронизация". Если там что-то написано, то ничего не делать. Значит функция уже выполнялась.
2. Если она пуста, то взять значение с колонки "Товар" (такого формата "4836 Ray Ban/ синие/ пластик") и найти точно такое же значение на "Листе2", в колонке "Товар".
Если нашли такое значение, то с колонки "Количество товара"в этой же строке нужно отнять 1 еденицу товара и записать в "Лист1" в колонку "Синхронизация" - Сихронизировано, чтобы функция не повторялись снова для этой строки.

За помощь готов отблагодарить на Киви.
  • Вопрос задан
  • 94 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
@JohnnyBravo7
аналитика, маркетинг, python, js, google script
Было бы полезно увидеть пример таблицы.

upd:

function myFunction() {
  var s = SpreadsheetApp.getActiveSpreadsheet();
  var s1 = s.getSheetByName('Лист1');
  var s2 = s.getSheetByName('Лист2');
  var vals1 = s1.getRange(1,1,s1.getLastRow(),s1.getLastColumn()).getValues();
  var vals2 = s2.getRange(1,1,s2.getLastRow(),s2.getLastColumn()).getValues();
  
  for(var i=0;i<vals1.length;i++){
    if(vals1[i][2] != '' && vals1[i][3] == ''){
      for(var j=0;j<vals2.length;j++){
        if(vals2[j][0] == vals1[i][2]){
          var new_count = vals2[j][1] - 1;
          s2.getRange(j+1,2).setValue(new_count);          
        }        
      } 
      s1.getRange(i+1,4).setValue('Синхронизировано');
    }    
  }  
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы