Создайте библиотеку Apps Script , которую можно использовать для удаления повторяющихся строк в данных электронных таблиц.
Цели
- Настройте скрипт.
- Запустите скрипт.
Предварительные требования
Для использования этого примера необходимы следующие условия:
- Для работы потребуется учетная запись Google (для учетных записей Google Workspace может потребоваться подтверждение администратора).
- Веб-браузер с доступом в интернет.
Настройте скрипт
Для создания библиотеки выполните следующие шаги:
- Войдите в свой аккаунт Google.
- Чтобы открыть редактор скриптов, перейдите по адресу script.google.com .
- В левом верхнем углу нажмите «Новый проект» .
Удалите весь код в редакторе скриптов и вставьте приведенный ниже код.
Нажмите «Сохранить».
.
В левом верхнем углу нажмите «Безымянный проект» .
Назовите свой скрипт , удалите повторяющиеся строки и нажмите «Переименовать» .
Нажмите «Развернуть» > «Новое развертывание» .
Рядом с пунктом «Выберите тип» нажмите «Включить типы развертывания».
> Библиотека .
Введите описание библиотеки, например, «Удаление повторяющихся строк» . Любой пользователь, имеющий доступ к библиотеке, сможет просмотреть это описание.
Нажмите «Развернуть» .
В левой части экрана нажмите «Настройки проекта» .
.
В разделе «Идентификаторы» скопируйте идентификатор скрипта для использования на следующем шаге.
Запустите скрипт
Для использования библиотеки вам необходимы как минимум права на просмотр проекта Apps Script, к которому она относится. Поскольку вы создали библиотеку, у вас есть все необходимые права для её использования. Если вы хотите разрешить другим пользователям использовать библиотеку, предоставьте им права на просмотр проекта Apps Script.
Для использования библиотеки выполните следующие действия:
- Откройте электронную таблицу Google Sheets, содержащую данные с повторяющимися строками. Чтобы использовать пример таблицы, создайте копию таблицы "Пример повторяющихся строк" .
- Нажмите «Расширения» > «Скрипты приложений» .
- Рядом с разделом «Библиотеки» нажмите « библиотеку».
- В разделе «Идентификатор скрипта» вставьте идентификатор скрипта из проекта Apps Script библиотеки, который вы скопировали в предыдущем разделе.
- Нажмите «Поиск» .
- В разделе «Версия» выберите 1 .
- Нажмите «Добавить» .
Удалите весь код в редакторе скриптов и вставьте приведенный ниже код.
function runLibrary() { Removeduplicaterows.removeDuplicates(); }В раскрывающемся списке функций выберите runLibrary .
Нажмите «Выполнить» .
Вернитесь к электронной таблице, чтобы просмотреть обновленные данные без повторяющихся строк.
Просмотрите код
Чтобы просмотреть код Apps Script для этого решения, нажмите «Просмотреть исходный код» ниже:
Посмотреть исходный код
Сначала скрипт выполняет один запрос к электронной таблице для получения всех данных. Вы можете читать таблицу построчно, но операции JavaScript значительно быстрее, чем взаимодействие с другими сервисами, такими как электронные таблицы. Чем меньше запросов вы делаете, тем быстрее выполняется скрипт. Это важно, поскольку максимальное время выполнения каждого скрипта составляет 6 минут.
Переменная data представляет собой двумерный массив JavaScript, содержащий все значения в таблице. newData — это пустой массив, в который скрипт помещает все неповторяющиеся строки.
Первый цикл for перебирает каждую строку в двумерном массиве data . Для каждой строки второй цикл проверяет, существует ли уже другая строка с соответствующими данными в массиве newData . Если дубликат отсутствует, строка добавляется в массив newData .
В заключение скрипт удаляет существующее содержимое листа и вставляет содержимое массива newData .
Модификации
Вы можете редактировать библиотеку по своему усмотрению в соответствии со своими потребностями. Ниже представлено необязательное изменение.
Удалите строки с совпадающими данными в некоторых столбцах.
Вместо того чтобы удалять все строки, соответствующие условиям, вы можете захотеть удалить строки, имеющие совпадающие данные только в одном или двух столбцах. Для этого можно изменить условное выражение.
В приведенном примере кода обновите следующую строку:
if(row.join() == newData[j].join()){ duplicate = true; }
Замените эту строку следующим кодом:
if(row[0] == newData[j][0] && row[1] == newData[j][1]){ duplicate = true; }
Приведенное выше условное выражение находит дубликаты каждый раз, когда две строки содержат одинаковые данные в первом и втором столбцах листа.
Авторы
Этот пример создан Роменом Виалардом, экспертом-разработчиком Google. Следите за Роменом в Твиттере @romain_vialard .
Данный пример поддерживается компанией Google при содействии экспертов-разработчиков Google.