How to: Google App Script

Время чтения текста – 5 минут

Сегодняшний пост прольет свет на то, как можно еще более эффективно использовать один из очень удобных инструментов для базовой аналитики — Google Sheets.
Зачастую, аналитикам нужно часто и много работать с таблицами и создавать выборки по различным условиям. В работе с таблицами проблема часто заключается в том, что приходится обрабатывать и систематизировать большие объемы данных, хранящихся на разных листах. К примеру, вы ведете учет клиентов на одном листе таблицы, выгружая данные из сторонних сервисов, и вам хотелось бы, при обновлении ячеек менять данные на другом листе, используя возможности скриптов Google Sheets. Давайте посмотрим как легко и просто решить эту задачу.

Редактор скриптов

Если у вас есть Google аккаунт и таблицы с данными, загруженные в Google Sheets, то можно создавать скрипт для этой таблицы. Выберите таблицу, в которой нужно автоматизировать перенос информации с одного листа на другой, откройте её и выберете в меню «Инструменты» пункт «Редактор скриптов». Браузер переадресует вас на страницу Apps Script, где вы можете создавать и редактировать скрипты для таблицы.

Автоматизация переноса строк на другой лист

Итак, наш скрипт должен автоматически выполнять задачу переноса строки на другой лист. Для этого, мы создаем еще одну колонку в таблице, в которой можно будет поставить галочку для переноса строки и убрать её для отмены этого действия. Давайте разберемся, как именно это делается.
При написании скрипта можно использовать функцию-триггер, которая срабатывает при выполнении определенного условия. Подробнее о функциях-триггерах вы можете прочитатьhttps://developers.google.com/apps-script/guides/triggers?hl=ru#onedite в документации. В нашем скрипте мы используем функцию OnEdit(e), которая запускается при редактировании ячейки таблицы (включение и выключение галочки). Эту функцию мы вызовем в конце скрипта, а пока что, пропишем все, что в функции должно происходить.

function myScript(e) {   
  // Задаем следующее условие для функции: нужно реагировать только на нажатие галочки в восьмой колонке на листе "Лиды-воронка". 
  if (e.source.getActiveSheet().getName() == "Лиды- воронка" && e.range.getColumn() == 8)
  {
    // Сохраняем объекты исходного листа и листа назначения
    destSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('test');
    sourceSheet = e.source.getActiveSheet();
    // Очищаем лист назначения. При очистке, начинаем со второй строки, так как у нас в таблице есть заголовок.
    destSheet.getRange(2, 1, destSheet.getLastRow(), destSheet.getLastColumn()).clearContent();
    //Перебираем все ячейки с галочками, ищем те ячейки, в которых галочки проставлены.
    range = sourceSheet.getRange(1, 1, sourceSheet.getLastRow(), sourceSheet.getLastColumn());       
    for (i = 2; i <= range.getNumRows(); i++) 
    {      
      //Получаем все проставленные галочки.
      if (range.getCell(i,8).getValue())
      {        
        // Если галочка проставлена, то текущая строка переносится на новый лист.
        currentRow = sourceSheet.getRange(i, 1, i, sourceSheet.getLastColumn());           
        destSheet.appendRow(currentRow.getValues()[0]);
      }      
    }    
  }

// Затем, вызываем функцию-триггер, которая будет вызывать наш скрипт при каждом редактировании ячейки.
function onEdit(e) {
  myScript(e)
}

В итоге, если галочка в столбце выделена, то соответствующая строка будет перенесена на другой лист. Также, важно помнить, что, при удалении галочки, строка убирается с другого листа.
В нашем примере мы получили следующие две таблицы:

Выводы

Сегодня мы показали вам простой пример скрипта, который упростит, а может даже улучшит, рутинную работу с таблицами. Конечно, с помощью скриптов Google Sheets можно автоматизировать еще очень много других процессов. Вы можете сами прочитать о других функциях, а мы подробно расскажем о некоторых из них в следующих постах!

Поделиться
Отправить
Запинить
 375   18 дн   api   google analytics
Популярное