Поделиться через


Удаление дубликатов с помощью API JavaScript для Excel

В этой статье представлен пример кода, который удаляет повторяющиеся записи в диапазоне с помощью API JavaScript для Excel. Полный список свойств и методов, поддерживаемых объектом, см. в Rangeразделе Класс Excel.Range.

Удаление строк с повторяющимися записями

Метод Range.removeDuplicates удаляет строки с повторяющимися записями в указанных столбцах. Метод проходит через каждую строку в диапазоне от индекса с наименьшим значением до индекса с наибольшим значением в диапазоне (сверху вниз). Строка удаляется, если значение в ее указанном столбце или столбцах уже встречалось в диапазоне. Строки в диапазоне под удаленной строкой сдвигаются вверх. Функция removeDuplicates не влияет на положение ячеек вне диапазона.

Функция removeDuplicates использует параметр number[], представляющий индексы столбцов, которые проверяются на наличие дубликатов. Этот массив отсчитывается от нуля относительно диапазона, а не листа. Метод также принимает логический параметр, указывающий, является ли первая строка заголовком. Если trueзадано значение , верхняя строка игнорируется при рассмотрении дубликатов. Метод removeDuplicates возвращает RemoveDuplicatesResult объект , указывающий количество удаленных строк и количество уникальных оставшихся строк.

При использовании метода диапазона removeDuplicates учитывайте следующее.

  • Функция removeDuplicates рассматривает значения ячеек, а не результаты функций. Если две разные функции вычисляют одинаковый результат, значения ячеек не считаются повторяющимися.
  • Пустые ячейки не игнорируются функцией removeDuplicates. Значение пустой ячейки обрабатывается как любое другое значение. Это означает, что пустые строки, содержащиеся в диапазоне, будут включены в объект RemoveDuplicatesResult.

В следующем примере кода показано удаление записей с повторяющимися значениями в первом столбце.

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");
    let range = sheet.getRange("B2:D11");

    let deleteResult = range.removeDuplicates([0],true);
    deleteResult.load();

    await context.sync();

    console.log(deleteResult.removed + " entries with duplicate names removed.");
    console.log(deleteResult.uniqueRemaining + " entries with unique names remain in the range.");
});

Данные перед удалением повторяющихся записей

Данные в Excel до запуска метода удаления дубликатов диапазона.

Данные после удаления повторяющихся записей

Данные в Excel после выполнения метода удаления дубликатов диапазона.

См. также