Как сделать удаление дубликатов в эксель

Обновлено: 05.07.2024

С популяризацией компьютеров за последние 10 лет — происходит и популяризация создания отчетов (документов) в программе Excel.

И в любом относительно большом документе встречаются повторяющиеся строки, особенно, если вы его собрали из несколько других таблиц. Эти дубли могут очень мешать дальнейшему редактированию таблицы, а потому их нужно либо выделить, либо вообще удалить…

Собственно, ко мне ни раз и ни два обращались с подобными вопросами, и я решил оформить работу с дубликатами в отдельную небольшую статью (которую вы сейчас читаете). Приведу самые часто-встречаемые задачи, и покажу их решение.

Примечание: все примеры ниже будут представлены в Office 2016/2019 (актуально также для Office 2013, 2010, 2007). Рекомендую всегда использовать относительно новые версии Office: в них и быстрее работать, и проще.

Если вы используете последними версиями Excel 2007, Excel 2010, Excel 2013 или Excel 2020, у вас есть преимущество, потому что эти версии содержат встроенную функцию для поиска и удаления дубликатов – функцию Удалить дубликаты.

Эта функция позволяет находить и удалять абсолютные дубликаты (ячейки или целые строки), а также частично соответствующие записи (строки, которые имеют одинаковые значения в указанном столбце или столбцах). Разберем на примере, как пошагово использовать функцию Удалить дубликаты в Excel.

Примечание. Поскольку функция Удалить дубликаты навсегда удаляет идентичные записи, рекомендуется создать копию исходных данных перед удалением повторяющихся строк.


Удалить дубликаты в Excel – Функция Удалить дубликаты в Excel


Удалить дубликаты в Excel – Выбор столбца(ов), который вы хотите проверить на наличие дубликатов

Функция Удалить дубликаты в Excel удаляет 2-ой и все последующие дубликаты экземпляров, оставляя все уникальные строки и первые экземпляры одинаковых записей. Если вы хотите удалить дубликаты строк, включая первые вхождения, т.е. если вы ходите удалить все дублирующие ячейки. Или в другом случае, если есть два или более дубликата строк, и первый из них вы хотите оставить, а все последующие дубликаты удалить, то используйте одно из следующих решений описанных в этом разделе.

Поиск и удаление

Найти и удалить значения таблицы, которые дублируются, возможно разными способами. В каждом из этих вариантов поиск и ликвидация дубликатов – это звенья одного процесса.

Способ 1: простое удаление повторяющихся строк

Проще всего удалить дубликаты – это воспользоваться специальной кнопкой на ленте, предназначенной для этих целей.




Дубликаты можно удалить из диапазона ячеек, создав умную таблицу.




Этот способ является наиболее универсальным и функциональным из всех описанных в данной статье.

Способ 3: применение сортировки

Данный способ является не совсем удалением дубликатов, так как сортировка только скрывает повторные записи в таблице.





Способ 4: условное форматирование

Найти повторяющиеся ячейки можно также при помощи условного форматирования таблицы. Правда, удалять их придется другим инструментом.

Удалить дубликаты, скопировав уникальные записи в другое место

Другой способ удалить дубликаты в Excel — это разделение уникальных значений и копирование их на другой лист или в выбранный диапазон на текущем листе. Разберем этот способ.


Удалить дубликаты в Excel – Использование дополнительного фильтра для удаления дубликатов


Удалить дубликаты в Excel – Фильтр дубликатов
Удалить дубликаты в Excel – Уникальные записи, скопированные из другого места

Таким образом вы получаете новые данные, на основе указанных, но с удаленными дубликатами.

Обратите внимание, что расширенный фильтр позволяет копировать отфильтрованные значения в другое место только на активном листе.

Выделяем цветом дубликаты в таблице

Первым способом я покажу вам, каким образом можно найти дубликаты и выделить их цветом. Это может вам потребоваться, для сравнения каких-либо данных без их удаления. В моем примере это будут одинаковые имена и фамилии людей.



Чтобы поиск был осуществлен не по всей таблице, предварительно выделите один или несколько столбцов.

Посмотрите на мой результат. Правда такой способ имеет существенный недостаток: нет выборки, выделяет все, что встречается более одного раза.


Удалить дубликаты строк в Excel с помощью формул и фильтра

Еще один способ удалить дубликаты в Excel — это определить их с помощью формулы, отфильтровать и удалить дубликаты строк.

Преимуществом этого подхода является универсальность — он позволяет найти и удалить дубликаты в столбце или дублировать строки на основе значений в нескольких столбцах. Недостатком является то, что вам нужно будет запомнить несколько повторяющихся формул.

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

Формулы для поиска дубликатов в 1 столбце

Где ячейка A2 является первой, а A10 — последней ячейкой диапазона для поиска дубликатов.

Формулы для поиска дубликатов строк

  • Дубликаты строк, кроме 1-го вхождения. То есть, если в результате есть две или более одинаковых строки, то первая из них будет отмечена, как уникальная, а все последующие как дубликаты:
  • Дубликаты строк с 1-ым вхождением. В данном случае, если в результате поиска есть две или более одинаковых строк, то все они будут отмечены как дубликаты:

Где A, B и C — столбцы, подлежащие проверке на дубликаты.

Например, так вы можете идентифицировать дубликаты строк, за исключением 1-го вхождения:


Удалить дубликаты в Excel – Формула для идентификации дубликатов строк за исключением первых случаев


Удалить дубликаты в Excel – Применение фильтра к ячейкам (Вкладка ДАННЫЕ)
Удалить дубликаты в Excel – Фильтр дубликатов строки


Еще один способ быстро удалить дубли в таблице

Этот способ удалит все одинаковые значения, которые встречаются в таблице. Если вам нужен поиск только в некоторых столбцах, то выделите их.


На этом метод закончился. Вот мой результат его работы.


Спасибо за прочтение. Не забывайте делиться с друзьями с помощью кнопок социальных сетей, и комментируйте.

Удаление повторяющихся значений

При использовании функции Удаление дубликатов

повторяющиеся данные удаляются безвозвратно. Чтобы случайно не потерять необходимые сведения, перед удалением повторяющихся данных рекомендуется скопировать исходные данные на другой лист.

Выделите диапазон ячеек с повторяющимися значениями, который нужно удалить.

Перед попыткой удаления повторений удалите все структуры и промежуточные итоги из своих данных.

На вкладке Данные

нажмите кнопку
Удалить дубликаты
и в разделе
Столбцы
установите или снимите флажки, соответствующие столбцам, в которых нужно удалить повторения.


Поэтому флажок Январь

в поле
Удаление дубликатов
нужно снять.

Формула для поиска одинаковых значений (Формулы/Formulas)

​ включить новое название​

​имеется список с​ ​Можно в условном​ А. В столбце​ по цвету шрифта,​ «Условное форматирование в​Excel practic​ выделялись и не​ ​ изменить, если у​ ​ ячейку:​ ​ шрифта и т.д.)​ ​ LBound(arr, 1) To​ ​: А я бы​ ​ и последующее транспонирование​

​ правки поста​

​ нас имеет абсолютные​​ фирмы. Ниже рассмотрим​

​3. Добавьте в исходный​

​ повторяющимися значениями, например​ форматировании установить белый​

​ B установили формулу.​

​ зависит от того,​

​: я бы сделал​ уходили от строки​ меня например данные​Имея такой столбец мы,​В более древних версиях​

​ UBound(arr, 1)​

​ макросом вкупе со​ только тех что​

​ как выделены дубли​

​Рассмотрим, как выделить​

​ IP​ ​ уже начинают идти​ фактически, сводим задачу​ Excel придется чуточку​it = Mid(arr(i,​ словарём​ имеют совпадения..​: хорошо!​

​ он должен быть​

​ форматирования.​ компании еще раз​ компаний. В некоторых​

​ шрифта. Получится так.​

​ столбце В стоит​
​ в таблице.​
​ и обозначить дубли.​например, ваши данные:​Зибин​

​ с 1 строки​

​ к предыдущему способу.​​ сложнее. Выделяем весь​​ 1), 1, 3)​
​alex77755​
​Пример:​

​Bill_Murray​ ​ неизменным. А второй​

Поиск одинаковых значений в 2х листах и присвоение (Формулы/Formulas)

​Чтобы избежать дублированных заказов,​

​ имеются повторы.​
​ а последующие повторы​
​ фамилию уже написали.​ строки с дублями.​ ​ таблица, в которой​

​ с А1:В100, вторые​

​ повтор см. в​2. Почему вы​

Как найти в диапазоне дубли ячеек, включая первый


Если мы считаем дубликатами фразы, отличающиеся количеством пробелов между словами или после — наша задача сначала избавиться от лишних пробелов, и далее — произвести тот же поиск пробелов.

Для первой операции есть отдельный макрос — удалить лишние пробелы



Как найти дубли ячеек, не учитывая лишние пробелы

Про поиск и подсветку дубликатов в разных ячейках и диапазонах я уже не раз писал, но что делать если нужно найти и, возможно, удалить повторяющиеся слова внутри ячейки? Например, мы имеем вот такую таблицу с данными (разделителями могут быть не обязательно пробелы):

Исходные данные

Хорошо видно, что некоторые имена в списках внутри ячеек повторяются. Давайте посмотрим, что можно с этим сделать.

Способ 1. Ищем повторения: текст по столбцам и формула массива

Это не самый удобный и быстрый, но зато самый простой вариант решения задачи "на коленке". Выделим исходный список и разобъем его на столбцы по пробелам с помощью команды Данные - Текст по столбцам (Data - Text to columns) . В открывшемся окне трёхшагового Мастера выберем формат По разделителю (By delimiter) на первом шаге и поставим флажок Пробел (Space) на втором:

Делим текст по пробелам

Если в исходных данных могут быть лишние пробелы, то лучше включить и опцию Считать последовательные разделители одним (Treat consecutive delimiters as one) - это избавит нас от лишних столбцов.

На третьем шаге в поле Поместить в зададим пустую ячейку рядом с таблицей, чтобы результаты не затёрли нам исходные данные и нажмём на Готово (Finish) :

Выбираем место для вывода результатов

Наши данные разделятся по ячейкам. Останется подсчитать количество повторов в каждой строке с помощью небольшой, но хитрой формулы массива:

Формула подсчета количества повторов

В английской версии это будет =SUMPRODUCT(N(COUNTIF(B2:G2,B2:G2)>1))

Давайте разберём логику её работы на примере первой строки.

  1. Сначала мы с помощью формулы СЧЁТЕСЛИ( B2:G2 ; B2:G2 ) вычисляем по очереди количество вхождений каждого имени в диапазон B2:G2 и получаем на выходе массив 2,1,2,1>, т.к. Иван встречается в первой строке 1 раз, Елена - 2 раза, Сергей - 1 и т.д.
  2. Проверяем с помощью СЧЁТЕСЛИ(B2:G2;B2:G2) >1 какие из полученных чисел больше единицы, т.е. где у нас повторы. На выходе эта формула выдаст нам массив результатов проверки в виде .
  3. Переводим логические значения ЛОЖЬ и ИСТИНА в более удобные для подсчета 0 и 1, соответственно, с помощью функции Ч. На выходе получаем массив >.
  4. Суммируем все элементы получившегося массива функцией СУММПРОИЗВ. Можно было бы использовать и обычную функцию СУММ, но тогда пришлось бы жать вместо привычного Enter сочетание клавиш Ctrl + Shift + Enter , чтобы ввести формулу как формулу массива.

По получившемуся столбцу можно легко отфильтровать строки с повторами и работать потом с ними дальше уже вручную.

Минусы такого способа, впрочем, весьма очевидны: при изменении в исходных данных придётся повторять всю процедуру заново, дубликаты не очень заметны и удалять их тоже надо врукопашную. Поэтому идём дальше.

Способ 2. Выделение цветом повторов внутри ячейки макросом

Если дубликаты нужно именно наглядно показать, то удобнее будет использовать для этого специальный макрос. Откроем редактор Visual Basic одноимённой кнопкой на вкладке Разработчик (Developer - Visual Basic) или сочетанием клавиш Alt + F11 . Вставим в книгу новый пустой модуль через меню Insert - Module и скопируем туда вот такой код:

Теперь можно вернуться в главное окно Excel, выделить ячейки с текстом и запустить созданный макрос через кнопку Макросы на вкладке Разработчик (Developer - Macros) или сочетанием клавиш Alt + F8 . Этот макрос проходит по всем выделенным ячейкам и помечает повторения красным цветом шрифта прямо внутри ячейки:

Выделение дубликатов внутри ячейки цветом

Если нужно, чтобы цветом выделялись только клоны, но не первые вхождения (т.е. только вторая и третья, но не первая Алиса, например), то достаточно будет просто убрать из кода строку 20.

Способ 3. Выводим повторы в соседний столбец

Если повторы внутри ячеек нужно не просто подсветить, а явным образом вывести, например, в соседний столбец, то удобнее будет использовать для этого макрофункцию, созданную по образу предыдущего макроса. Добавим в редакторе Visual Basic новый модуль и вставим туда код нашей функции GetDuplicates:

Эта функция, как легко догадаться, принимает в качестве единственного аргумента ячейку с текстом и выводит в качестве результата все повторы, которые там найдет:

Макрофункция для выявления повторов внутри ячейки

Способ 4. Удаление повторов внутри ячейки макросом

Если нужно просто удалить дубликаты внутри ячейки, чтобы все оставшиеся там слова не повторялись, то макрос будет похож на предыдущий, но попроще:

Способ 5. Удаление повторов внутри ячейки через Power Query

Этот способ использует бесплатную надстройку Excel для обработки данных под названием Power Query. Для Excel 2010-2013 скачать её можно с сайта Microsoft, а в Excel 2016-2019 она уже встроена по умолчанию. Огромным плюсом этого варианта является возможность автоматического обновления - если в будущем исходные данные изменятся, то нам не придется заново проделывать всю обработку (как в Способе 1) или запускать макрос (как в Способе 4) - достаточно будет просто обновить созданный запрос.

Сначала наши данные нужно загрузить в Power Query. Проще всего для этого превратить нашу таблицу в "умную" сочетанием клавиш Ctrl + T или кнопкой Форматировать как таблицу на вкладке Главная (Home - Format as Table) , а затем нажать кнопку Из таблицы/диапазона (From table/range) на вкладке Power Query (если у вас Excel 2010-2013) или на вкладке Данные (если у вас Excel 2016 или новее):

Загружаем таблицу в Power Query

Поверх окна Excel откроется окно редактора запросов Power Query с загруженными туда нашими данными:

Окно Power Query

Дальше делаем следующую цепочку действий:

Удаляем ненужный пока шаг Измененный тип (Changed Type) справа в панели применённых шагов с помощью крестика слева от шага.

Чтобы можно было потом идентифицировать принадлежность каждого имени к исходной строке - добавляем столбец с нумерацией строк на вкладке Добавление столбца - Столбец индекса - От 1 (Add Column - Index Column - From 1) :

Добавляем столбец индекса

Выделяем столбец с именами и жмём на вкладке Преобразование - Разделить столбец - По разделителю (Transform - Split Column - By delimiter) , а в открывшемся окне выбираем деление по каждому пробелу и - главное - деление на строки, а не на столбцы в расширенных параметрах:

Делим на строки по пробелу

После нажатия на ОК увидим следующее:

Разделенный текст

Теперь выделяем оба столбца (удерживая клавишу Ctrl или Shift ) и удаляем дубликаты через Главная - Удалить строки - Удалить дубликаты (Home - Remove Rows - Remove Duplicates) .

Осталось собрать всё обратно в ячейки :) Для этого выделим столбец Индекс и используем команду Группировать по на вкладке Преобразование (Transform - Group By) со следующими параметрами:

Группируем

После нажатия на ОК наши имена сгруппируются во вложенные таблицы, имитирующие начальные ячейки - только уже без повторов. Увидеть содержимое свёрнутых таблиц можно, если щёлкнуть мышью в фон ячейки рядом со словом Table (но не в слово Table!):

Свернутые в таблицы исходные имена без повторов

Осталось вытащить все имена из первой колонки каждой таблицы и склеить их через пробел. Это можно сделать с помощью небольшой формулы на встроенном в Power Query языке М. Выберем на вкладке Добавление столбца команду Настраиваемый столбец (Add Column - Custom Column) и введём в открывшееся окно имя нового столбца и формулу (с соблюдением регистра!):

Извлекаем имена и склеиваем через пробел

Развернутые списки

Осталось удалить ненужные более столбцы Индекс и Ячейки, щелкнув по их заголовкам правой кнопкой мыши и выбрав команду Удалить столбцы (Remove Columns) и выгрузить результаты на лист через Главная - Закрыть и загрузить - Закрыть и загрузить в (Home - Close & Load - Close & Load to..) :

Результаты

Задача решена! Если в будущем данные в исходной "умной" таблице изменятся или к ней будут дописаны новые строки, то достаточно будет просто обновить запрос, щёлкнув по результирующей зелёной таблице правой кнопкой мыши и выбрав команду Обновить или нажав сочетание клавиш Ctrl + Alt + F5 .

С популяризацией компьютеров за последние 10 лет — происходит и популяризация создания отчетов (документов) в программе Excel.

И в любом относительно большом документе встречаются повторяющиеся строки, особенно, если вы его собрали из несколько других таблиц. Эти дубли могут очень мешать дальнейшему редактированию таблицы, а потому их нужно либо выделить, либо вообще удалить.

Собственно, ко мне ни раз и ни два обращались с подобными вопросами, и я решил оформить работу с дубликатами в отдельную небольшую статью (которую вы сейчас читаете). Приведу самые часто-встречаемые задачи, и покажу их решение.

Примечание : все примеры ниже будут представлены в Office 2016/2019 (актуально также для Office 2013, 2010, 2007). Рекомендую всегда использовать относительно новые версии Office: в них и быстрее работать, и проще.

Простое авто-удаление дублей строк

Представим одну из самых популярных задач: есть список строк с ФИО людей, в строках много совпадений, нужно оставить только уникальные значения (кстати, это просто пример, все совпадения с реальными людьми — случайны) .

Задачка проиллюстрирована на скриншоте ниже (это пример: понятно, что 2 строки можно удалить и руками, но в реальности же строк может быть и 2000, и 20000, где "руки" будут бессильны. ).

Для списка данных с повторяющимися значениями вам может потребоваться удалить повторяющиеся и оставить в списке только уникальные значения. В этой статье показаны два метода удаления повторяющихся значений (дубликатов) из списка в Excel.

Устранение повторяющихся значений с помощью функции удаления дубликатов

Предположим, у вас есть таблица фруктов, как показано на скриншоте ниже, теперь вы хотите удалить все повторяющиеся фрукты из столбца Fruit. Пожалуйста, сделайте следующее.


1. Выделите всю таблицу, затем щелкните Данные > Удалить дубликаты. Смотрите скриншот:


2. в Удалить дубликаты В диалоговом окне выберите только столбец, на основе которого вы хотите удалить дубликаты (здесь я выбираю столбец Fruit), затем нажмите OK кнопку.


3. Затем появится окно с подсказкой, в котором сообщается, сколько дубликатов было удалено. Щелкните значок OK кнопку.


Теперь все повторяющиеся значения удаляются из указанного списка столбцов, и остаются только уникальные.

Легко устраняйте повторяющиеся значения с помощью Kutools for Excel

Вышеупомянутый метод может удалять только дубликаты, кроме первого. Если вы хотите удалить все дубликаты, включая первый, или удалить уникальные значения из списка, вы можете попробоватьВыберите повторяющиеся и уникальные ячейки полезности Kutools for Excel.

Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.

1. Выберите список с повторяющимися значениями, которые вы хотите удалить, затем щелкните Кутулс > Выберите > Выберите повторяющиеся и уникальные ячейки.


2. в Выберите повторяющиеся и уникальные ячейки диалоговом окне, если вы хотите удалить только дубликаты, кроме первого, выберите Дубликаты (кроме 1-го) вариант в Правило раздел. Проверить Выбрать целые строки поле, а затем щелкните OK кнопка. Смотрите скриншот:


Заметки:

2. Вы также можете удалить уникальные значения из выбранного списка с помощью этой утилиты по мере необходимости;

3. Затем появится диалоговое окно, в котором указано, сколько строк выбрано. Щелкните значок OK кнопка. А теперь щелкните правой кнопкой мыши любую выбранную строку, щелкните Удалить из контекстного меню, чтобы удалить строки с повторяющимися значениями.


Если вы хотите получить 30-дневную бесплатную пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.

Читайте также: