Создайте библиотеку Apps Script , которую можно использовать для удаления дубликатов строк в данных электронных таблиц.
Цели
- Настройте сценарий.
- Запустите скрипт.
Предпосылки
Для использования этого образца вам необходимы следующие предварительные условия:
- Учетная запись Google (для учетных записей Google Workspace может потребоваться одобрение администратора).
- Веб-браузер с доступом в Интернет.
Настройте сценарий
Чтобы создать библиотеку, выполните следующие шаги:
- Войдите в свою учетную запись Google.
- Чтобы открыть редактор скриптов, перейдите по адресу script.google.com .
- В левом верхнем углу нажмите «Новый проект» .
Удалите весь код в редакторе скриптов и вставьте код ниже.
Нажмите «Сохранить».
.
В левом верхнем углу нажмите «Проект без названия» .
Дайте имя вашему скрипту . Удалите повторяющиеся строки и нажмите «Переименовать» .
Нажмите Развернуть > Новое развертывание .
Рядом с пунктом «Выбрать тип» нажмите «Включить типы развертывания».
> Библиотека .
Введите описание библиотеки, например «Удалить дублирующиеся строки» . Любой, у кого есть доступ к библиотеке, сможет просмотреть это описание.
Нажмите Развернуть .
Слева нажмите «Настройки проекта» .
.
В разделе «Идентификаторы» скопируйте идентификатор скрипта для использования на следующем этапе.
Запустить скрипт
Чтобы использовать библиотеку, вам необходимо иметь как минимум разрешение на просмотр проекта Apps Script. Поскольку вы создали библиотеку, у вас есть необходимые разрешения на её использование. Чтобы разрешить другим пользователям использовать библиотеку, предоставьте им разрешение на просмотр проекта Apps Script.
Чтобы воспользоваться библиотекой, выполните следующие действия:
- Откройте таблицу Google Таблиц с данными, содержащими дублирующиеся строки. Чтобы использовать образец таблицы, сделайте копию образца таблицы с дублирующимися строками .
- Нажмите Расширения > Скрипт приложения .
- Рядом с пунктом Библиотеки нажмите библиотеку.
- В разделе Script ID вставьте ID скрипта из проекта библиотеки Apps Script, скопированного вами в предыдущем разделе.
- Нажмите «Поиск» .
- В разделе Версия выберите 1 .
- Нажмите «Добавить» .
Удалите весь код в редакторе скриптов и вставьте код ниже.
function runLibrary() { Removeduplicaterows.removeDuplicates(); }
В раскрывающемся списке функций выберите runLibrary .
Нажмите кнопку Выполнить .
Вернитесь к электронной таблице, чтобы просмотреть обновленные данные без дублирующихся строк.
Проверьте код
Чтобы просмотреть код Apps Script для этого решения, нажмите «Просмотреть исходный код» ниже:
Посмотреть исходный код
Сначала скрипт выполняет один вызов электронной таблицы для извлечения всех данных. Вы можете читать таблицу построчно, но операции JavaScript выполняются значительно быстрее, чем обращение к другим сервисам, таким как Spreadsheet. Чем меньше вызовов, тем быстрее всё происходит. Это важно, поскольку время выполнения каждого скрипта не превышает 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 Developer Experts.