Поиск повторяющихся значений (дубликатов) в одном из столбцов таблицы Excel и выделение их цветом заливки с помощью кода VBA.
Поиск дубликатов в столбце
Чаще всего повторяющиеся значения ищут в первом столбце таблицы, поэтому процедуру поиска дубликатов в VBA Excel рассмотрим именно на нем:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Sub DuplicateSearch() Dim ps As Long, myRange As Range, i1 As Long, i2 As Long ‘Определяем номер последней строки таблицы ps = Cells(1, 1).CurrentRegion.Rows.Count ‘Нет смысла искать дубликаты в таблице, состоящей из одной строки If ps > 1 Then ‘Присваиваем объектной переменной ссылку на исследуемый столбец Set myRange = Range(Cells(1, 1), Cells(ps, 1)) With myRange ‘Очищаем ячейки столбца от предыдущих закрашиваний .Interior.Color = xlNone For i1 = 1 To ps — 1 For i2 = i1 + 1 To ps If .Cells(i1) = .Cells(i2) Then ‘Если значения сравниваемых ячеек совпадают, ‘обеим присваиваем новый цвет заливки .Cells(i1).Interior.Color = 6740479 .Cells(i2).Interior.Color = 6740479 End If Next Next End With End If End Sub |
После ручного исправления или удаления повторяющихся значений, запускаем процедуру DuplicateSearch вновь, чтобы очистить от заливки ячейки столбца с уникальными значениями и заново выделить оставшиеся дубликаты.
Чтобы найти повторы в другом столбце, замените номер столбца в параметрах свойства Cells (в трех местах процедуры DuplicateSearch).
Константы для заливки
Для указания цвета заливки для ячеек с повторяющимися значениями вместо числового значения цвета можно использовать предопределенные константы:
Предопределенная константа | Наименование цвета |
---|---|
vbBlack | Черный |
vbBlue | Голубой |
vbCyan | Бирюзовый |
vbGreen | Зеленый |
vbMagenta | Пурпурный |
vbRed | Красный |
vbWhite | Белый |
vbYellow | Желтый |
mtts54 Пользователь Сообщений: 164 |
Добрый день, уважаемые форумчане! В поиске есть аналогичные темы, но подходящего мне я не нашел. Суть проблемы: есть табличка ~200 тыс. строк на 60 столбцов. В столбце G — некий идентификатор id, он может быть уникальным, а может повторяться. Буду благодарен за помощь с помощью VBA найти и вырезать из данной таблицы строки с повторяющимися id и перенести их на другой лист. Excel непознаваем как атом. |
Возможно я не правильно понял задачу…. Но самый простой вариант |
|
Если нужен именно макрос, то делаем все тоже самое через макрорекодер (за исключением выделения ячеек отфильтрованных, для копирования). https://www.planetaexcel.ru/forum/?PAGE_NAME=read&FID=1&TID=47173 |
|
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
mtts54, здравствуйте! Изменено: Jack Famous — 15.08.2018 11:14:43 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
TheBestOfTheBest Пользователь Сообщений: 2366 Excel 2010 +PLEX +SaveToDB +PowerQuery |
С помощью доп.столбца. Файл положить в папку С:1, на таблице ПКМ-обновить. Неизлечимых болезней нет, есть неизлечимые люди. |
mtts54 Пользователь Сообщений: 164 |
Михаил Комиссаров
, автофильтр «видит» только 10 тыс. строк, поэтому этот прием не годится. Jack Famous , конечный результат в файле-примере таков: на Листе1 строк с подсвеченными id не должно быть — они должны появиться на другом, вставленном листе. В реальном файле из-за большого количества строк УФ неприменимо. Excel непознаваем как атом. |
mtts54 Пользователь Сообщений: 164 |
TheBestOfTheBest
, не совсем то, что необходимо: в Вашем решении одна из повторяющихся строк остается на исходном листе. Мне же нужно ВСЕ строки с повторяющимися id вырезать с исходного листа и вставить на другой лист. Честно говоря, я не понял, каким приемом Вы решили задачу. Спасибо за ответ. Excel непознаваем как атом. |
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#8 15.08.2018 13:19:11 mtts54, пробуйте
UPD (15:05): 14я строка кода Set rng = Cells(1, col).Resize(r+ 1, 1) исправлена на Set rng = Cells(2, col).Resize(r, 1). Файл заменён. Прикрепленные файлы
Изменено: Jack Famous — 15.08.2018 15:07:53 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
|
Ігор Гончаренко Пользователь Сообщений: 13746 |
#9 15.08.2018 14:30:52 выполните этот макрос
при активном листе с данными Изменено: Ігор Гончаренко — 15.08.2018 14:34:29 Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
||
TheBestOfTheBest Пользователь Сообщений: 2366 Excel 2010 +PLEX +SaveToDB +PowerQuery |
#10 15.08.2018 14:39:42
Внешний запрос (Данные-Получение внешних данных…). Измените формулу в столбце Ключ =СЧЁТЕСЛИ($G$2:$G$348;G2), обновите таблицы как указано выше. Изменено: TheBestOfTheBest — 15.08.2018 14:40:31 Неизлечимых болезней нет, есть неизлечимые люди. |
||
кузя1972 Пользователь Сообщений: 189 |
#11 15.08.2018 16:37:15 вариант макроса(не нашел как надо в исходном файл -примере),кнопки unic и очистка,лист1 добавлен вручную
Прикрепленные файлы
Изменено: кузя1972 — 15.08.2018 16:37:30 |
||
mtts54 Пользователь Сообщений: 164 |
Коллеги, спасибо за ответы. Сегодня тестировать некогда (комп занят расчетами), отпишусь завтра. Excel непознаваем как атом. |
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
mtts54, мы ждём (ну я точно жду фидбэк) Изменено: Jack Famous — 16.08.2018 10:15:51 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
Nordheim Пользователь Сообщений: 3154 |
#14 16.08.2018 10:51:18 Вариант на массивах и словарях
«Все гениальное просто, а все простое гениально!!!» |
|
mtts54 Пользователь Сообщений: 164 |
Добрый день! Протестировал макрос от Ігор Гончаренко на реальном файле размером 31 колонка на 153 тыс.строк. В макросе в выражениях Offset(0, 9) заменил 9 на 25 и в Columns(16) заменил 16 на 32. Макрос работал ок. 10 минут, нашел все 7696 повторов. Хотелось бы побыстрее, но… размер имеет значение. Спасибо! Остальные решения протестирую завтра. Excel непознаваем как атом. |
mtts54 Пользователь Сообщений: 164 |
Попробовал на том же реальном файле макрос от Jack Famous . К сожалению, макрос где-то зациклился и после 20 минут ожидания я был вынужден остановить его выполнение Excel непознаваем как атом. |
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#17 17.08.2018 11:45:00 mtts54, немного изменил принцип удаления строк из исходника — пробуйте
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
|
mtts54 Пользователь Сообщений: 164 |
На том же реальном файле макрос Nordheim за 2 секунды нашел все повторы, вставил лист и скопировал повторы туда (правда, пару раз VBA ругнулся: не была объявлена переменная sht1 — это я поправил). Но с исходного листа макрос повторы не удалил . Тут я ничего поделать не смог . Очень надеюсь, что уважаемый Nordheim прочтет этот пост и подправит код Excel непознаваем как атом. |
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
mtts54, вы бы выложили ссылку на файл реального объёма, но без конфиденциальных данных — тестить проще было бы Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
Nordheim Пользователь Сообщений: 3154 |
#20 17.08.2018 12:27:31 В данном коде есть нюанс, таблица должна начинаться со второй строки, шапка таблицы на первой
«Все гениальное просто, а все простое гениально!!!» |
||
Kuzmich Пользователь Сообщений: 7998 |
#21 17.08.2018 12:36:19 Nordheim,
при формировании листа Дубли я бы добавил первой строку
Изменено: Kuzmich — 17.08.2018 12:48:30 |
||||
mtts54 Пользователь Сообщений: 164 |
Excel непознаваем как атом. |
kryptonets Пользователь Сообщений: 5 |
Я вижу,что нужен макрос. Но предложу другое решение. Надстройка PowerQuery. Выделить таблицу Ctrl+T, с заголовками.PowerQuery—>Из таблицы,диапазона.Главная—>Сохранять строки—>Сохранять дубликаты.Выгрузить.Готово) |
Nordheim Пользователь Сообщений: 3154 |
#24 17.08.2018 13:03:43
sht1 в файле это название листа в VBAProject, поэтому лист не объявлен, на кириллице неудобно было писать, поэтому переименовал по ходу написания кода «Все гениальное просто, а все простое гениально!!!» |
||
Nordheim Пользователь Сообщений: 3154 |
#25 17.08.2018 13:05:09
С какой целью? «Все гениальное просто, а все простое гениально!!!» |
||
mtts54 Пользователь Сообщений: 164 |
Nordheim
, макрос (с учетом от Kuzmich ) отработал немного дольше (это абсолютно не критично), повторы с исходного листа удалил. Спасибо! kryptonets , нужен именно макрос, т.к. таблица обрабатывается макросом (моим) и прерывать его для ручной работы неудобно. Тем не менее попробую Вашу идею — лишних знаний ведь не бывает, когда-нибудь пригодится. Спасибо. Excel непознаваем как атом. |
Kuzmich Пользователь Сообщений: 7998 |
#27 17.08.2018 13:17:04 Nordheim, написал
Просто на листе Дубли в столбце К появляются ячейки с янв.92 вместо 1-92 Изменено: Kuzmich — 17.08.2018 13:17:18 |
||
Nordheim Пользователь Сообщений: 3154 |
#28 17.08.2018 13:18:40
А строка зачем? «Все гениальное просто, а все простое гениально!!!» |
||
Kuzmich Пользователь Сообщений: 7998 |
#29 17.08.2018 13:22:51 Я имел в виду этот кусок макроса
Чтобы не было преобразования в дату |
||
Nordheim Пользователь Сообщений: 3154 |
#30 17.08.2018 13:23:27 Наверно так более правильно.
Изменено: Nordheim — 17.08.2018 13:25:52 «Все гениальное просто, а все простое гениально!!!» |
||
Доброго времени суток, уважаемые форумчане!
Не могли бы вы подсказать, направить меня в нужном направлении.
Имеется таблица, с данным, в ячейках A1-An хранятся разные имена, некоторые из них повторяются. Подскажите пожалуйста, каким образом можно организовать подсчет каждого повторяющегося имени в таблице?
Тоесть сколько раз повторилось каждое имя.
Заранее спасибо за ответ.
8 ответов
13K
12 января 2007 года
Ser Artur
5 / / 06.10.2005
=COUNTIF(A1:A6,»Artur»)
405
12 января 2007 года
Dmitrii
554 / / 16.12.2004
Имеется таблица, с данным, в ячейках A1-An хранятся разные имена, некоторые из них повторяются. Подскажите пожалуйста, каким образом можно организовать подсчет каждого повторяющегося имени в таблице?
Тоесть сколько раз повторилось каждое имя.
Если инструментом решения должен служить макрос, а не функции рабочего листа, то алгоритм может быть таким:
— заводим массив для регистрации уникальных вариантов имён и массив счётчиков для них;
— организуем цикл по заданному диапазону ячеек для перебора всех значений;
— для каждого значения выполняем проверку наличия его в массиве уникальных имён (опять же в цикле); если проверяемое имя уже встречается в массиве, то увеличиваем значение соответствующего счётчика, если — не встречается, то добавляем его в массив и создаём очередной счётчик;
— нужным образом организуем вывод результатов (в окно сообщений, в файл, на лист и т.п.).
Если задача не учебная, то рекомендую использовать возможности объекта Dictionary из состава WSH. Вот пример:
Код:
Sub Example()
Dim dictNames As Object, arrKeys
Dim curCell As Range, curName As String
Set dictNames = CreateObject(«Scripting.Dictionary»)
dictNames.CompareMode = 1
For Each curCell In Range(«a1:a6»)
curName = curCell.Value
If dictNames.Exists(curName) Then
dictNames.Item(curName) = dictNames.Item(curName) + 1
Else
dictNames.Add curName, 1
End If
Next curCell
arrKeys = dictNames.Keys
For i = 0 To dictNames.Count — 1
MsgBox arrKeys(i) & «: » & dictNames.Item(arrKeys(i))
Next
End Sub
267
12 января 2007 года
Cutty Sark
1.2K / / 17.10.2002
Доброго времени суток, уважаемые форумчане!
Не могли бы вы подсказать, направить меня в нужном направлении.
Имеется таблица, с данным, в ячейках A1-An хранятся разные имена, некоторые из них повторяются. Подскажите пожалуйста, каким образом можно организовать подсчет каждого повторяющегося имени в таблице?
Тоесть сколько раз повторилось каждое имя.
Заранее спасибо за ответ.
Прекрасным средством для этого (и для много другого) является Сводная таблица (Pivot Table). Объяснения нужны?
2.1K
12 января 2007 года
Ariman
102 / / 20.10.2005
Pivot Table
Можно по подробней в общих чертах, если вас не затруднит?
По-поводу WSH, насколько я понимаю, это не ходит в состав Excel, все нужно реализовать в макросе.
Вопрос по-поводу алгоритма поиска имени. Вначале считваем первую ячейку, потом проверяем вторую, если не идентично, то пишем в массив второе имя, не пойму каким образом реализовать вот этот сам алгоритм сравнения всех данных.
267
13 января 2007 года
Cutty Sark
1.2K / / 17.10.2002
Так тебе обязательно это делать макросом? Макрос-то здесь необязателен. Можно с ним, можно без него…
И ещё скажи, какая у тебя версия Экселя, я имею в виду год и язык, чтобы мне не дублировать объяснения.
2.1K
13 января 2007 года
Ariman
102 / / 20.10.2005
Нужно макросом… 2003 офис, англ.вер
Объясните плз как на коде будет выглядеть, а то я никак не могу понять этот алгоритм.
405
16 января 2007 года
Dmitrii
554 / / 16.12.2004
Объясните плз как на коде будет выглядеть, а то я никак не могу понять этот алгоритм.
Вот один из вариантов:
Код:
Sub Example()
Dim curCell As Range
Dim arrNames() As String, arrNumNames() As Long
Dim resFind As Boolean
Dim curName As String
ReDim arrNames(1 To 1)
ReDim arrNumNames(1 To 1)
arrNames(1) = Range(«a1»).Value
arrNumNames(1) = 1
For Each curCell In Range(«a2:a6»)
curName = curCell.Value
i = LBound(arrNames)
Do
If StrComp(curName, arrNames(i), vbTextCompare) = 0 Then
arrNumNames(i) = arrNumNames(i) + 1
resFind = True
Else
i = i + 1
End If
Loop While resFind = False And i <= UBound(arrNames)
If resFind = False Then
ReDim Preserve arrNames(1 To i)
ReDim Preserve arrNumNames(1 To i)
arrNames(i) = curName
arrNumNames(i) = 1
Else
resFind = False
End If
Next curCell
For i = LBound(arrNames) To UBound(arrNames)
MsgBox arrNames(i) & «: » & arrNumNames(i)
Next i
End Sub
2.1K
17 января 2007 года
Ariman
102 / / 20.10.2005
Спасибо громное,щас будем пробовать.
Содержание
- Поиск дублей в Excel
- Как макрос работает
- Код макроса
- Как этот код работает
- Как использовать
- VBA:поиск одинаковых данных в ячеках
- 8 ответов
- VBA Excel. Удаление повторяющихся значений в диапазоне ячеек
- Метод Range.RemoveDuplicates
- Синтаксис метода Range.RemoveDuplicates
- Параметры метода Range.RemoveDuplicates
- Примеры удаления дубликатов
- Vba excel поиск повторяющихся значений
- Vba excel поиск повторяющихся значений
- Поиск, выделение, фильтрация, подсчет, удаление дубликатов в Excel
- 2.1 Фильтрация дубликатов с условным форматированием
Поиск дублей в Excel
Что делает макрос: Всегда хотел выделить значения дубликатов в диапазоне. Макрос в этом разделе делает именно это. Есть много ручных способов найти и выделить дубликаты — способы, включающие формулы, условное форматирование, сортировку и т.д. Тем не менее, все эти методы требуют ручной настройки и определенного уровня обслуживания по мере изменения данных.
Этот макрос упрощает задачу, что позволяет найти и выделить дубликаты в ваших данных с помощью щелчка мыши.
Как макрос работает
Этот макрос перечисляет ячейки в целевом диапазоне, используя оператор For Each, чтобы активировать каждую ячейку по одной за раз. Затем мы используем функцию СЧЕТЕСЛИ, чтобы подсчитать, сколько раз значение в активной ячейке находится в выбранном
диапазоне. Если это число больше единицы, то формат ячейки — желтого цвета.
Код макроса
Как этот код работает
- На шаге 1 объявляются две переменные объекта Range, одна из которых называется MyRange для хранения всей цели диапазона, а другая называется MyCell для хранения каждой ячейки в диапазоне.
- Шаг 2 заполняет переменную MyRange целевым диапазоном. В этом примере мы используем выбранный диапазон — диапазон, который был выбран в электронной таблице. Вы можете легко установить переменную MyRange для определенного диапазона, например Range («A1: Z100»). Кроме того, если ваша цель — именованный диапазон, вы можете просто ввести его имя: Range («MyNamedRange»).
- Шаг 3 макрос начинает проходить по каждой ячейке в целевом диапазоне, активируя каждую ячейку.
- Объект WorksheetFunction позволяет нам запускать многие из Excel функции электронных таблиц в VBA. Шаг 4 использует объект WorksheetFunction для запуска Функция СЧЕТЕСЛИ в VBA.
В этом случае мы рассчитываем, сколько раз значение активной ячейки (MyCell.Value) найдено в заданном диапазоне (MyRange). Если выражение СЧЕТЕСЛИ оценивается больше 1, макрос изменяет цвет ячейки. - Шаг 5 возвращается к следующей ячейке. После активации всех ячеек в целевом диапазоне макрос заканчивается.
Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
- Активируйте редактор Visual Basic, нажав ALT + F11.
- Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
- Выберите Insert➜Module.
- Введите или вставьте код.
Источник
VBA:поиск одинаковых данных в ячеках
Доброго времени суток, уважаемые форумчане!
Не могли бы вы подсказать, направить меня в нужном направлении.
Имеется таблица, с данным, в ячейках A1-An хранятся разные имена, некоторые из них повторяются. Подскажите пожалуйста, каким образом можно организовать подсчет каждого повторяющегося имени в таблице?
Тоесть сколько раз повторилось каждое имя.
Заранее спасибо за ответ.
8 ответов
Если инструментом решения должен служить макрос, а не функции рабочего листа, то алгоритм может быть таким:
— заводим массив для регистрации уникальных вариантов имён и массив счётчиков для них;
— организуем цикл по заданному диапазону ячеек для перебора всех значений;
— для каждого значения выполняем проверку наличия его в массиве уникальных имён (опять же в цикле); если проверяемое имя уже встречается в массиве, то увеличиваем значение соответствующего счётчика, если — не встречается, то добавляем его в массив и создаём очередной счётчик;
— нужным образом организуем вывод результатов (в окно сообщений, в файл, на лист и т.п.).
Если задача не учебная, то рекомендую использовать возможности объекта Dictionary из состава WSH. Вот пример:
Источник
VBA Excel. Удаление повторяющихся значений в диапазоне ячеек
Удаление повторяющихся значений (дубликатов) в диапазоне ячеек с помощью кода VBA Excel. Метод Range.RemoveDuplicates — синтаксис, параметры, примеры.
Метод Range.RemoveDuplicates
Метод Range.RemoveDuplicates предназначен в VBA Excel для удаления повторяющихся значений по столбцам в заданном диапазоне ячеек рабочего листа. Строки с обнаруженными дубликатами удаляются целиком.
Синтаксис метода Range.RemoveDuplicates
expression. RemoveDuplicates (Columns , Header) ,
где expression — переменная или выражение, возвращающее объект Range.
Параметры метода Range.RemoveDuplicates
Наименование | Описание |
---|---|
Columns | Массив индексов столбцов, содержащих ячейки с повторяющимися значениями. Обязательный параметр. Тип данных – Variant. |
Header | Указывает, содержит ли первая строка диапазона заголовок, который не участвует в поиске дубликатов:
|
Необязательный параметр. Тип данных – XlYesNoGuess.
Метод работает как с круглыми скобками, в которые заключены параметры, так и без них. Если требуется указать несколько столбцов в параметре Columns, следует использовать функцию Array, например, Array(2, 3).
Примеры удаления дубликатов
Исходная таблица для всех примеров
По третьей колонке легко определить, какие строки были удалены.
Пример 1
Удаление повторяющихся значений по первому столбцу:
Range(«A1:C10»).RemoveDuplicates 1
Range(Cells(1, 1), Cells(10, 3)).RemoveDuplicates (1)
Второй вариант позволяет использовать вместо индексов строк и столбцов переменные. Наличие или отсутствие скобок, в которые заключен параметр Columns, на работу метода не влияет.
Пример 2
Удаление дубликатов по первому столбцу с указанием, что первая строка содержит заголовок:
Range(«A1:C10»).RemoveDuplicates 1, xlYes
Здесь мы видим, что первая строка не учитывалась при поиске повторяющихся значений.
Пример 3
Удаление дубликатов по первому и второму столбцам:
Range(«A1:C10»).RemoveDuplicates Array(1, 2)
Обратите внимание, что при удалении повторяющихся значений по нескольким столбцам, будут удалены дубли только тех строк, в которых во всех указанных столбцах содержатся одинаковые значения. В третьем примере удалены «лишние» строки с дублями значений по двум первым столбцам: Корова+Лягушка, Свинья+Бурундук и Овца+Собака.
Смотрите, как отобрать уникальные значения из списка в VBA Excel с помощью объекта Collection и объекта Dictionary.
Источник
Vba excel поиск повторяющихся значений
появилась необходимость поиска повторяющихся улиц с номерами домов в таблице эксель с помощью макроса
Итак есть столбец «улица», рядом столбец «дом». Есть еще другие Столбцы в которых есть информация.
Если есть 2 записи в которых улица и номер дома идентичны, то подсветить красным цветом чтобы менеджер мог удалить лишнюю запись.
Так как дубликатов быть не должно.
Таблица состоит из 20 000! записей(строк)
Как можно было бы организовать алгоритм обхода так, чтобы это работало максимально производительно(быстро)
Прикрепите к сообщению пример файла (можно не весь, но столбцы с улицами и домами должны присутствовать)
А 20 000 строк — это не так уж и много.
Или у Вас комп очень медленный?
комп вроде нормальный: два ядра по три гигагерца.
база во вложении
а также моя версия макроса))
Вложения
условие if cell.Interior.ColorIndex <> 3 then тело второго цикла.
В этом случае будут пропускаться ячейки окашенные в красный цвет.
А насколько повыситься быстродействие суди сам
думаю что проверка цвета почти ничего не даст..
вот щас подумал функцию getTrimCell2 надо переписать.
зачем каждый раз делать конкатенацию
Trim(Range(adr).Value) & Trim(Range(adr).Offset(0, 1).Value)
надо просто отдельно сравнивать парами
street1 = street2 and number1 = number2
только вот в процессе реализации возникает сообщение такое
«недостаточно системных ресурсов для отображения диалогового окна»
и как его вылечить ?
у меня офис 2007 rus крякнутый
подсветить красным цветом чтобы менеджер мог удалить лишнюю запись
думаю что проверка цвета почти ничего не даст..
вот щас подумал функцию getTrimCell2 надо переписать.
зачем каждый раз делать конкатенацию
Trim(Range(adr).Value) & Trim(Range(adr).Offset(0, 1).Value)
надо просто отдельно сравнивать парами
street1 = street2 and number1 = number2
При проверке цвета лишний раз не будет срабатывать второй цикл (повторного поиска одинаковых значений). Если цвет будет совпадать с красным незачем повторно искать эти же значения. Поиск уже осуществлен.
И подумай вот о чем, если первое из повторенных значений находиться ну скажем в первой сотни — цикл будет крутиться более 19900 что займет достаточно времени. Чем не сокращение времени поиска повторений
Я бы ввел дополнительное поле уже проверенных знаечний в какой нибудь из скрытых ячеек. Тогда первый цикл будет идти долго а вот поиск новых значений гораздо меньше. Надо будет найти совпадение вновь введенных занчений уже с отработанными. а это существенно меньше чем выполнять весь цикл
Такие темы встречались уже множество раз.
Немного переделал макрос из этой темы.
Вот что получилось. (см. вложение)
Как можно было бы организовать алгоритм обхода так, чтобы это работало максимально производительно(быстро)
Мой макрос обрабатывает данные далеко не самым эффективным образом (перебором строк).
Но формирование выборки уникальных адресов происходит за несколько секунд (создаётся новый лист с выборкой).
При желании можно уменьшить время обработки до 1 секунды (если сразу считывать все адреса в массив, обрабатывать массив, а потом записывать массив на новый лист)
Можно удалять также пустые и полупустые строки (если Вы сформулируете требования к удаляемым строкам)
Источник
Vba excel поиск повторяющихся значений
- 1. Найдите и выделите дубликаты
- 1.1 Найдите дубликаты с формулой
- 1.1.1 Повторяющиеся ячейки в одном столбце
- 1.1.2 Повторяющиеся ячейки в двух столбцах
- 1.1.3 Повторяющиеся ячейки с учетом регистра
- 1.2 Выделение дубликатов условным форматированием
- 1.2.1 Повторяющиеся ячейки
- 1.2.2 Строки на основе повторяющихся ячеек
- 1.2.3 Повторяющиеся строки
- 1.2.4 Повторяющиеся ячейки, кроме 1-го экземпляра
- 1.3 Выделите дубликаты разными цветами
- 1.4 Выделите дубликаты сторонними надстройками
- 1.4.1 Повторяющиеся ячейки в одном столбце
- 1.4.2 Дублирование ячеек в двух столбцах / листах
- 1.1 Найдите дубликаты с формулой
- 2. Отфильтровать дубликаты
- 2.1 По условному форматированию
- 2.2 Вспомогательной колонкой
- 3. Подсчитайте дубликаты
- 3.1 Подсчитайте повторяющиеся значения с критериями
- 3.1.1 Дубликаты с учетом регистра с критериями
- 3.1.2 Дубликаты с несколькими критериями
- 3.2 Подсчитайте общее количество дубликатов в одном столбце
- 3.2.1 Исключение 1-го вхождения
- 3.2.2 Включая 1-е вхождение
- 3.3 Считайте дубликаты в двух столбцах
- 3.3.1 По формуле
- 3.3.2 Сторонней надстройкой
- 3.4 Считайте дубликаты только один раз
- 3.4.1 Подсчитайте каждое повторяющееся значение один раз
- 3.4.2 Один раз подсчитать повторяющееся значение с учетом регистра
- 3.4.3 Подсчитайте каждое повторяющееся значение один раз с помощью удивительных инструментов
- 3.5 Подсчитайте каждое повторяющееся значение в одном столбце
- 3.5.1 По функции ПРОМЕЖУТОЧНЫЙ ИТОГ
- 3.5.2 По сводной таблице
- 3.5.3 Замечательным инструментом
- 3.6 Считайте дубликаты по порядку
- 3.1 Подсчитайте повторяющиеся значения с критериями
- 4. Удалить дубликаты
- 4.1 Удалить дубликаты, кроме одного в столбце
- 4.1.1 Функция удаления дубликатов
- 4.1.2 Функция расширенного фильтра
- 4.1.3 По VBA
- 4.2 Удалить дубликаты и оригинал
- 4.2.1 По условному форматированию
- 4.2.2 По вспомогательной колонке
- 4.2.3 Замечательным инструментом
- 4.3 Удалить строки на основе дубликатов
- 4.4 Удалить дубликаты в двух столбцах
- 4.4.1 По вспомогательной колонке
- 4.4.2 Замечательным инструментом
- 4.1 Удалить дубликаты, кроме одного в столбце
Поиск, выделение, фильтрация, подсчет, удаление дубликатов в Excel
В Excel повторяющиеся данные возникают время от времени, когда мы записываем данные вручную, копируем данные из других источников или по другим причинам. Иногда дубликаты необходимы и полезны. Однако иногда повторяющиеся значения приводят к ошибкам или недопониманию. В этой статье будут представлены методы быстрого выявления, выделения, фильтрации, подсчета, удаления дубликатов по формулам, правилам условного форматирования, сторонним надстройкам и т. Д. В Excel.
- 1. Найдите и выделите дубликаты
- 1.1 Найдите дубликаты с формулой
- 1.1.1 Найдите повторяющиеся ячейки в одном столбце с помощью формулы
- 1.1.2 Найдите повторяющиеся ячейки в двух столбцах с помощью формулы
- 1.1.3 Поиск повторяющихся ячеек с учетом регистра с помощью формулы
- 1.2 Находите и выделяйте дубликаты с условным форматированием
- 1.2.1 Поиск и выделение повторяющихся ячеек с условным форматированием
- 1.2.2 Поиск и выделение строк на основе повторяющихся ячеек
- 1.2.3 Найдите и выделите повторяющиеся строки с условным форматированием
- 1.2.4 Найдите и выделите дубликаты, кроме первых экземпляров
- 1.3 Находите и выделяйте дубликаты разными цветами
- 1.4 Находите и выделяйте дубликаты с помощью сторонней надстройки
- 1.4.1 Найдите и выделите повторяющиеся ячейки в одном столбце
- 1.4.2 Найдите и выделите повторяющиеся ячейки в двух столбцах или листах
- 1.1 Найдите дубликаты с формулой
- 2. Отфильтровать дубликаты
- 2.1 Отфильтровать дубликаты с условным форматированием
- 2.2 Отфильтруйте дубликаты с помощью вспомогательного столбца
- 3. Подсчитайте дубликаты
- 3.1 Подсчитайте повторяющиеся значения с критериями
- 3.1.1 Подсчет дубликатов с учетом регистра с помощью критериев
- 3.1.2 Подсчет дубликатов по нескольким критериям
- 3.2 Подсчитайте общее количество дубликатов в одном столбце
- 3.2.1 Подсчет дубликатов в столбце, исключая первое вхождение
- 3.2.2 Подсчет дубликатов в столбце, включая первое вхождение
- 3.2.3 Подсчет дубликатов в столбце, включая / исключая первые вхождения
- 3.3 Считайте дубликаты в двух столбцах
- 3.3.1 Подсчет дубликатов между двумя столбцами с помощью формулы
- 3.3.2 Подсчет дубликатов между двумя столбцами с помощью сторонней надстройки
- 3.4 Считайте дубликаты только один раз
- 3.4.1 Подсчитайте каждое повторяющееся значение один раз с помощью формулы
- 3.4.2 Один раз подсчитать повторяющееся значение с учетом регистра с помощью формулы массива
- 3.4.3 Подсчитайте каждое повторяющееся значение один раз с помощью сторонней надстройки
- 3.5 Подсчитайте каждое повторяющееся значение в одном столбце
- 3.5.1 Подсчитайте каждое повторяющееся значение в одном столбце с помощью функции ПРОМЕЖУТОЧНЫЙ ИТОГ
- 3.5.2 Подсчитайте каждое повторяющееся значение в одном столбце с помощью сводной таблицы
- 3.5.3 Подсчитайте каждое повторяющееся значение в одном столбце с помощью замечательного инструмента
- 3.6 Считайте дубликаты по порядку
- 3.1 Подсчитайте повторяющиеся значения с критериями
- 4. Удалить дубликаты
- 4.1 Удалить дубликаты, кроме одного в столбце
- 4.1.1 Удаление дубликатов, кроме одного, с функцией удаления дубликатов
- 4.1.2 Удаление дубликатов, кроме одного с функцией расширенного фильтра
- 4.1.3 Удалить дубликаты, кроме одного, с VBA
- 4.2 Удалить дубликаты и оригинал
- 4.2.1 Удаление всех дубликатов и исходных значений с помощью условного форматирования
- 4.2.2 Удалите все дубликаты и исходные значения с помощью вспомогательного столбца
- 4.2.3 Удалите все дубликаты и исходные значения с помощью замечательного инструмента
- 4.3 Удалить строки на основе дубликатов в одном столбце
- 4.4 Удалить дубликаты в двух столбцах
- 4.4.1 Удалить дубликаты в двух столбцах с помощью вспомогательного столбца
- 4.4.2 Удалите дубликаты в двух столбцах с помощью замечательного инструмента
- 4.1 Удалить дубликаты, кроме одного в столбце
При обнаружении повторяющихся значений в столбце или диапазоне вы, вероятно, захотите быстро найти дубликаты. В этой части рассказывается о том, как быстро найти или идентифицировать повторяющиеся данные в столбцах, а также выделить повторяющиеся ячейки, строки или выделить строки на основе дубликатов в определенном столбце в Excel.
В этом разделе представлены некоторые формулы для быстрого поиска или идентификации повторяющихся значений в одном или двух столбцах.
1.1.1 Найдите повторяющиеся ячейки в одном столбце с помощью формулы
При нахождении повторяющихся ячеек только в одном столбце или списке мы можем применить COUNTIF функция, позволяющая быстро находить и легко подсчитывать повторяющиеся данные.
1. Выберите пустую ячейку рядом с столбцом, в котором вы найдете дубликаты.
2. Введите формулу = СЧЁТЕСЛИ ($ C $ 3: $ C $ 12; C3)> 1, и нажмите Enter .
3. Перетащите маркер автозаполнения ячейки формулы, чтобы скопировать эту формулу в другие ячейки.
Ноты: В формуле = СЧЁТЕСЛИ ($ C $ 3: $ C $ 12, C3)> 1,
(1) 3 канадских доллара: 12 канадских долларов — это столбец или список, в котором вы найдете повторяющиеся значения. Поскольку столбец статичен, когда мы копируем формулу в другие ячейки, обычно это абсолютная ссылка со знаком «$».
(2) C3 — первая ячейка указанного столбца. Это относительная ссылка, потому что нам нужно, чтобы она изменялась автоматически, когда мы копируем формулу в другие ячейки.
(3) Эта формула вернет ИСТИНА or ФАЛАЗА. ИСТИНА означает, что соответствующее значение дублируется, а НЕПРАВДА указывает, что соответствующее значение уникально в столбце.
(4) Иногда ИСТИНА или ЛОЖЬ не могут быть поняты интуитивно. Мы можем объединить исходную формулу и функцию ЕСЛИ, чтобы вернуть Дубликаты непосредственно.
= ЕСЛИ (СЧЁТЕСЛИ ($ C $ 3: $ C $ 12; C3)> 1, «Дубликаты», «»)
1.1.2 Найдите повторяющиеся ячейки в двух столбцах с помощью формулы
В некоторых случаях вам нужно сравнить два столбца и найти повторяющиеся значения. Например, у вас есть два списка имен, и вы хотите найти повторяющиеся имена во втором списке по сравнению с первым. вы можете применить функции ВПР и ЕСЛИОШИБКА, чтобы сделать это легко.
1. Выберите пустую ячейку помимо второго списка имен.
2. Введите формулу = ЕСЛИОШИБКА (ВПР (D3; $ B $ 3: $ B $ 18,1,0); «»), и нажмите Enter .
3. Перетащите маркер автозаполнения ячейки формулы, чтобы скопировать формулу в другие ячейки по мере необходимости.
Ноты: В приведенной выше формуле
(1) D3 — первая ячейка во втором списке имен. Ссылка должна изменяться автоматически, когда мы копируем формулу в другие ячейки, в результате она относительна.
(2) 3 млрд долларов: 18 млрд долларов это первый список имен. Это абсолютная ссылка, потому что диапазон должен оставаться статическим, когда мы копируем формулу в другие ячейки.
(3) Когда имя дублируется с именами в первом списке, формула вернет имя; в противном случае возвращается пустое значение.
(4) Вы также можете применить формулу = ЕСЛИ (СЧЁТЕСЛИ ($ B $ 3: $ B $ 18; D3)> 0, «Дубликаты», «») найти повторяющиеся имена во втором списке по сравнению с первым списком. Эта формула вернет «Дубликаты» если соответствующее имя повторяется.
(5) Если вам нужно найти дубликаты в двух столбцах на двух листах, вам просто нужно добавить имя листа перед ссылкой на сравниваемый столбец. В нашем примере просто замените в формуле $ B $ 3: $ B $ 18 на Sheet1! $ B $ 3: $ B $ 18.
1.1.3 Поиск повторяющихся ячеек с учетом регистра с помощью формулы
Формулы, представленные выше, не соответствуют регистру при поиске дубликатов, говорят, что они считают «яблоко» дубликатом с «ЯБЛОКО». Здесь вы можете применить формулу массива, чтобы найти повторяющиеся значения в одном столбце с совпадающими регистрами.
1. Выберите пустую ячейку рядом с столбцом, в котором вы найдете дубликаты.
2. Введите формулу массива = ЕСЛИ (СУММ ((- ТОЧНО ($ C $ 3: $ C $ 12, C3))) 1.2 Найдите и выделите дубликаты с условным форматированием
Иногда вам может потребоваться отметить повторяющиеся значения или строки, чтобы напомнить или предупредить себя или своих читателей. Этот раздел поможет вам выделить запрашиваемые ячейки или строки с правилами условного форматирования.
1.2.1 Поиск и выделение повторяющихся ячеек с условным форматированием
Вы можете применить Условное форматирование функция для быстрого выделения повторяющихся ячеек в столбце или диапазоне.
1. Выберите столбец, в котором вы будете выделять повторяющиеся ячейки.
2. Нажмите Главная > Условное форматирование > Выделите правила ячеек > Дублирующие значения. Смотрите скриншот ниже:
3. В появившемся диалоговом окне повторяющихся значений выберите Дублировать в первом раскрывающемся списке выберите сценарий выделения из второго раскрывающегося списка и щелкните OK кнопку.
Заметки: Если предустановленные сценарии выделения не могут удовлетворить ваши потребности, вы можете выбрать Пользовательский формат из второго раскрывающегося списка, а затем выберите цвет выделения, шрифт и границы ячеек по мере необходимости в появившемся диалоговом окне «Формат ячеек».
Затем вы увидите, что все повторяющиеся ячейки выделены в выбранном столбце, как показано ниже.
Заметки:
(1) Выделив повторяющиеся ячейки, мы можем легко отфильтровать их. (Нажмите, чтобы посмотреть, как)
(2) После выделения повторяющихся ячеек мы также можем легко удалить дубликаты в большом количестве. (Нажмите, чтобы посмотреть, как)
1.2.2 Поиск и выделение строк на основе повторяющихся ячеек
Некоторые пользователи предпочитают выделять строки на основе повторяющихся ячеек в определенном столбце. В этой ситуации мы можем создать собственное правило условного форматирования, чтобы это сделать.
1. Выберите диапазон (исключая строку заголовка), в котором вы будете выделять строки на основе повторяющихся ячеек.
2. Нажмите Главная > Условное форматирование > Новое правило.
3. В диалоговом окне «Новое правило форматирования»
(1) Щелкните, чтобы выбрать Используйте формулу, чтобы определить, какие ячейки следует форматировать. вариант;
(2) Введите формулу = СЧЁТЕСЛИ ($ C $ 3: $ C $ 12, $ C3)> 1 в Формат значений, где эта формула истинна коробка;
Tips: В формуле 3 канадских доллара: 12 канадских долларов столбец, содержащий повторяющиеся ячейки, и $ C3 — первая ячейка в столбце.
(3) Щелкните значок Формат кнопку.
4. В диалоговом окне «Формат ячеек» укажите необходимый цвет заливки, шрифт, границы ячеек и щелкните значок OK кнопки последовательно, чтобы сохранить настройки.
Пока что в выбранном диапазоне строки выделяются на основе повторяющихся ячеек в указанном столбце. Смотрите скриншот:
1.2.3 Найдите и выделите повторяющиеся строки с условным форматированием
Чтобы выделить повторяющиеся строки в определенном диапазоне, вы можете применить Условное форматирование функция для достижения этого тоже.
1. Выберите диапазон, кроме строки заголовка.
2. Нажмите Главная > Условное форматирование > Новое правило.
3. В диалоговом окне «Новое правило форматирования»:
(1) Щелкните, чтобы выбрать Используйте формулу, чтобы определить, какие ячейки следует форматировать. вариант;
(2) В Формат значений, где эта формула истинна поле, введите формулу =COUNTIFS($B$3:$B$12,$B3,$C$3:$C$12,$C3,$D$3:$D$12,$D3)>1;
(3) Щелкните значок Формат кнопку.
Заметки: В формуле =COUNTIFS($B$3:$B$12,$B3,$C$3:$C$12,$C3,$D$3:$D$12,$D3)>1:
(1) 3 млрд долларов: 12 млрд долларов — это первый столбец в диапазоне, а $ B3 это первая ячейка в этом столбце;
(2) 3 канадских доллара: 12 канадских долларов — второй столбец в диапазоне, а $ C3 это первая ячейка в столбце;
(3) $ D $ 3: $ D $ 12 — третий столбец диапазона, а $ D3 это первая ячейка в столбце;
(4) Если в вашем диапазоне больше столбцов, вы можете последовательно добавлять ссылки на столбцы и их первые ячейки в формулу.
4. В диалоговом окне «Формат ячеек» укажите необходимый цвет выделения, шрифт, границы ячеек и т. Д., А затем щелкните OK кнопки последовательно, чтобы сохранить настройку.
Пока что идентифицируются и выделяются повторяющиеся строки в выбранном диапазоне. Смотрите скриншот:
1.2.4 Найдите и выделите дубликаты, кроме первых экземпляров
Возможно, вы заметили, что все дубликаты идентифицируются или выделяются указанными выше методами. Иногда вам просто нужно увидеть, какие элементы дублируются, кроме первых экземпляров. Вы также можете сделать это с помощью Условное форматирование особенность и другая формула.
1. Выберите столбец с заголовком.
Tips: Если вам нужно выделить строки на основе дубликатов в одном столбце, кроме первых экземпляров, выберите диапазон без строки заголовка.
2. Нажмите Главная > Условное форматирование > Новое правило.
3. В диалоговом окне «Новое правило форматирования»:
(1) Щелкните, чтобы выделить Используйте формулу, чтобы определить, какие ячейки следует форматировать. вариант;
(2) В Формат значений, где эта формула истинна поле, введите формулу = СЧЁТЕСЛИ ($ C $ 3: $ C3; C3)> 1;
Tips: Чтобы выделить строки на основе дубликатов в одном столбце, введите формулу = СЧЁТЕСЛИ ($ C $ 3: $ C3, $ C3)> 1.
(3) Щелкните значок Формат кнопку.
4. В появившемся диалоговом окне Формат ячеек укажите цвет выделения, шрифт, границы ячеек и т. Д. По мере необходимости, а затем нажмите OK кнопки для сохранения настроек.
Затем вы увидите повторяющиеся ячейки, за исключением того, что выделены первые экземпляры в выбранном столбце (или строки на основе дубликатов в указанном столбце). Смотрите скриншот:
Когда мы выделяем повторяющиеся ячейки или строки с помощью Условное форматирование функции, все дубликаты выделяются одним цветом. Однако, если разные серии повторяющихся значений выделены разными цветами, будет легче прочитать и увидеть различия. Здесь VBA может помочь вам сделать это в Excel.
1, нажмите другой + F11 вместе, чтобы открыть окно Microsoft Visual Basic для приложений.
2. В окне нажмите Вставить > Модули, а затем вставьте приведенный ниже код в новое окно модуля.
VBA: выделите повторяющиеся ячейки разными цветами:
3, нажмите F5 ключ или щелкните Run значок для запуска этого VBA.
4. В появившемся диалоговом окне Kutools for Excel выберите столбец, в котором вы выделите повторяющиеся ячейки разными цветами, и нажмите кнопку OK кнопку.
Затем вы увидите, что каждая серия повторяющихся значений выделена цветом.
В этом разделе будут рекомендованы некоторые простые в использовании инструменты, предоставляемые сторонними надстройками, для быстрого поиска, выбора и выделения повторяющихся ячеек или строк на основе дубликатов в одном столбце.
1.4.1 Найдите и выделите повторяющиеся ячейки в одном столбце
Первый инструмент, который я представлю, — это Выберите повторяющиеся и уникальные ячейки особенность, предоставленная Kutools for Excel. Эта функция может быстро найти уникальные или повторяющиеся ячейки.
Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30 -день, кредитная карта не требуется! Бесплатная пробная версия сейчас!
Kutools for Excel — Combines more than 300 Advanced Functions and Tools for Microsoft Excel
1. Выберите столбец или диапазон, в котором вы хотите найти, и выделите повторяющиеся ячейки.
2. Нажмите Кутулс > Выбрать > Выберите повторяющиеся и уникальные ячейки.
3. В диалоговом окне «Выбор повторяющихся и уникальных ячеек» отметьте нужные параметры и щелкните значок Ok кнопки, чтобы завершить операцию.
Заметки: В диалоговом окне «Выбрать повторяющиеся и уникальные ячейки»
(1) Если вам нужно выделить или выделить все дубликаты, кроме первых, отметьте Дубликаты (кроме 1-го) вариант. В противном случае проверьте Все дубликаты (включая 1-й) опцию.
(2) Если вам нужно выделить дубликаты, отметьте Заполните цвет фона вариант и укажите нужный цвет выделения.
(3) Если вы хотите выбрать или выделить строки на основе дубликатов в выбранном столбце, отметьте Выбрать целые строки опцию.
(4) Если вы хотите выбрать или выделить повторяющиеся значения с совпадающими регистрами, отметьте Деликатный случай опцию.
1.4.2 Найдите и выделите повторяющиеся ячейки в двух столбцах или листах
Kutools for Excel также предоставляет удивительный инструмент — Сравнить ячейки, чтобы помочь нам легко найти и выделить повторяющиеся ячейки в двух столбцах.
Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30 -день, кредитная карта не требуется! Бесплатная пробная версия сейчас!
Kutools for Excel — Combines more than 300 Advanced Functions and Tools for Microsoft Excel
1. Нажмите Кутулс > Сравнить ячейки , чтобы открыть диалоговое окно Выбрать одинаковые и разные ячейки.
2. В диалоговом окне «Выбрать одинаковые и разные ячейки» укажите два столбца в Найдите значения в и Согласно информации коробки, отметьте Те же значения вариант и отметьте другие параметры по мере необходимости.
Ноты:
(1) Если вам нужно найти повторяющиеся строки, отметьте Каждый ряд вариант; и чтобы найти повторяющиеся ячейки, проверьте Одиночная ячейка вариант в на основании раздел;
(2) Отметьте Заполните цвет фона опцию и укажите цвет выделения, если вам нужно выделить повторяющиеся строки или ячейки;
(3) Отметьте Выбранные целые строки вариант, если вам нужно выделить или выделить всю строку на основе дубликатов;
(4) Отметьте Деликатный случай вариант, если вы хотите найти или выделить дубликаты с учетом регистра.
3. Нажмите Ok кнопки последовательно, чтобы завершить настройки.
Затем вы увидите дубликаты в столбце, который вы указали в Найдите значения в коробки идентифицированы и выделены.
Иногда в столбце встречаются дубликаты, и мы хотим просмотреть записи, относящиеся только к дублированным данным. Поэтому в этой части я представлю два решения для фильтрации только повторяющихся данных.
2.1 Фильтрация дубликатов с условным форматированием
Этот метод поможет вам идентифицировать и выделять повторяющиеся ячейки с помощью правила условного форматирования, а затем легко фильтровать по цвету выделения в Excel.
1. Примените условное форматирование, чтобы найти и выделить дубликаты в указанном столбце. (Нажмите, чтобы посмотреть, как)
2. Щелкните, чтобы выбрать заголовок указанного столбца, и щелкните Данные > Фильтр.
3. Нажмите на значок фильтра в заголовке столбца и выберите Фильтр по цвету, а затем выберите указанный цвет условного форматирования в раскрывающемся списке. Смотрите скриншот:
Тогда вы увидите, что отфильтрованы только строки с повторяющимися ячейками. Смотрите скриншот:
В качестве альтернативы мы также можем идентифицировать дубликаты с помощью формулы во вспомогательном столбце, а затем легко фильтровать дубликаты с помощью вспомогательного столбца в Excel.
1. Помимо исходных данных, добавьте вспомогательный столбец и введите Дублировать как заголовок столбца.
2. Выберите первую пустую ячейку под заголовком столбца, введите формулу = ЕСЛИ (СЧЁТЕСЛИ ($ C $ 3: $ C $ 12; C3)> 1, «Дублировать», «»), и перетащите маркер автозаполнения этой ячейки, чтобы скопировать эту формулу в другие ячейки.
Заметки: В формуле выше 3 канадских доллара: 12 канадских долларов столбец, содержащий повторяющиеся данные, и C3 — это первая ячейка (кроме ячейки заголовка) в столбце.
3. Щелкните, чтобы выбрать заголовок столбца — Дубликаты, и щелкните Данные > Фильтр.
4. Затем щелкните значок фильтра в заголовке столбца отметьте только Дублировать, и нажмите OK кнопка. Смотрите скриншот:
Пока отфильтровываются только строки с повторяющимися значениями. Смотрите скриншот:
Эта часть поможет вам подсчитать количество повторяющихся значений в Excel. Он представит методы подсчета дубликатов с критериями, подсчета общего количества дубликатов, подсчета дубликатов только один раз, подсчета каждого повторяющегося значения в большом количестве и т. Д.
В общем, мы можем применить = СЧЁТЕСЛИ (диапазон; критерии) для подсчета общего количества определенного значения, появляющегося в указанном диапазоне. Говорит считать, сколько раз «Яблоко» появляется в списке A2: A10, Мы можем применить формулу = СЧЁТЕСЛИ (A2: A10; «Яблоко») для подсчета количества этого повторяющегося значения.
Однако формула = СЧЁТЕСЛИ (диапазон, критерии) подсчитывает только указанное повторяющееся значение. Как насчет подсчета повторяющихся значений по двум или нескольким критериям? А что, если подсчет дубликатов с учетом регистра с критериями? Ниже приведены методы, которые помогут вам решить эти проблемы.
3.1.1 Подсчет дубликатов с учетом регистра с помощью критериев
Мы можем применить формулу массива для подсчета повторяющихся значений с учетом регистра с критериями в Excel. Например, чтобы подсчитать, сколько раз значение «Apple» появляется в списке B2: B21 с совпадающими регистрами, вы можете сделать это следующим образом:
1. Выберите пустую ячейку.
2. Введите формулу = СУММ (- ТОЧНО (B2: B20; E2)).
3, нажмите Ctrl + Shift + Enter чтобы вернуть результат подсчета.
Заметки: В формуле массива
(1) B2: B20 — это столбец, в котором вы будете считать дубликаты.
(2) E2 — это ячейка, содержащая указанное значение, количество вхождений которого вы хотите подсчитать. Вы можете изменить ссылку на ячейку на значение в кавычках, говорит «Яблоко».
3.1.2 Подсчет дубликатов по нескольким критериям
Иногда вы можете захотеть подсчитать дубликаты по двум или более критериям. Вы можете применить COUNTIFS функция, чтобы сделать это.
Например, есть таблица продаж фруктов, как показано на скриншоте ниже. Здесь нам нужно подсчитать время повторения яблока, которое было продано 7, а сумма продаж превышает 5. Вы можете подсчитать дубликаты по этим критериям следующим образом:
1. Выберите пустую ячейку.
2. Введите формулу =COUNTIFS(B3:B20,G4,C3:C20,G3,D3:D20,»>300″).
3, нажмите Enter ключ для получения результата подсчета.
Заметки: В приведенной выше формуле
(1) B3: B20 — (первый) столбец даты, и G4 критерий даты;
(2) C3: C20 — (второй) фруктовый столбец, и G3 критерий фруктов;
(3) D3: D20 — (третий) столбец суммы, и «> 300» критерий суммы.
(4) Если в вашей таблице больше столбцов и критериев, вы можете добавить ссылку на столбец и критерии.
Предположим, что в столбце есть ряд значений, и вы хотите подсчитать общее количество дубликатов в списке, как бы вы с этим справились? Здесь в этом разделе будет показано, как подсчитать общее количество повторяющихся значений в одном столбце Excel.
3.2.1 Подсчет дубликатов в столбце, исключая первое вхождение
Чтобы подсчитать все дубликаты в столбце, кроме первых вхождений, сделайте следующее:
1. Выберите пустую ячейку рядом со столбцом.
2. Введите формулу = ЕСЛИ (СЧЁТЕСЛИ ($ B $ 3: B3; B3)> 1; «ДА»; «»), а затем перетащите маркер автозаполнения вниз, чтобы скопировать эту формулу в другие ячейки.
Заметки: В формуле выше
(1) $ B $ 3: B3 это диапазон, в котором вы считаете дубликаты. В $ B $ 3: B3, B3 изменится автоматически при копировании формулы в другие ячейки.
(2) B3 — первая ячейка в указанном столбце.
(3) Эта формула вернет ДА или пусто. ДА означает, что соответствующее значение повторяется, а пустое поле означает уникальное.
Затем идентифицируются все дубликаты в указанном столбце. Мы можем подсчитать результаты формулы, чтобы получить общее количество дубликатов.
3. Выберите пустую ячейку.
4. Введите формулу = СЧЁТЕСЛИ (C3: C16; «ДА»), и нажмите Enter .
Заметки: В формуле выше
(1) C3: C16 это диапазон, который мы применили по формуле для выявления дубликатов на последнем этапе.
(2) ДА — значение, возвращаемое последней формулой.
Затем мы получаем общее количество повторяющихся значений в указанном столбце. Общее количество дубликатов не включает первые вхождения.
3.2.2 Подсчет дубликатов в столбце, включая первое вхождение
Чтобы подсчитать количество всех дубликатов, включая первые вхождения в Excel, вы можете применить формулу массива для достижения этого.
1. Выберите пустую ячейку.
2. Введите формулу =ROWS(B3:B16)-SUM(IF(COUNTIF(B3:B16,B3:B16) =1,1,0)).
3, нажмите Ctrl + Shift + Enter чтобы вернуть результат подсчета.
Заметки: В формуле выше B3: B16 — это указанный столбец, в котором мы хотим подсчитать дубликаты, включая первые вхождения в нем.
3.2.3 Подсчет дубликатов в столбце, включая / исключая первые вхождения
Чтобы упростить себе работу и избавить себя от запоминания длинных скучных формул, вы можете попробовать Выберите повторяющиеся и уникальные ячейки функция, предоставляемая Kutools for Excel, чтобы быстро подсчитать количество повторяющихся значений в указанном списке или столбце, исключая или включая первые вхождения.
Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30 -день, кредитная карта не требуется! Бесплатная пробная версия сейчас!
Kutools for Excel — Combines more than 300 Advanced Functions and Tools for Microsoft Excel
1. Выберите столбец, в котором вы будете подсчитывать количество повторяющихся значений, и нажмите Кутулс > Выбрать > Выберите повторяющиеся и уникальные ячейки.
2. В диалоговом окне «Выбор повторяющихся и уникальных ячеек» установите флажок Дубликаты (кроме 1-го) or Все дубликаты (включая 1-й) вариант, как вам нужно, и щелкните Ok кнопку.
3. Затем выбираются все повторяющиеся значения, включая или исключая первые вхождения, и одновременно появляется диалоговое окно, показывающее, сколько ячеек было выбрано. Смотрите скриншот выше.
3.3.1 Подсчет дубликатов между двумя столбцами с помощью формулы
Говорит, что вы хотите сравнить два списка имен и подсчитать количество дубликатов между ними, как вы могли бы быстро решить эту проблему? Мы также можем сделать это с помощью формулы в Excel.
1. Выберите пустую ячейку.
2. Введите формулу = СУММПРОИЗВ (- (ISNUMBER (MATCH (B3: B12, D3: D18,0)))).
3, нажмите Enter .
Заметки: В формуле выше
(1) B3: B12 — это первый столбец имен, в котором вы будете считать дубликаты.
(2) D3: D18 — это второй столбец имен, на основе которого вы будете подсчитывать дубликаты.
3.3.2 Подсчет дубликатов между двумя столбцами с помощью сторонней надстройки
В качестве альтернативы мы можем использовать стороннюю надстройку, Kutools for Excel, чтобы легко быстро подсчитать общее количество повторяющихся ячеек между двумя столбцами.
Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30 -день, кредитная карта не требуется! Бесплатная пробная версия сейчас!
Kutools for Excel — Combines more than 300 Advanced Functions and Tools for Microsoft Excel
1. Нажмите Кутулс > Выбрать > Выберите одинаковые и разные ячейки.
2. В диалоговом окне Выбрать одинаковые и разностные ячейки,
(1) Укажите два столбца в Найдите значения в и Согласно информации коробки отдельно.
(2) Проверьте Однокамерная опцию.
(3) Проверьте Те же значения опцию.
4, Нажмите Ok кнопку.
Затем выбираются все повторяющиеся ячейки в первом столбце, и одновременно появляется диалоговое окно, показывающее, сколько повторяющихся ячеек было выбрано. Смотрите скриншот:
Заметки: Эта функция будет подсчитывать общее количество повторяющихся значений в столбце, который вы указали в Найдите значения в в диалоговом окне Выбрать одинаковые и разные ячейки. Если вам нужно подсчитать общее количество повторяющихся значений во втором столбце, примените Выберите одинаковые и разные ячейки снова с указанием второго столбца в Найдите значения в пунктом.
Иногда в столбце встречаются повторяющиеся значения. Когда мы подсчитываем значения в столбце, нам нужно один раз подсчитать дубликаты. Возьмем, к примеру, ряд значений A, A, B, C, C, C, D, E, E, и нам нужно подсчитать значения и получить 5 (A, B, C, D, E). Здесь в этом разделе будут представлены две формулы для решения этой проблемы.
3.4.1 Подсчитайте каждое повторяющееся значение один раз с помощью формулы
Вы можете быстро подсчитать каждое повторяющееся значение один раз с помощью следующей формулы:
1. Выберите пустую ячейку.
2. Введите формулу =SUMPRODUCT((C3:C19<>«»)/COUNTIF(C3:C19,C3:C19&»»)).
3, нажмите Enter ключ для получения результата подсчета.
Заметки: В формуле выше C3: C19 — это указанный столбец, в котором вы хотите один раз подсчитать каждое повторяющееся значение.
3.4.2 Один раз подсчитать повторяющееся значение с учетом регистра с помощью формулы массива
При подсчете списка каждое повторяющееся значение может быть подсчитано один раз с совпадающими случаями, вы можете применить формулу массива, чтобы легко сделать это в Excel.
1. Выберите пустую ячейку.
2. Введите формулу массива = СУММ (ЕСЛИОШИБКА (1 / ЕСЛИ (C3: C19 <> «», ЧАСТОТА (ЕСЛИ (ТОЧНО (C3: C19; ТРАНСПОЗИРОВАТЬ (C3: C19))), ПОИСКПОЗ (СТРОКА (C3: C19), СТРОКА (C3: C19) ), «»), МАТЧ (СТРОКА (C3: C19), СТРОКА (C3: C19))), 0), 0)).
3, нажмите Ctrl + Shift + Enter вместе, чтобы получить результат подсчета.
Заметки: В приведенной выше формуле массива C3: C19 — это указанный столбец, в котором вы будете подсчитывать каждую серию дубликатов один раз с совпадающими случаями.
3.4.3 Подсчитайте каждое повторяющееся значение один раз с помощью сторонней надстройки
Если у вас есть Kutools for Excel установлен, вы также можете применить его Подсчет ячеек с уникальными значениями функция для быстрого подсчета каждой серии повторяющихся значений один раз в Excel.
Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30 -день, кредитная карта не требуется! Бесплатная пробная версия сейчас!
Kutools for Excel — Combines more than 300 Advanced Functions and Tools for Microsoft Excel
1. Выберите пустую ячейку.
2. Нажмите Кутулс > Формула Помощник > Статистический > Подсчет ячеек с уникальными значениями (включая первое повторяющееся значение).
3. В диалоговом окне «Помощник по формулам» укажите столбец, в котором вы будете считать дубликаты один раз Диапазон и нажмите Ok кнопку.
Затем результат подсчета сразу же заполняется в выбранной ячейке.
В общем, мы можем использовать COUNTIF функция для подсчета одного повторяющегося значения за раз и повторения операций для подсчета других повторяющихся значений один за другим. Однако это решение потратит много времени на создание нескольких дубликатов. Здесь в этом разделе представлены три решения, которые помогут быстро завершить эту работу в Excel.
3.5.1 Подсчитайте каждое повторяющееся значение в одном столбце с помощью функции ПРОМЕЖУТОЧНЫЙ ИТОГ
Мы можем применить Сумма функция подсчета каждой серии повторяющихся значений в столбце Excel.
1. Выберите столбец, в котором вы будете считать каждую серию повторяющихся значений, и нажмите Данные > Сортировка от А до Я or Сортировка Z по A.
2. В появившемся диалоговом окне предупреждения о сортировке проверьте Расширить выбор и нажмите Сортировать кнопку.
Затем вы увидите, что выбор был отсортирован по повторяющимся значениям указанного столбца.
3. Не снимая выделения, нажмите Данные > Сумма.
4. В диалоговом окне «Итого»
(1) Выберите указанный столбец из При каждом изменении раскрывающийся список;
(2) Выберите Количество из Использование функции раскрывающийся список;
(3) Отметьте только указанный столбец в Добавить промежуточный итог к список;
(4) Щелкните значок OK кнопку.
Затем вы увидите, что каждая серия повторяющихся значений подсчитывается, и результат подсчета добавляется под каждой серией повторяющихся значений, см. Снимок экрана выше.
3.5.2 Подсчитайте каждое повторяющееся значение в одном столбце с помощью сводной таблицы
Мы также можем создать сводную таблицу, чтобы быстро подсчитать каждую серию повторяющихся значений в Excel.
1. Выберите диапазон, содержащий указанный столбец, и щелкните Вставить > PivotTable.
2. В диалоговом окне «Создание сводной таблицы» укажите место, в котором будет размещена новая сводная таблица, и щелкните значок OK кнопку.
3. На панели полей сводной таблицы перетащите указанный столбец в оба Ряды и Ценности разделы. Затем вы увидите, что каждая серия повторяющихся значений в указанном столбце учитывается массово. Смотрите скриншот:
3.5.3 Подсчитайте каждое повторяющееся значение в одном столбце с помощью замечательного инструмента
Если вы установили Kutools for Excel уже вы можете применить его простой в использовании Расширенные ряды комбинирования функция для быстрого подсчета каждой серии повторяющихся значений в указанном столбце.
Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30 -день, кредитная карта не требуется! Бесплатная пробная версия сейчас!
Kutools for Excel — Combines more than 300 Advanced Functions and Tools for Microsoft Excel
Заметки: Продвинутые комбинированные ряды функция изменит выбранный диапазон и удалит строки на основе повторяющихся значений в указанном столбце первичного ключа. Чтобы сохранить ваши данные, рекомендуется сделать резервную копию или скопировать ваши данные в другое место перед операциями ниже.
1. Добавьте пустой столбец справа от исходного диапазона данных и назовите новый столбец как Количество.
2. Выберите вместе исходный диапазон данных и новый столбец и нажмите Кутулс > Слияние и разделение > Расширенные ряды комбинирования.
3. В диалоговом окне Advanced Combine Rows,
(1) Щелкните, чтобы выбрать указанный столбец, в котором вы будете подсчитывать каждую серию повторяющихся значений, и щелкните Основной ключ.
(2) Щелкните, чтобы выбрать новый столбец (Число), а затем щелкните Рассчитать > Количество.
(3) При необходимости укажите комбинацию или типы расчета для других столбцов.
(4) Щелкните значок Ok кнопку.
Затем вы увидите, что повторяющиеся значения каждой серии в указанном столбце подсчитываются массово. Смотрите скриншот:
Говорит, что есть список фруктов в столбце. В списке некоторые фрукты встречаются много раз. Теперь вам нужно пометить каждый повторяющийся фрукт в том порядке, в котором он появляется, как бы вы могли его решить? Здесь в этом разделе будет представлена формула, позволяющая легко сделать это в Excel.
1. Добавьте пустой столбец справа от исходных данных.
2. Введите формулу =IF(COUNTIF($C$3:$C$14,C3)>1,COUNTIF(C$3:C3,C3),»») в первой ячейке добавленного пустого столбца.
3. Перетащите маркер автозаполнения этой ячейки формулы, чтобы скопировать формулу в другие ячейки.
Заметки: В формуле выше
(1) 3 канадских доллара: 14 канадских долларов — это указанный столбец, в котором вы хотите посчитать повторяющиеся значения по порядку.
(2) C3 — первая ячейка в указанном столбце.
(3) Если соответствующее значение повторяется, эта формула вернет порядковый номер 1, 2, 3… в зависимости от порядка появления; если соответствующее значение уникально, эта формула вернет пустое значение.
Когда несколько повторяющихся значений складываются в столбец или диапазон, некоторые пользователи ищут простые способы быстрого удаления повторяющихся значений. Здесь в этой части будут представлены несколько решений для легкого удаления повторяющихся значений в Excel.
В этом разделе будет показано руководство по быстрому удалению повторяющихся значений, кроме первого вхождения, из столбца или списка в Excel.
4.1.1 Удаление дубликатов, кроме одного, с функцией удаления дубликатов
Вы можете применить Удалить дубликаты функция для удаления всех повторяющихся значений, кроме первых вхождений напрямую.
1. Выберите столбец, в котором вы хотите удалить все повторяющиеся значения, кроме первых вхождений.
2. Нажмите Данные > Удалить дубликаты.
3. В диалоговом окне «Предупреждение об удалении дубликатов» установите флажок Продолжить текущий выбор и нажмите Удалить дубликаты кнопку.
Tips: Чтобы удалить строки на основе повторяющихся значений в выделенном фрагменте, установите флажок Расширить выбор опцию.
4. В диалоговом окне «Удалить дубликаты» отметьте только указанный столбец и щелкните значок OK кнопку.
Tips: Если вы проверили Расширить выбор на последнем шаге, здесь будут перечислены все столбцы. Тем не менее, вам нужно проверить только указанный столбец.
5. Затем появится диалоговое окно, показывающее, сколько повторяющихся значений было удалено. Щелкните значок OK чтобы закрыть его.
4.1.2 Удаление дубликатов, кроме одного с функцией расширенного фильтра
Вы также можете применить Расширенный фильтр функция, позволяющая легко удалить все повторяющиеся значения из указанного столбца.
1. Нажмите Данные > Дополнительно.
2. В диалоговом окне «Расширенный фильтр»
(1) Проверьте Скопировать в другое место вариант;
(2) В Диапазон списка поле выберите указанный столбец, из которого вы удалите повторяющиеся значения;
(3) В Скопировать в поле укажите диапазон, в который будет вставлен столбец;
(4) Отметьте Только уникальные записи опцию.
(5) Щелкните значок OK кнопку.
Затем вы увидите, что указанный столбец вставлен в указанный диапазон с удалением всех повторяющихся значений, кроме первых вхождений. Смотрите скриншот:
4.1.3 Удалить дубликаты, кроме одного, с VBA
Вы также можете применить VBA для быстрого удаления повторяющихся значений, кроме первых вхождений из столбца в Excel.
1, нажмите другой + F11 клавиши, чтобы открыть окно Microsoft Visual Basic для приложения.
2. Нажмите Вставить > Модули, а затем вставьте ниже код VBA в новое окно модуля.
VBA: удалить повторяющиеся значения, кроме первых вхождений
3, нажмите F5 ключ или щелкните Run кнопку для запуска этого VBA.
4. В появившемся диалоговом окне укажите диапазон, из которого вы удалите повторяющиеся значения, и нажмите кнопку OK кнопку.
Затем все повторяющиеся значения, кроме первых вхождений, немедленно удаляются из указанного диапазона.
Примечание. Этот код VBA чувствителен к регистру.
Обычно мы обнаруживаем повторяющиеся значения и удаляем дубликаты, кроме первых вхождений. Однако в некоторых случаях некоторые пользователи предпочитают удалять все повторяющиеся значения, включая исходные. В этом разделе представлены некоторые решения этой проблемы.
4.2.1 Удаление всех дубликатов и исходных значений с помощью условного форматирования
Мы можем выделить все повторяющиеся значения, включая первые вхождения в столбце или списке, с помощью правила условного форматирования, а затем отфильтровать все повторяющиеся значения с помощью цвета выделения. После этого мы можем выбрать все отфильтрованные повторяющиеся ячейки, а затем удалить их сразу.
1. Примените условное форматирование, чтобы выделить повторяющиеся значения. (Нажмите, чтобы посмотреть, как)
2. Выберите столбец, из которого вы удалите повторяющиеся значения (включая первые вхождения), и нажмите Данные > Фильтр.
3. Щелкните значок фильтра в заголовке столбца указанного столбца. В раскрывающемся меню выберите Фильтр по цвету, а затем укажите цвет выделения в подменю.
Затем все повторяющиеся значения отфильтровываются.
4. Выберите все отфильтрованные ячейки, щелкните правой кнопкой мыши и выберите Удалить строку из контекстного меню. И в появившемся диалоговом окне подтверждения нажмите OK кнопку, чтобы продолжить.
5. Затем все повторяющиеся значения удаляются сразу. Не снимая выделения с отфильтрованного списка, нажмите Фильтр > Данные еще раз, чтобы отменить фильтр.
До сих пор вы увидите, что все повторяющиеся ячейки, включая первые вхождения, удаляются массово, и остаются только уникальные значения.
Заметки: Этот метод удалит строки на основе повторяющихся значений в указанном столбце.
4.2.2 Удалите все дубликаты и исходные значения с помощью вспомогательного столбца
Мы также можем применить формулу для выявления повторяющихся значений, включая первые вхождения во вспомогательном столбце, затем отфильтровать повторяющиеся значения по результатам формулы и, наконец, удалить эти отфильтрованные повторяющиеся значения сразу.
1. Добавьте вспомогательный столбец рядом с указанным столбцом, введите формулу = СЧЁТЕСЛИ ($ B $ 3: $ B $ 11; B3) в первую ячейку вспомогательного столбца, а затем перетащите дескриптор автозаполнения вниз, чтобы скопировать эту формулу в другие ячейки. Смотрите скриншот:
Внимание: В формуле выше 3 млрд долларов: 11 млрд долларов — это указанный столбец, из которого вы удалите повторяющиеся значения, и B3 — первая ячейка в указанном столбце.
2. Выберите вспомогательный столбец и щелкните Данные > Фильтр.
3. Щелкните значок фильтра в заголовке вспомогательного столбца, затем в раскрывающемся меню отметьте все значения, кроме 1, и нажмите OK кнопка. Смотрите скриншот:
4. Теперь все повторяющиеся значения отфильтрованы. Выберите отфильтрованные ячейки во вспомогательном столбце, щелкните правой кнопкой мыши и выберите Удалить строку в контекстном меню.
5. В появившемся диалоговом окне подтверждения нажмите кнопку OK кнопку, чтобы продолжить.
6. Теперь все повторяющиеся значения и их строки удаляются массово. Продолжайте нажимать Данные > Фильтр еще раз, чтобы отменить фильтр.
Затем вы увидите, что все повторяющиеся значения, включая первые вхождения, удаляются массово.
4.2.3 Удалите все дубликаты и исходные значения с помощью замечательного инструмента
Если у вас есть Kutools for Excel установлен, вы также можете применить его Выберите повторяющиеся и уникальные ячейки функция для быстрого выбора и удаления повторяющихся значений, включая или исключая первые вхождения в Excel.
Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30 -день, кредитная карта не требуется! Бесплатная пробная версия сейчас!
Kutools for Excel — Combines more than 300 Advanced Functions and Tools for Microsoft Excel
1. Выберите столбец, из которого вы удалите дубликаты.
2. Нажмите Кутулс > Выбрать > Выберите повторяющиеся и уникальные ячейки.
3. В диалоговом окне «Выбор повторяющихся и уникальных ячеек» установите флажок Все дубликаты (включая 1-й) и нажмите Ok кнопку.
Ноты:
(1) Чтобы выбрать и удалить повторяющиеся значения, исключая первые вхождения, установите флажок Дубликаты (кроме 1-го) опцию.
(2) Чтобы выбрать и удалить строки на основе повторяющихся значений в указанном столбце, установите флажок Выбрать целые строки опцию.
(3) Чтобы выбрать и удалить повторяющиеся значения с совпадающими регистрами, установите флажок Деликатный случай опцию.
(4) Чтобы выбрать, выделить и удалить повторяющиеся ячейки или строки, установите флажок Заполните цвет фона or Цвет заливки шрифта параметры и укажите цвета заливки или шрифта по своему усмотрению.
4. Затем появится диалоговое окно, показывающее, сколько ячеек было выбрано, щелкните значок OK чтобы закрыть его.
5. Щелкните выделенные ячейки правой кнопкой мыши и выберите Удалить из контекстного меню.
6. В появившемся диалоговом окне «Удалить» проверьте Сдвинуть ячейки вверх и нажмите OK кнопку.
Пока что все повторяющиеся значения, включая первые вхождения, были полностью удалены.
В большинстве случаев мы идентифицируем повторяющиеся значения в столбце, а затем удаляем все строки по повторяющимся значениям. Если честно, эта операция очень похожа на удаление повторяющихся значений из одного столбца. В результате мы можем использовать аналогичные решения для удаления строк на основе дубликатов в указанном столбце.
Первый способ — применить встроенный Удалить дубликаты возможность удаления строк по дубликату в указанном столбце. Просто выберите диапазон, в котором вы будете удалять строки, нажмите Данные > Удалить дубликаты чтобы включить эту функцию, отметьте только указанный столбец в диалоговом окне «Удалить дубликаты», а затем нажмите OK чтобы завершить операцию удаления.
Мы также можем применить функцию условного форматирования и фильтрации для удаления строк на основе повторяющихся значений в указанном столбце. Прежде всего, выделите строки на основе повторяющихся значений в определенном столбце с помощью правила условного формирования (нажмите, чтобы посмотреть, как). Во-вторых, отфильтруйте диапазон по цвету. В-третьих, легко удалить все отфильтрованные строки. Наконец, очистите или отмените фильтр, и вы увидите, что остались только строки с уникальными значениями в указанном столбце.
В качестве альтернативы вы можете добавить вспомогательный столбец и применить формулу = СЧЁТЕСЛИ ($ C $ 3: $ C $ 21; C3) для выявления дубликатов в указанном столбце. Затем отфильтруйте числа больше 1 во вспомогательном столбце и легко удалите все отфильтрованные строки. После очистки фильтра вы увидите, что строки с уникальными значениями остаются только в указанном столбце.
Сторонняя надстройка Kutools for Excel также имеет необычайно удобную функцию, Выберите повторяющиеся и уникальные ячейки, чтобы быстро выбрать строки на основе повторяющихся значений в указанном столбце, а затем вы можете быстро удалить эти выбранные строки, щелкнув меню правой кнопкой мыши.
Kutools для Excel Расширенные ряды комбинирования функция также может быстро удалять строки на основе повторяющихся значений в указанном столбце первичного ключа.
Иногда нам нужно сравнить два списка или столбца, а затем удалить дубликаты между ними в Excel. Здесь в этом разделе представлены два решения.
4.4.1 Удалить дубликаты в двух столбцах с помощью вспомогательного столбца
Мы можем добавить вспомогательный столбец и применить формулу для выявления повторяющихся значений между двумя столбцами, а затем легко отфильтровать и удалить повторяющиеся значения.
1. Добавьте пустой столбец рядом с указанным столбцом, из которого вы удалите повторяющиеся значения.
2. В первой ячейке вспомогательного столбца (исключая ячейку заголовка) введите формулу = IF (ISERROR (MATCH (C2; $ A $ 2: $ A $ 13,0)), «Уникальный», «Повторяющийся»), а затем перетащите маркер автозаполнения вниз, чтобы скопировать формулу в другие ячейки.
Заметки: В формуле выше
(1) C2 это первая ячейка в указанном столбце, из которой вы удалите повторяющиеся значения;
(2) $ A $ 2: $ A $ 13 это другой столбец, с которым нам нужно сравнить.
(3) Эта формула вернет Дублировать если соответствующее значение дублируется со значениями в другом столбце, и вернуть Уникальное Произведение если отличается от значений в другом столбце.
3. Выберите вспомогательный столбец и щелкните Данные > Фильтр.
4. Щелкните значок фильтра в заголовке вспомогательного столбца, затем в раскрывающемся меню отметьте только Дублировать, и нажмите OK кнопку.
5. Теперь все повторяющиеся значения отфильтрованы. Выберите отфильтрованные ячейки, щелкните правой кнопкой мыши и выберите Удалить строку из контекстного меню. Затем нажмите OK во всплывающем диалоговом окне подтверждения.
6. Затем все повторяющиеся значения удаляются из указанного столбца. Продолжайте нажимать Данные > Фильтр еще раз, чтобы отменить фильтр.
Тогда вы увидите, что в указанном столбце остались только уникальные значения. Вы можете удалить вспомогательный столбец по мере необходимости.
Заметки: Этот метод удалит все строки на основе повторяющихся значений в указанном столбце.
4.4.2 Удалите дубликаты в двух столбцах с помощью замечательного инструмента
Если у вас есть Kutools for Excel установлен, вы можете использовать его потрясающий Выберите одинаковые и разные ячейки функция для быстрого выбора повторяющихся значений между двумя столбцами, а затем их легкого удаления.
Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30 -день, кредитная карта не требуется! Бесплатная пробная версия сейчас!
Kutools for Excel — Combines more than 300 Advanced Functions and Tools for Microsoft Excel
1. Нажмите Кутулс > Выбрать > Выберите одинаковые и разные ячейки для включения этой функции.
2. В диалоговом окне «Выбрать одинаковые и разные ячейки» укажите оба столбца в поле Найдите значения в и Согласно информации коробки отдельно, отметьте Однокамерная и Те же значения параметры и щелкните Ok кнопка. Смотрите скриншот:
3. Затем все повторяющиеся значения в количестве двух столбцов выбираются в первом столбце (столбец, который вы указали в Найдите ценность в коробка). И нажмите кнопку OK в появившемся диалоговом окне.
4, Вы можете нажать Удалить ключ, чтобы удалить эти повторяющиеся значения напрямую, или щелкните их правой кнопкой мыши и выберите Удалить из контекстного меню.
Добавить столбец уникального идентификатора для повторяющихся строк в Excel
Предположим, что в столбце есть повторяющиеся данные, теперь вы хотите добавить уникальный идентификационный номер для этих повторяющихся строк, как показано на скриншоте ниже. Есть ли у вас какие-нибудь хорошие способы их добавления? Здесь я представляю формулу, которая поможет вам быстро справиться с этой задачей в Excel.
Автоматически удалять дубликаты из списка в Excel
В Excel мы можем использовать функцию «Удалить дубликаты» для удаления одинаковых значений из списка, но есть ли какой-нибудь трюк для автоматического удаления дубликатов из списка? В этой статье я расскажу о приемах автоматического удаления дубликатов, если они появляются в указанном столбце Excel.
Ранжируйте дубликат без пропуска чисел в Excel
В общем, когда мы ранжируем список с дубликатами, некоторые числа будут пропущены, как показано на скриншоте 1 ниже, но в некоторых случаях мы просто хотим ранжировать по уникальным номерам или ранжировать дубликаты с тем же номером, не пропуская числа, как показано на скриншоте 2. У вас есть какие-нибудь хитрости для решения этой задачи в Excel?
Используйте ярлык для удаления дубликатов в столбце или строке Excel
В Excel утилита «Удалить дубликаты» может помочь вам удалить дубликаты в столбце, но знаете ли вы, как использовать ярлык для удаления дубликатов в столбце или строке Excel? Удалите дубликаты ярлыком.
Vlookup и возврат нескольких значений без дубликатов в Excel
Иногда вам может понадобиться vlookup и сразу вернуть несколько совпадающих значений в одну ячейку. Но если в возвращенные ячейки внесены повторяющиеся значения, как можно игнорировать дубликаты и сохранять только уникальные значения при возврате всех совпадающих значений, как показано на следующем снимке экрана в Excel?
Источник
0 / 0 / 0 Регистрация: 24.05.2008 Сообщений: 4 |
|
1 |
|
19.01.2009, 15:57. Показов 40087. Ответов 8
Регистрация: 19.01.2009 появилась необходимость поиска повторяющихся улиц с номерами домов в таблице эксель с помощью макроса Итак есть столбец «улица», рядом столбец «дом». Есть еще другие Столбцы в которых есть информация. Как можно было бы организовать алгоритм обхода так, чтобы это работало максимально производительно(быстро) во вложении к посту
0 |
32 / 32 / 4 Регистрация: 29.12.2008 Сообщений: 75 |
|
19.01.2009, 20:01 |
2 |
Пока не шочу слишком глубоко вдаваться в идею самого макроса, но думаю, гораздо удобнее сначала отсортировать таблицу excell по улицам в алфавитном порядке (макрос для этого можно не писать в ручную, а воспользоваться командой «Запись макроса» и выбрать сортировку по возрастанию или убыванию). В отсортированной таблице поиск повторяющихся элементов не должен занять много времени, особенно если воспользоваться «бинарным поиском». Примечание:
0 |
loter 2 / 2 / 0 Регистрация: 16.01.2009 Сообщений: 11 |
||||
20.01.2009, 22:43 |
3 |
|||
я в макросах не сильна, но эту задачу можно решить еще вот так:
по такому алгоритму у меня расчет занял 22 минуты 12 секунд. не знаю быстрее это или медленее чем у Вас, но мало ли… м.б. пригодится. если доступна сотировка, то есть более быстрый и простой механизм, только он делается не макросом, а формулой. сортируем сначала по а, затем по б и в пустой столбец во вторую строку забиваем формулу «=если((A2=A3)*И(B2=B3);1;»»)». растягиваем формулу до конца.
0 |
32 / 32 / 4 Регистрация: 29.12.2008 Сообщений: 75 |
|
21.01.2009, 18:19 |
4 |
Loter. Ты прав на все 100%. Однако вся прелесть макросов — это автоматизация твоих действий. Представь, что тебе каждый раз после ввода новых данных необходимо будет сначала отсортировать таблицу, потом выбрать специальный столбец, куда можно будет ввести предложенную тобой формулу с ЕСЛИ, растянуть ее (на несколько тысяч записей). Потом найти все строки, в которых твоя формула дает 1 и, наконец, выделив их, залить красным цветом. У-Ф-Ф-Ф… Даже рука устала писать. Гораздо проще все это проделать одним кликом по кнопке, который присвоен специальный макрос. Кстати.
0 |
loter 2 / 2 / 0 Регистрация: 16.01.2009 Сообщений: 11 |
||||
22.01.2009, 18:01 |
5 |
|||
хм….
на базу в 6000 заняло меньше 5 секунд
0 |
maximus09 32 / 32 / 4 Регистрация: 29.12.2008 Сообщений: 75 |
||||
23.01.2009, 17:57 |
6 |
|||
Не знаю как bloogrox, а я результатом в общем и целом удовлетворен. Единственное, на что нужно обратить внимание — это то, что сейчас программа использует дополнительный столбец книги Excell для того чтобы ввести формулу
Это не всегда хорошо. Поиск можно осуществить простым перебором ячеек, не выводя никакой дополнительной информации на листы книги Excell.
0 |
2 / 2 / 0 Регистрация: 16.01.2009 Сообщений: 11 |
|
23.01.2009, 20:16 |
7 |
maximus09, а о каких встроенных механизмах сортировки ты говорил?
0 |
32 / 32 / 4 Регистрация: 29.12.2008 Сообщений: 75 |
|
23.01.2009, 20:39 |
8 |
Почитай мое первое сообщение. Там найдешь такие слова: (макрос для этого можно не писать в ручную, а воспользоваться командой «Запись макроса» и выбрать сортировку по возрастанию или убыванию). В отсортированной таблице поиск повторяющихся элементов не должен занять много времени, особенно если воспользоваться «бинарным поиском». Примечание: Если перед выбором команды Данные -> Сортировка выбрать команду Сервис ->Макрос->Начать запись, а после того, как сортировка выполнится вручную остановить запись макроса, то Excell автоматически сама создаст макрос сортировки. Программисту останется только его немножко подправить под свои нужды и включить то, что получится в итоге, в текст программы поиска повторяющихся элементов. Более подробно об описанном здесь механизме программирования можно прочитать в книге Кстати, там данный пример ручной с сортировкой описан в подробностях (что, какие опции в окне параметров сортировки нужно выбирать, зачем нужно выделять всю таблицу прежде чем производить сортировку и т.п.). Очень рекомендую книгу. Сам учился по ней. Но, стоит сказать, что она целиком посвящена VBA в Excell.
0 |
2 / 2 / 0 Регистрация: 16.01.2009 Сообщений: 11 |
|
24.01.2009, 07:03 |
9 |
спасибо. книжку посмотрю.
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
24.01.2009, 07:03 |
9 |