Уровень владения программированием : начинающий
Продолжительность : 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.