1 минута чтения
21 ноября 2021 г.
How to: Google App Script
Сегодняшний пост прольет свет на то, как можно еще более эффективно использовать один из очень удобных инструментов для базовой аналитики — Google Sheets.
Зачастую, аналитикам нужно часто и много работать с таблицами и создавать выборки по различным условиям. В работе с таблицами проблема часто заключается в том, что приходится обрабатывать и систематизировать большие объемы данных, хранящихся на разных листах. К примеру, вы ведете учет клиентов на одном листе таблицы, выгружая данные из сторонних сервисов, и вам хотелось бы, при обновлении ячеек менять данные на другом листе, используя возможности скриптов Google Sheets. Давайте посмотрим как легко и просто решить эту задачу.
Редактор скриптов
Если у вас есть Google аккаунт и таблицы с данными, загруженные в Google Sheets, то можно создавать скрипт для этой таблицы. Выберите таблицу, в которой нужно автоматизировать перенос информации с одного листа на другой, откройте её и выберете в меню «Инструменты» пункт «Редактор скриптов». Браузер переадресует вас на страницу Apps Script, где вы можете создавать и редактировать скрипты для таблицы.
Автоматизация переноса строк на другой лист
Итак, наш скрипт должен автоматически выполнять задачу переноса строки на другой лист. Для этого, мы создаем еще одну колонку в таблице, в которой можно будет поставить галочку для переноса строки и убрать её для отмены этого действия. Давайте разберемся, как именно это делается.
При написании скрипта можно использовать функцию-триггер, которая срабатывает при выполнении определенного условия. Подробнее о функциях-триггерах вы можете прочитать в документации. В нашем скрипте мы используем функцию OnEdit(e), которая запускается при редактировании ячейки таблицы (включение и выключение галочки). Эту функцию мы вызовем в конце скрипта, а пока что, пропишем все, что в функции должно происходить.
<code class="lang-js">
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)
}
</code>
В итоге, если галочка в столбце выделена, то соответствующая строка будет перенесена на другой лист. Также, важно помнить, что, при удалении галочки, строка убирается с другого листа. В нашем примере мы получили следующие две таблицы:
Выводы
Сегодня мы показали вам простой пример скрипта, который упростит, а может даже улучшит, рутинную работу с таблицами. Конечно, с помощью скриптов Google Sheets можно автоматизировать еще очень много других процессов. Вы можете сами прочитать о других функциях, а мы подробно расскажем о некоторых из них в следующих постах!
Комментарии
Добавить комментарий
[ Рекомендации ]
Читайте также
[ Связаться ]
Давайте раскроем потенциал вашего бизнеса вместе
Заполните форму на бесплатную консультацию
Скрипт не работает. Можно ссылку на таблицу?
Ага: https://docs.google.com/spreadsheets/d/1YC7-nEByxcjGE-rsr-K9-jHchBuNDnk4zUZrx4HJIt8/edit#gid=949380830
Спасибо большое! Все получилось, вот только у меня при нажатии галочки вставляется две строки и не знаю как это исправить. Если можно узнать , где у Вас еще есть уроки? Только Вы смогли мне помочь , хотелось бы на Вас подписаться. Спасибо!
Вы всегда можете подписаться на наш телеграм-канал: https://t.me/leftjoin