Уровень владения программированием : начинающий
Продолжительность : 5 минут
Тип проекта : Пользовательская функция
Цели
- Поймите, для чего предназначено это решение.
- Разберитесь, что делают службы Apps Script в рамках данного решения.
- Настройте скрипт.
- Запустите скрипт.
Об этом решении
Если у вас есть данные аналогичной структуры на нескольких листах электронной таблицы, например, показатели работы службы поддержки клиентов для членов команды, вы можете использовать эту пользовательскую функцию для создания сводки по каждому листу. Это решение ориентировано на обработку заявок в службу поддержки клиентов, но вы можете настроить его под свои нужды.


Как это работает
Пользовательская функция, называемая getSheetsData() , суммирует данные с каждого листа в электронной таблице на основе столбца «Статус» этого листа. Скрипт игнорирует листы, которые не должны быть включены в агрегацию, такие как листы ReadMe и Summary .
Сервисы Apps Script
Данное решение использует следующую службу:
- Сервис электронных таблиц — получает листы, которые необходимо обобщить, и подсчитывает количество элементов, соответствующих указанной строке. Затем скрипт добавляет вычисленную информацию в диапазон относительно места вызова пользовательской функции в электронной таблице.
Предварительные требования
Для использования этого примера необходимы следующие условия:
- Для работы потребуется учетная запись Google (для учетных записей Google Workspace может потребоваться подтверждение администратора).
- Веб-браузер с доступом в интернет.
Настройте скрипт
Чтобы создать копию таблицы с пользовательской функцией «Сводка данных» , нажмите следующую кнопку:
Проект Apps Script для данного решения прилагается к электронной таблице.
Запустите скрипт
- В скопированной электронной таблице перейдите на лист «Сводка» .
- Щелкните ячейку
A4. В этой ячейке находится функцияgetSheetsData(). - Перейдите к одному из листов владельца и обновите или добавьте данные в этот лист. Вы можете попробовать следующие действия:
- Добавьте новую строку с примером информации о билете.
- В столбце «Статус» измените статус существующего тикета.
- Измените положение столбца «Статус» . Например, на листе Owner1 переместите столбец «Статус» из столбца C в столбец D.
- Перейдите на лист «Сводка» и просмотрите обновленную сводную таблицу, созданную функцией
getSheetsData()из ячейкиA4. Возможно, вам потребуется установить флажок в строке 10, чтобы обновить кэшированные результаты пользовательской функции. Google кэширует пользовательские функции для оптимизации производительности.- Если вы добавили или обновили строки, скрипт обновит количество заявок и их статусов.
- Если вы изменили положение столбца «Статус» , скрипт всё равно будет работать должным образом с новым индексом столбца.
Просмотрите код
Чтобы просмотреть код Apps Script для этого решения, нажмите «Просмотреть исходный код» :
Просмотреть исходный код
Code.gs
Модификации
Вы можете редактировать пользовательскую функцию по своему усмотрению в соответствии со своими потребностями. Чтобы увидеть дополнительную опцию для ручного обновления результатов пользовательской функции, нажмите «Обновить кэшированные результаты ».
Обновить кэшированные результаты
В отличие от встроенных функций, Google кэширует пользовательские функции для оптимизации производительности. Это означает, что если вы измените что-либо внутри своей пользовательской функции, например, вычисляемое значение, обновление может произойти не сразу. Чтобы обновить результат функции вручную, выполните следующие действия:
- Чтобы добавить флажок в пустую ячейку, нажмите «Вставка» > «Флажок» .
- Добавьте ячейку, содержащую флажок, в качестве параметра пользовательской функции, например,
getSheetsData(B11). - Установите или снимите флажок, чтобы обновить результаты работы пользовательской функции.
Авторы
Данный пример поддерживается компанией Google при содействии экспертов-разработчиков Google.