Пожалуй, каждый пользователь сталкивался с проблемой удаления повторяющихся значений. К счастью, в самом редакторе Excel предусмотрены средства и инструменты, позволяющие наиболее легко разобраться с подобной неприятностью. В этой статье подробно рассмотрим самые простые и эффективные пути решения этой задачи. Итак, давайте разбираться. Поехали!

Microsoft Excel – это одна из самых популярных программ для работы с числами и таблицами

Второй подход заключается в использовании расширенного фильтра и работает как на новых версиях Microsoft Excel, так и на старых, включая 2003. Тут придётся понажимать несколько больше, однако, такой подход в разы более эффективен. Итак, сначала нужно открыть таблицу, затем перейдите во вкладку «Данные», в блоке «Сортировка и фильтр» выберите пункт «Дополнительно». Перед вами откроется окно, в котором нужно будет задать диапазон (только в том случае, если у вас есть разрывы, в противном случае ничего задавать не нужно) и поставить птичку на пункте «Только уникальные записи». Если вы хотите просто скрыть дубликаты, чтобы иметь возможность ещё поработать с ними в дальнейшем, то выберите фильтрование списка на месте, если же вы укажете «скопировать результат в другое место», то повторяющиеся элементы будут удалены. После нажатия «ОК» таблица будет отфильтрована программой в соответствии с выбранными вами параметрами. Теперь выделите цветом уникальные элементы и нажмите «Очистить». В результате вы увидите все дубликаты, так как они не будут отмечены цветом. Воспользовавшись автофильтром, можно будет получить полный перечень неуникальных значений.

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

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

Как удалить дубликаты в Excel

Ниже на рисунке изображена таблица с дублирующими значениями. Строка 3 содержит тоже значение, что и строка 6. А значение строки 4 = строке 7. Ячейки с числами в дублирующихся строках имеют одинаковые значения и разные форматы. У них отличается количество разрядов после запятой. Выполним 2 разные операции для удаления дубликатов.

Устранение дубликатов на основе значений колонки с текстом:


Строки 6 и 7 распознаны как дублирующие и удалены из таблицы. Если в пункте 2 не отключить проверку по столбцу ни одна строка не будет удалена, так как для Excel все числа в колонке «Цена» считаются разными.



Альтернативные способы удаления дубликатов

В Excel существуют и другие средства для работы с дублированными значениями. Например:



Каждый инструмент обладает своими преимуществами и недостатками. Но эффективнее всех использовать для удаления дубликатов – таблицу (как описано выше). Там весь процесс происходит поэтапно с максимальным контролем данных. Это дает возможность получить качественный результат.

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

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

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

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


Способ 2: удаление дубликатов в «умной таблице»

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


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

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

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


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

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

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


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

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

Способ 5: применение формулы

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

ЕСЛИОШИБКА(ИНДЕКС(адрес_столбца;ПОИСКПОЗ(0;СЧЁТЕСЛИ(адрес_шапки_столбца_дубликатов: адрес_шапки_столбца_дубликатов (абсолютный); адрес_столбца;)+ЕСЛИ(СЧЁТЕСЛИ(адрес_столбца;; адрес_столбца;)>1;0;1);0));"")


После этих действий в столбце «Дубликаты» отобразятся повторяющиеся значения.

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

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

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

Супербыстрый способ удаления дубликатов записей

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

Для этого достаточно:

а) отформатировать диапазон как таблицу. Выделяем диапазон, выбираем вкладу «Главная», группу «Стили», «Форматировать как таблицу» и желаемый стиль оформления таблицы, внизу команда, где можно создать свой собственный вариант

б) удалить дубликаты с помощью команды «Удалить дубликаты» в группе «Инструменты» на дополнительной вкладке «Конструктор», которая появится после преобразования диапазона в таблицу


Диалоговое окно удаления дубликатов предельно простое.


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


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

Результат проделанной работы:


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

Удаление дубликатов с помощью запросов (Power Query)

В 2016й версии Excel Power Query или создание запросов изначально входит в базовую поставку, а для версий 2013, 2010 нужно будет самостоятельно установить это бесплатную надстройку.

Первый этап удаления дубликатов с помощью Power Query такой же, как и в предыдущем способе – необходимо диапазон отформатировать как таблицу. Дальше на вкладке «Данные» в группе «Скачать и преобразовать» выбрать команду «Из таблицы». Появится окно редактора запросов, в котором, с помощью контекстного меню по заголовку столбца с нумерацией его можно удалить, а по заголовку столбца с ФИО выбрать команду «Удалить повторения», это же можно сделать и с помощью вкладки «Главная» редактора запросов.


С помощью фильтра можно скрыть пустые строки (они здесь помечены как «null») и отсортировать, при необходимости, отобранные значения, потом выбрать команду «Закрыть и загрузить/ Закрыть и загрузить в…»


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

Преимуществом способа удаления дубликатов с помощью Power Query, является не только то, что исходный диапазон остается нетронутым, но и то, что, добавляя новые записи в исходный диапазон, они будут появляться в обработанном, естественно, если эти записи уникальны. Для обновления обработанного списка, нужно вызвать контекстное меню на нем и выбрать «Обновить», либо нажать «Обновить» с ленты интерфейса.

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

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

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

Пример явно избыточной таблицы:

Теперь рассмотрим, как можно решить эту проблему. Здесь можно применить несколько методов.


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


2. Другое решение – создать запрос на выборку с группировкой данных, так чтобы получить только уникальные строки:

SELECT country_id, city_name
FROM mytable
GROUP BY country_id, city_name

Получаем следующую выборку:

Затем, полученный набор данных записываем в другую таблицу.


3. В указанных решениях применяется дополнительный программный код или дополнительные таблицы. Однако, было бы удобней сделать все, используя только запросы SQL без дополнительных таблиц. И вот пример такого решения:

DELETE a.* FROM mytable a,
(SELECT

FROM mytable b

) c
WHERE
a.country_id = c.country_id
AND a.city_name = c.city_name
AND a.id > c.mid

После выполнения такого запроса в таблице останутся только уникальные записи:

Теперь разберемся подробнее, как все это работает. При запросе на удаление, необходимо задать условие, которое укажет какие данные нужно удалить, а какие оставить. Нам необходимо удалить все не уникальные записи. Т.е. если существует несколько одинаковых записей (одинаковые они, если у них равны значения country_id и city_name), то нужно взять одну из строк, запомнить ее код и удалить все записи с такими же значениями country_id и city_name, но другим кодом (id).

Строка SQL запроса:

DELETE a.* FROM mytable a,

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

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

(SELECT
b.country_id, b.city_name, MIN(b.id) mid
FROM mytable b
GROUP BY b.country_id, b.city_name
) c

MIN(b.id) mid – формирует столбец mid (сокращение min id), в который вносятся минимальное значение id, в каждой подгруппе.

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

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

Остается только сформировать условие, где указывается: удалить нужно все строки, где совпадают поля country_id и city_name, а id совпадать не будет. В данном случае выбирается минимальное значение id, поэтому удаляются все записи, id которых больше чем выбранный во временную таблицу.


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

ALTER TABLE ` mytable` ADD `id` INT(11) NOT NULL AUTO_INCREMENT , ADD PRIMARY KEY (`id`)

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

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