Как написать скрипт в гугл таблицах

Как автоматизировать google sheets с помощью макросов

Customize macros with Apps Script

The Apps Script editor shows the macro you previously created in Google Sheets. By adjusting the contents of the function body, you can further customize your macro’s instructions to take different or additional actions. The following exercises demonstrate various ways to manipulate macros with the script editor.

Change the affected cells

Suppose you want to modify your macro so it only affects the first 10 columns of the first row instead of the whole row. You could delete the macro and rerecord it. But, by using the Apps Script editor, you can make those changes directly. Here’s one way of doing it:

  1. In the script editor, replace with . This edit changes the range of cells the macro affects in the spreadsheet.
  1. To save your script, click Save .
  2. To rename your project, enter «Macros and Custom Functions» as the new project name and click Rename.
  3. To create a sheet, in Sheets, click Add Sheet .
  1. In the script editor, from the functions list, select and click Run.

In your new sheet, you should see the following result:

By modifying the active or target range, your macro now affects only part of the first row. Many Apps Script methods take a range or A1 notation as a parameter to specify which cells to act on.

Next, let’s learn about customizing your macro colors.

Change the colors of your macro

To help you design the color scheme of macros or other elements in Sheets, Apps Script can modify a range’s fill or text color. Work through the following instructions to learn how you can customize the colors of your macro.

These instructions focus on changing the background color of your macro:

  1. In Sheets, switch back to the sheet that contains the original data (Sheet 1).
  2. Click the first row to highlight it.
  3. In the script editor, replace background color with . These values represent different colors using hex triplet notation.
  1. To save your script, click Save .
  2. From the functions list, select and click Run.

In Sheets, the background fill of the first 10 columns in the first row recolors to a custom turquoise color:

By switching the hex color notation in the parameters of from (dark magenta 3) to (pale turquoise, an option not accessible in Sheets’ default color menu), you change the color attribute of your macro’s background color.

You’ve now modified the background color set by your macro. If you want to change the text color as well, change the second color code.

  1. In Sheets, click the first row to make sure it’s still highlighted.
  2. In the script editor, replace font color with . This causes the macro to set a font color of navy blue.
  1. To save your script, click Save .
  2. From the functions list, select and click Run.

Return to Sheets to see the text color of the header row is now navy blue.

Массив

Массив — это упорядоченный набор данных, его используют для хранения данных одного типа. К примеру, нам нужно собрать вместе три ID кампаний, чтобы потом делать с этими кампаниями одинаковые действия. Мы соберем их в массив такого вида:

Тут используются данные одного типа — числового, number. И все они собран в один набор — массив.

Вот как можно использовать массив:

То есть в этой переменной скрипт соберет ключевые слова из группы объявлений. Чтобы собрать данные не из всех групп, а только из определенных, мы используем селектор .withIds (тот же принцип, что и withCondition, который мы упоминали на старте). Чтобы указать, какие конкретно ID нужны, мы обращаемся к массиву с названием ids:

.withIds(ids)

Это название отсылает скрипт к строчке, где прописан массив (var ids = ;).

шКоддинг

Перейдем к самому коду:

function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var entries = ;
  sheet.addMenu("Скрипты", entries);
};

function MakeMeHappy(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var range = sheet.getActiveRange();
  var data = range.getValues();
  if(range.getColumn() == 2){
    for (var i=0;i < data.length;i++){
      range.offset(i,-1,1,1).clearFormat();
      range.offset(i,-1,1,1).setHorizontalAlignment("center");
      range.offset(i,-1,1,1).setVerticalAlignment("center");
      switch (data){
        case "зеленый":
        case "Зеленый":
          range.offset(i,-1,1,1).setFontColor("#00dd00");
          break;
        case "салатовый":
        case "Салатовый":
          range.offset(i,-1,1,1).setBackgroundColor("#87dd47");
          break;
        case "желтый":
        case "Желтый":
          range.offset(i,-1,1,1).setBackgroundColor("#ffff00");
          break;
        case "оранжевый":
        case "Оранжевый":
          range.offset(i,-1,1,1).setFontColor("#dd7711");
          break;
        case "красный":
        case "Красный":
          range.offset(i,-1,1,1).setFontColor("#dd0000");
          break;
        case "фиолетовый":
        case "Фиолетовый":
          range.offset(i,-1,1,1).setFontColor("#800080");
          break;
        default: break;
      }
    }
  }
};

Теперь я постараюсь Вам его объяснить. Функция onOpen добавляет меню «Скрипты» к таблице при открытии оной. И выглядит это дело так:

Теперь по коду:

var sheet = SpreadsheetApp.getActiveSpreadsheet();

Эта строчка добавляет в переменную sheet идентификатор открытого нами документа, чтобы потом по нему обращаться к документу.

var entries = ;

Эта переменная-массив содержит список названий менюшек и функций, которые выполняются при клике на эти менюшки.

sheet.addMenu("Скрипты", entries);

Этот метод добавляет к нашему документу меню «Скрипты».

Функция MakeMeHappy, собственно, и будет нашей главной функцией, которая красит фрукты.
Сначала я объявляю переменные:

var sheet = SpreadsheetApp.getActiveSpreadsheet();
var range = sheet.getActiveRange();
var data = range.getValues();

Соответственно, в переменной sheet находится идентификатор нашего документа. В переменной range находится выделенная нами область (например, ячейки B2:B6), в переменной data находятся значения этих ячеек в виде массива.

if(range.getColumn() == 2){...}

В этом условии мы проверяем, что выбранный диапазон ячеек соответствует второй колонке (в которой цвета фруктов).

for (var i=0;i < data.length;i++){...}

В этом цикле мы проходимся по каждой ячейке из диапазона B2:B

range.offset(i,-1,1,1).clearFormat();
range.offset(i,-1,1,1).setHorizontalAlignment("center");
range.offset(i,-1,1,1).setVerticalAlignment("center");

Эти три свойства убирают форматирование ячеек A (например, A1, A2, A3 и т.п., т.к. мы внутри цикла), а также центрируют значения в ячейке по вертикали и горизонтали.

switch (data){
        case "зеленый":
        case "Зеленый":
          range.offset(i,-1,1,1).setFontColor("#00dd00");
          break;
        case "салатовый":
        case "Салатовый":
          range.offset(i,-1,1,1).setBackgroundColor("#87dd47");
          break;
          ...
}

Функция switch является так называемым переключателем. Она смотрит значение переменной и в соответствии с тем, что в ней хранится, выполняет определенное условие «case». Можно её переписать в стандартном виде if else. Но получится очень неудобно. Например:

switch (c){
case 1: условие_1; break;
case 2: условие_2; break;
case 3: условие_3; break;
default: условие_4; break;
}

..Будет эквивалентно функции:

if (c == 1) условие_1;
else if (c == 2) условие_2;
else if (c == 3) условие_3;
else условие_4;

Т.к. можно ввести цвет как с большой, так и с маленькой буквы, то нам надо по два условия, что соответствует записи case «зеленый»: case «Зеленый»: действие; break; (у меня это записано блочной структурой). Нужно иметь в виду, что после каждого действия надо писать функцию break; т.к. иначе мы будем выполнять все условия по порядку, а не то, которое нам надо. Условие default используется в том случае, если для нашей переменной нет подходящего условия.

range.offset(i,-1,1,1).setFontColor("#00dd00");

Методы setFontColor и setBackgroundColor задают цвета текста и фона в виде #rrggbb (r-red, g-green, b-blue, диапазоны цветов) соответственно.

Теперь проверим функцию. Выделяем диапазон B2:B9, заходим в меню «Скрипты» и выбираем опцию «Покрасить». Смотрим, как наши фрукты обрели жизнь цвета :)

В общем-то на этом всё. Но не совсем.

Advanced: Fetch external data

This is a good start for a basic custom function, but this example assumes the exchange rate for dollars to Swiss francs is constant. Suppose instead you wanted to use the current exchange rate, so whenever the sheet is reloaded the values are recalculated to represent the current conversion? To do that, you’d need a means of discovering what the current exchange rate is. That’s not information readily available in Google Sheets, but fortunately you can use Apps Script to get it.

You can use code like below to get the current conversion rate of Swiss francs to U.S. dollars:

This code fetches the current exchange rate from a financial information server using a third-party exchange rate API. This is done using Apps Script services like and . Those advanced concepts are out of scope for this specific codelab, but you can start to see the versatility of Apps Script to automate complex tasks in Google Sheets.

Первый шаг — создание скрипта

Не будем ходить вокруг, да около… Напишем свой первый скрипт прямо сейчас.

Создание скрипта через панель инструментов Script Script

В левом боковом меню, кликните на кнопку + Создать скрипт.

Перед вами окно редактора гугл скриптов:

К слову, это не единственный способ его запуска.

Можно пойти и другим путем.

Создание скрипта через Google Диск

Сперва, заходим на Google Диск.

Клацаем на кнопочку Создать, выпадет список с вариантами, тут выбираем Еще и жмем на Подключить другие приложения.

В окошке подключений, в поиске, вводим Google Apps script клацаем Подключить и… вуаля!

В окне Приложение Google Apps Script добавлено на Google Диск., устанавливаем птицу напротив Выбрать Google Apps Script приложеним по умочанию для файлов, которые открываются с его помощью. и жмем на ок

Теперь в списке ваших возможностей появился новый сервис и мы можем приступать непосредственно к коду.

Создание скрипта через файл-контейнер

Кроме того существует еще один способ создать файл для сценария.

Это создание файла-сценария внутри файла-контейнера (например внутри таблицы, документа, слайда или формы, условно внутри).

Но этот способ мы разберем в следующих статьях.

Create a macro

Now that you have a spreadsheet to work with, you can record a macro in Google Sheets. For this example, you’ll create a macro that formats a header row for your data. Just follow these steps:

  1. Click cell A1 to place the cursor in the row. This is your header row.
  2. In the menu, select Extensions > Macros > Record Macros.

Once you start recording, Google Sheets remembers every action you take within the spreadsheet: highlighting cells, adding data, switching to different sheets, formatting, and so forth. These actions become the ‘script’ that gets repeated once you save and activate the macro later.

  1. In the Macro dialog, select Relative reference.

  1. Select row 1.

  1. Recolor the top row’s Fill Color from white to dark magenta 3.

  1. Change the top row’s Text Color from black to white.

  1. To bold the text, press Ctrl+B (or Cmd+B on macOS).
  2. To freeze the top row, select View > Freeze > 1 row.

  1. Click Save in the macro dialog. A new dialog asks you to name the macro. Enter the name «Header» and click Save.

Using Sheets’ user interface, you’ve made a macro specialized for formatting headers.

Custom function guidelines

Congratulations on completing the exercises for custom functions. As you use custom functions in your projects, it’s important to understand they have certain restrictions. The following list summarizes the limitations detailed in the guide:

  • Don’t create custom functions that require user authorization. Rather, build your custom functions to fulfill simpler tasks such as sample data calculations, text editing, etc. Go to .
  • Don’t name a custom function the same as another built-in function, or end the name with an underscore. Review the .
  • Don’t pass variable arguments to custom functions. You can only pass deterministic (fixed) values to custom functions as arguments. Passing variable arguments, such as the result of , will break the custom function. See the .
  • Don’t create functions that take more than 30 seconds to complete. If it takes longer an error will occur, so keep the function code simple and limited in scope. It’s best to keep the calculations conducted in custom functions as simple as possible. View the .

Автоматизации

В этой сфере возможности предмета статьи поражают воображения. Автоматизировать можно практически все. Надо только немного подумать.

Мощнейший Google Apps Script (расширенная версия Java Script для работы с сервисами Google) может связать Sheets со следующими приложениями:

  • Google Docs;
  • Gmail;
  • Google Translate;
  • Google Forms;
  • Google Sites;
  • Google Translate;
  • Google Calendar;
  • Google Contacts;
  • Google Groups;
  • Google Maps.

Тему использования этого языка совместно с Google Таблицами на iphones.ru мы поднимали неоднократно:

  • 4 лайфхака Gmail и Google Apps Script
  • Автоматизируем Google Таблицы на Google Apps Script
  • Google Apps Script для Docs в примерах
  • Простые автоматизации для Google Drive
  • Планируем жизнь с Google Calendar и Google Apps Script
  • Как правильно делать автоматизированные рассылки в Gmail

Что такое макросы?

Макрос или макрокоманда — это определенная последовательность действий, позволяющая автоматизировать ряд шагов для повышения производительности. Они работают, записывая ваши действия и сохраняя их в файл, привязанный к электронной таблице, в которой они были записаны.

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

Макросы — это мощная функция, которая может делать практически все, на что способны Sheets. Вот лишь несколько примеров его функциональности:

Примените форматирование и стили.Создавайте совершенно новые таблицы.Используйте любую функцию, панель инструментов, меню или функцию Google Таблиц.

Небо это предел.

Google Apps Script: полезные функции и фишки для SEO (часть первая)

Всем привет. Я SEO-специалист Netpeak в отделе по работе с крупными проектами. Масштабные проекты — это всегда большие объемы данных, много анализа и исследований, которые отнимают много времени, поэтому без автоматизации тут не обойтись. Вообще в работе очень сильно помогает софт ребят из Netpeak Software , за это им отдельное большое спасибо.

В этой рубрике (если зайдет, конечно), я буду демонстрировать свои небольшие скрипты, полезные функции и фишки Google Apps Script. В конце каждого поста будет бонус — небольшой скрипт.

Так как это первый пост, думаю, нужно написать о языке и ограничениях.

Скрипт работает в сервисах:

  1. Google Docs.
  2. Google Sheets.
  3. Google Slides.
  4. Google Forms.

Какой уровень владения языками программирования должен быть, чтобы понимать и самостоятельно писать скрипт? Ответ простой: любой, главное желание, терпение и смекалка =)

Я буду приводить примеры скриптов с подробными комментариями, чтобы было понятно.

Как создать скрипт Google Apps Script для Google Sheets

По традиции, выводим надпись «Hello world»:

1. Заходим в таблицу.

2. Переходим во вкладку «Инструменты» — «Редактор скриптов».

3. Мы видим рабочую область, где и нужно писать скрипты.

4. Вставляем код:

5. Запускаем нашу функцию:

6. Сохраняем проект и проходим этап авторизации.

Шаг 1:

Шаг 2:

Шаг 3:

Шаг 4:

Шаг 5:

Разбор кода скрипта в Google Apps Script

В этой строке мы создаем объект класса SpreadsheetApp, чтобы в дальнейшем мы могли использовать различные методы этого класса.

В этой строке грубо говоря мы присваиваем переменной sheetOne так называемый адрес вкладки, которая называется Пост 1. Это упрощает работу с таблицами.

В этой строке мы выводим надпись «Hello world» в ячейку A1 на вкладке «Пост 1». Тут нужно разобраться подробно:

    1. sheetOne — как мы описали выше, это «ссылка» на нашу вкладку «Пост 1».
    2. .getRange(1,1) — это метод, который указывает, что мы будем работать с ячейкой, которая имеет адрес: колонка 1 (A) и столбец 1.
    3. .setValue(«Hello world») — это метод, который записывает то, что в скобках. В нашем случае это «Hello world».

Структура самой функции:

Бонус: как спарсить тег Title и метатег Description

1. В колонке А Вставляем наши URL.

2. Запускаем скрипт.

3. Забираем результаты.

Какие сайты скрипт не сможет спарсить:

Вывод

Google Apps Script помогает бесплатно автоматизировать много ручной работы, например:

  1. Автоматически выгружать различные показатели в Google Analytics и настроить оповещение через электронную почту, если данный показатель изменился на какой-то процент.
  2. Выгружать данные по количеству кликов и показов из сервиса Google Search Console и также оповещать об изменениях.
  3. Мониторить изменения на сайте (наличие новых страниц, изменения в метатегах, коды ответа сервера и так далее).

Конечно, в скриптовом языке Google Apps Script есть много других полезных проверок и расчетов. Их я продемонстрирую в следующих статьях.

Если хотите поделиться своими фишками или задать вопросы, добро пожаловать в комментарии.

С SEO познакомился в 2015 году. Работал и обучался в компании Palmira Studio. C августа 2015 года работаю SEO-специалистом в агентстве интернет-маркетинга Netpeak. Сертификация: Google Analytics, Google AdWords по направлениям «поисковая и мобильная реклама».

6 функций Google Sheet, которые помогают работать с данными

Google Sheet — это универсальный инструмент для систематизации и расчета данных. Этот облачный сервис — большое преимущество перед Excel. С ним легко сотрудничать, автоматизировать данные и не беспокоиться о их возможной потере — изменения сохраняются каждую секунду.

Google Таблицы похожи на Excel, многие функции программируются так же, как в знакомой электронной таблице. Но есть несколько уловок, которые помогут упростить работу с данными.

Присоединение текста в «Гугл Таблицах»

Иногда бывает необходимо использовать текст в таблицах. Может быть, вам нужно обобщить некоторые ключевые значения, или, может быть, вам нужно сгенерировать html-коды.

Амперсанд объединяет значения ячеек и отображает их в текстовом формате в другой ячейке. Кавычки «» заменяют текст, который вы хотите вставить.

Например, у вас есть такая таблица с ячейками:

Пример сочетания текста в Google Таблицах

В ячейке должен появиться общий: «4 поля и 5 ящиков». Ручной ввод, если ячеек много, занимает много времени; С помощью простой формулы это можно автоматизировать.

https://youtube.com/watch?v=qRSERChS0Pc

В нашем примере формула: = A1 & «» & B1 & «и» & A2 & «» & B2 объединяет значения. Выберите ячейку, в которой вы хотите отобразить сводную информацию, и введите эту формулу. Готовый. В новой камере теперь 4 ящика и 5 ящиков».

Совмещаем разные значения в ячейках таблицы и отображаем их в одном

Если вам нужно объединить несколько значений, может помочь функция JOIN. Укажите, какой символ добавить между значениями ячеек, которые вы хотите объединить.

Например, вам нужно объединить данные столбца в одну строку:

Пример объединения ячеек из столбца в одну

Записываем формулу в новую ячейку:

= ПРИСОЕДИНИТЬСЯ («-«; A1: A100)

Объединение цифровых ячеек в одну

Если вы поставите, например, «+» вместо знака «-», результат будет следующим:

Поместите нужный символ между кавычками

INDEX: возврат первого или последнего значения в листе «Гугл Таблицы»

С таблицами легче работать, если у вас есть фиксированный набор данных. Но когда новые данные добавляются через определенные регулярные промежутки времени, например, новая строка каждую неделю, такое же регулярное обновление требуется для бесперебойной работы всех функций.

Вам нужно рассчитать разницу между нижней ячейкой со старым значением. Это делается функцией ИНДЕКС (). Он позволяет вам возвращать значение ячейки, указав, какую строку и столбец искать в массиве данных.

Формула:

= ИНДЕКС (A: A; 1; 1) — всегда возвращает первую ячейку в столбце A.

Функция ИНДЕКС возвращает значение выбранной ячейки

И если вы объедините INDEX () и COUNTA (), он вернет последнее значение из таблицы

= ИНДЕКС (A: A; СЧЁТ (A: A); 1)

Импорт данных в «Гугл Таблицы»

Google Таблицы могут импортировать данные. Вы можете извлекать нужные числа из электронных таблиц из различных источников, включая XML, HTML, RSS и CSV, что полезно для импорта списков сообщений в блогах, настроек, инвентарных списков и т.д. Это можно сделать с помощью функции IMPORTXML:

= IMPORTXML («https://en.wikipedia.org/wiki/Moon_landing»; «// a / @ href»)

Импорт содержимого списка или таблицы

Содержимое списка или таблицы можно импортировать из определенного URL-адреса, используя следующую формулу:

= IMPORTHTML («ссылка»; «таблица»; 4)

Импортировать содержание ссылки в Google Таблицы

Импортируйте файл CSV с указанного URL:

= IMPORTDATA («ссылка на файл CSV»)

Импортировать данные из файла CSV

Импорт данных из RSS или atom-канала

Импорт данных из RSS-канала или атома тоже не составляет труда:

= IMPORTFEED («http://news.google.com/?output=atom»)

Импорт данных из файла RSS или Atom

Эти 6 функций помогут сделать работу с Google Таблицами проще и эффективнее. Используйте их, используйте их.

Формат периода времени (длительность)

Формат PWDTHMS используется когда нужно указать не конкретную точку, а период времени: «3 дня», «2 часа 5 минут» и т.п. То есть, когда нужно показать длительность.

Длительность периода считается в секундах. Если указана другая величина, время приводится к секундам путем умножения: 2 минуты = 2*60 = 120 секунд и т.п.

Расшифровка формата PWDTHMS:

P — префикс периода;

W — суффикс для количества недель (604800 секунд);

D — суффикс для количества дней (86400 секунд);

T — префикс времени;

H — суффикс для количества часов (3600 секунд);

M — суффикс для количества минут (60 секунд);

S — суффикс для количества секунд;

Примеры указания периода времени:

«x» — любое число.

Название Формат Пример
2 недели PхW P2W
10 дней PхD P10D
4 дня 3 часа 5 минут PхDTхHхM P4DT3H5M
2 часа 37 минут PTхHхM PT2H37M
5 минут 10 секунд PTхMхS PT5M10S

Google Apps Script alternative: Coupler.io

Coding your own GAS function for importing data (as shown earlier with the function) may require a lot of effort. You’ll need to test various scenarios, try different filtering criteria, and so on.

If you’re looking for a convenient solution that is powerful and does not require any coding, you may want to try Coupler.io. It’s an integration tool that allows you to import data from CSV and other popular data sources into Google Sheets. 

Coupler.io also offers more features than the IMPORTDATA function does. For a detailed comparison, you may want to check out this comparison table: .

Here’s an example screenshot of selecting CSV data source in Coupler.io:

Simply copy and paste the CSV URL to import:

Optionally, you can specify which fields to import and even skip some rows if you’d like to:

And more interestingly, you can set up an automatic data refresh on a schedule:

Concatenate a string prefix

Suppose you wanted the numeric output of the function to include the Swiss franc prefix . You can do that with Apps Script by using the concatenation operator () as shown in the following instructions:

  1. In the script editor, update the annotation to return string instead of number.
  2. Change to .

The operator appends the string to the front of the value contained in . Your code should now look like this:

  1. To save your script, click Save .

The Swiss franc string now prefixes the values of column I:

Your custom function now not only converts U.S. dollars to Swiss francs, but also outputs the currency with a string prefix.

Создание таблицы Google Drive / Scripts и наполнение её контентом

Рассмотрим такую простенькую задачку:
У нас есть две колонки, в первой мы пишем названия фруктов, а во второй цвет, который соответствует этому фрукту. И мы хотим, чтобы при вводе цвета в колонке цветов автоматически менялся бы цвет названия фрукта.

Если Вы забыли как вообще пользоваться документами Google, то милости просим почитать соответствующую и уже упомянутую выше статью. Если Вам это не нужно совсем, то читать наверное и дальше даже нет смысла. Хотя, конечно, кому что :)

Так вот, создаем новую таблицу Google, именуем её, например, «Фрукты». Ну, как, например.. Учитывая, что пример про фрукты, то.. Ну Вы поняли :)

Теперь добавляем на первый лист наши фрукты и цвета:

Примечание! Для того, чтобы считались фрукты, введите в ячейку А1 формулу:

=»фрукт («&COUNTA(A2:A)&»)»

Теперь создадим макрос. Для этого идем в меню «Инструменты» и выбираем «Управление скриптами». Появится всплывающее меню, где мы жмем на кнопку «Создать».

В появившемся окошке выбираем «Пустой проект».

Откроется редактор, который на первый взгляд (да и на второй) может вызвать ступор.

Собственно, что дальше? А дальше мы начинаем писать наш собственный макрос ручками (да, всё самостоятельно). Как будет выглядеть наш макрос? Нужно составить схемку сего процесса (иначе этот процесс займет у Вас очень много времени).

Нам нужно:

  1. Достать значения цветов из второй колонки;
  2. В соответствии с этими значениями задавать цвета для первой колонки.

Итак.. Вроде бы всё просто.. Если знать, как это делать, конечно :)

Как импортировать макросы

Как упоминалось ранее, когда вы записываете макрос, он привязывается к электронной таблице, в которую вы его записали. Но что, если вы хотите импортировать макрос из другой таблицы? Хотя это не простая и простая задача, вы можете сделать это с помощью этого небольшого обходного пути.

Поскольку записанные макросы хранятся как функции в скрипте Google Apps, для импорта макроса необходимо скопировать функцию и вставить ее в файл макроса нового листа.

Откройте Google Sheet с макросом, который вы хотите скопировать, а затем нажмите Инструменты> Макросы> Управление макросами.

Затем нажмите значок «Дополнительно» рядом с макросом, который вы хотите скопировать, а затем нажмите «Редактировать сценарий».

Все макросы сохраняются в одном файле, поэтому, если у вас есть пара сохраненных макросов, вам, возможно, придется просмотреть их. Имя функции совпадает с именем, которое вы дали при создании.

Выделите макрос (ы), который вы хотите скопировать, затем нажмите Ctrl + C. Обязательно скопируйте все до и включая заключительную точку с запятой.

Теперь откройте другую электронную таблицу, в которую вы будете импортировать макрос, и нажмите «Инструменты»> «Макросы»> «Записать макрос».

Сразу нажмите «Сохранить», не записывая никаких действий, чтобы создать функцию заполнителя в макрофайле листа для нас. Вы удалите это чуть позже.

Нажмите «Сохранить» еще раз.

Откройте «Сценарий Google Apps», нажав «Инструменты»> «Редактор сценариев», а затем откройте файл macros.gs на левой панели. Удалите существующую функцию, а затем нажмите Ctrl + V, чтобы вставить макрос из другого листа.

Нажмите Ctrl + S, чтобы сохранить сценарий, закрыть вкладку и вернуться к таблице.

Ваша электронная таблица читает файл macros.gs и ищет внесенные в него изменения. Если обнаружена новая функция, вы можете использовать функцию импорта, чтобы добавить макрос из другого листа.

Далее нажмите Инструменты> Макросы> Импорт.

Наконец, нажмите «Добавить функцию» под макросом, который вы хотите добавить.

К сожалению, вам придется снова привязать макрос вручную к сочетанию клавиш. Просто следуйте инструкциям, упомянутым ранее, и вы будете готовы использовать этот макрос на нескольких листах.

Это все, что нужно для создания и использования макросов в Google Sheets. Нет никаких ограничений на процедуры, которые вы можете создать для своих электронных таблиц, чтобы ограничить количество времени, которое вы тратите на выполнение этих повторяющихся задач.

Добавление текущего времени и даты с помощью NOW

Добавить текущее время и дату в электронную таблицу Google Таблиц с помощью функции СЕЙЧАС почти слишком просто. Функция СЕЙЧАС не требует дополнительных аргументов, но вам нужно будет отформатировать любые ячейки, используя СЕЙЧАС только для отображения времени.

Для начала откройте электронную таблицу Google Таблиц или создайте новую, щелкните пустую ячейку и введите = СЕЙЧАС ().

После вставки ваша электронная таблица Google Sheets должна по умолчанию использовать стандартное форматирование для формул NOW, которое отображает метку времени с текущим временем и датой.

Google Таблицы также по умолчанию будут использовать форматирование даты и времени, соответствующее вашему языку, которое вы можете изменить в настройках Google Таблиц, щелкнув Файл> Настройки электронной таблицы. В приведенном выше примере используется формат даты в Великобритании (ДД / ММ / ГГ).

Обычно метка времени, созданная с помощью формулы, использующей функцию СЕЙЧАС, обновляется только при изменении вашей электронной таблицы. Вы можете изменить настройки электронной таблицы, чтобы они обновлялись каждую минуту или каждый час дополнительно.

Для этого войдите в настройки Google Таблиц (Файл> Настройки электронной таблицы), щелкните вкладку «Расчет», а затем выберите частоту обновления в раскрывающемся меню «Пересчет».

Метод

Сначала давайте отступим на шаг назад.

Что такое функция? Функция — это завершенный кусок кода с ограниченной функциональностью. То есть если нам надо добавить метки во все кампании, мы последовательно прописываем код, который будет выполнять эту задачу. Только тогда скрипт может это сделать.

Но постойте-ка…

Функция — это когда мы сами прописываем код для выполнения действия.

Метод — это когда мы этот код не пишем. Он уже написан самим Google на стороне Google. То есть мы просто называем, что нужно сделать — и Google сам понимает, что мы хотим:

  • getAvaregePosition — получить среднюю позицию
  • getCampaignIds — получить ID кампаний
  • getDataRange — получить диапазон данных

И так дальше. Соответственно, методы мы тоже не можем придумать сами — мы используем готовые методы, которые придумал и написал у себя Google. Они достаточно простые для понимания, потому что разработчики Google используют понятные названия, которые четко отражают задачу, которую этот метод выполняет.

Чтобы облегчить работу (разработчиков, в первую очередь, но нам это тоже на руку), Google сделал для каждой сущности готовые методы, которые оказываются нужны чаще всего. К примеру:

  • getCampaignIds — получает ID кампаний из аккаунта;
  • addCampaignIds — добавляет ID кампаний (к примеру, в отчет);
  • orderByCampaignIds — сортирует данные по ID кампаний (в отчете).

Или вот для других сущностей:

  • enable — включает (к примеру, рекламную кампанию);
  • set — устанавливает значения;
  • remove — удаляет значение;
  • new — создает что-нибудь.

И так далее.

Селекторы

Есть методы, которые выполняют действие (получить значения заданного параметра — getValues).

Также методы используются для того, чтобы уточнить задачу. И вы это, между прочим, уже знаете!

Вспомните:

withCondition — это метод, который задает условие выполнения.

withLimit — это метод, который задает лимит на количество элементов.

Есть и другие методы для уточнения запроса. Такие методы называются селекторами. Они тоже прописаны на стороне Google — и их целый большой список:

  • withCondition() — добавляет условие;
  • withIds() — добавляет набор ID в качестве условия;
  • orderBy() — уточняет, в каком порядке сортировать элементы;
  • forDateRange() нужен, если вы сортируете информацию по какой-то статистике (по количеству показов, по CTR) и хотите ограничить диапазон данных (к примеру, сортировать по количеству показов, но выбрать только те объявлений, у которых больше 100 показов).

К примеру, вот кусок из , который делает аудит:

Итератор

Повторим!

  1. Функция — это когда мы сами написали кусок кода, который выполняет определенную задачу.
  2. Метод — это когда код написан на стороне Google.
  3. Селектор — это метод, написанный на стороне Google, который уточняет задачу: задает условия или лимиты, к примеру.

Следующий в ряду — итератор.

Когда вы запускаете скрипт и просите, к примеру, добавить метки к кампаниям, скрипту неизвестно, а сколько-то кампаний у вас в аккаунте. Сколько меток ему ставить? Десять? Сто? Одну? Когда остановиться? Тут приходит на помощь итератор.

Итератор нужен, когда на старте неизвестно количество элементов, над которыми нужно выполнить действие. Либо они в принципе неизвестны, либо список большой и его нельзя одномоментно загрузить (потому что на это нужно много памяти).

Когда скрипт работает, итератор перебирает элементы (ключи, группы, кампании, аккаунты — что в скрипте написано, то и перебирает), над которыми выполняется задача.

Есть два итератора:

  • hasNext()
  • next()

Вот где вы можете их встретить:

while (rows.hasNext()) {

var row = rows.next();

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

То есть нужно взять таблицу для отчета (getReportSpreadsheet), взять данные, которые указаны в переменных (ID, Name), ЕСЛИ есть следующий файл. Пока файлы есть — функция будет продолжать выполняться. Когда «следующие» закончатся (то есть все файлы будут заполнены), функция будет выполнена. Когда все функции выполнены, скрипт завершает свою работу.

Понравилась статья? Поделиться с друзьями:
Компьютерная помощь
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: