Как выделить повторяющиеся значения в excel разными цветами

Обновлено: 07.07.2024

Пример настраиваемого макроса для выделения повторяющихся значений разным цветом заливки ячеек Excel.

Отмечаем разными цветами ячейки с повторяющимися значениями

Нам нужно чтобы макрос VBA, при помощи разных цветов отмечал в столбце повторяющиеся значения. Более или менее так:

Готовое решение.

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

Вспомогательный лист (с цветами) выглядит примерно так:

Вспомогательный лист.

Здесь пользователь может указать свои желаемые пользовательские цвета для подсветки дубликатов.

Установка цветов для подсветки ячеек с дубликатами

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

Поскольку лучше сделать так, чтобы ячейки обновлялись каждый раз, когда что-то вводится в ячейку, макрос обрабатывает событие onChange на листе «Данные».

Макрос выглядит следующим образом:

Option Explicit
Private Sub Worksheet_Change( ByVal Target As Range)
Dim rngЦвета As Range
Dim rngК_Покраске As Range
Dim СчетчикЦветов As Integer
Dim Счетчик As Integer
Dim rngСтолбец As Range
Dim rngЗаполненДанные As Range
' диапазон ячеек с цветами
Set rngЦвета = wksВспомогательный.Range( "rngColorStart" ).Resize(wksВспомогательный.Range( "settIleColors" ).Value, 1)
' диапазон с данными для заливки цветом
Set rngК_Покраске = wksДанные.Range(Range( "rngDataStart" ), Cells(65535, Range( "rngDataStart" ).Column). End (xlUp))
' столбец с данными
Set rngСтолбец = Columns( "B" )
With wksДанные
Set rngЗаполненДанные = .Range(.Range( "rngDataStart" ), .Range( "rngDataStart" ).Offset(10000). End (xlUp))
End With
If Not Intersect(Target, rngСтолбец) Is Nothing Then ' если изменение в столбце с данными
Application.ScreenUpdating = False ' выключаю "мигание" экрана
' Очищаем всю область данных (устанавливаем везьде цвет фона по умолчанию)
rngЗаполненДанные.Resize(rngЗаполненДанные.Count + 1).Interior.ColorIndex = _
wksВспомогательный.Range( "rngFonStandart" ).Interior.ColorIndex
СчетчикЦветов = 1 ' сброс счётчика цветов
With rngК_Покраске
' первая ячейка
If Application.WorksheetFunction.CountIf(rngК_Покраске, .Cells(1).Value) > 1 Then
.Cells(1).Interior.ColorIndex = rngЦвета.Cells(СчетчикЦветов).Interior.ColorIndex
СчетчикЦветов = СчетчикЦветов + 1
If СчетчикЦветов > rngЦвета.Count Then СчетчикЦветов = 1
End If
'Если имеется более чем одна ячейка
If rngЗаполненДанные.Count > 1 Then
' это для следующих ячеек
For Счетчик = 2 To .Count
If Application.WorksheetFunction.CountIf(rngК_Покраске, _
.Cells(Счетчик).Value) > 1 Then
If Application.WorksheetFunction.CountIf(Range( "rngDataStart" ).Resize(Счетчик - 1), .Cells(Счетчик).Value) > 0 Then
.Cells(Счетчик).Interior.ColorIndex = _
rngЗаполненДанные.Find(what:=.Cells(Счетчик).Value, after:=.Cells(Счетчик), SearchDirection:=xlPrevious, lookat:=xlWhole).Interior.ColorIndex
Else
.Cells(Счетчик).Interior.ColorIndex = rngЦвета.Cells(СчетчикЦветов).Interior.ColorIndex
СчетчикЦветов = СчетчикЦветов + 1
If СчетчикЦветов > rngЦвета.Count Then СчетчикЦветов = 1
End If
End If
Next Счетчик
End If
End With
Application.ScreenUpdating = True
End If
End Sub

Ниже, как обычно, файл с примером для скачивания:

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

Браузер не поддерживает видео.

В Excel есть несколько способов отфильтровать уникальные значения или удалить повторяющиеся значения:

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

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

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

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

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

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

Щелкните > дополнительные данные (в группе Фильтр & сортировки).

Во всплывающее окно Расширенный фильтр сделайте следующее:

Чтобы отфильтровать диапазон ячеек или таблицу на месте:

Щелкните Фильтровать список на месте.

Чтобы скопировать результаты фильтра в другое место:

В поле Копировать в введите ссылку на ячейку.

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

Проверьте только уникальные записии нажмите кнопку ОК.

Уникальные значения из диапазона копируются в новое место.

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

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

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

На вкладке Данные нажмите кнопку Удалить дубликаты (в группе Инструменты для работы с данными).

Выполните одно или несколько из указанных ниже действий.

В области Столбцывыберите один или несколько столбцов.

Чтобы быстро выбрать все столбцы, нажмите кнопку Выбрать все.

Чтобы быстро очистить все столбцы, нажмите кнопку Отклоните все.

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

Примечание: Данные будут удалены из всех столбцов, даже если на этом этапе не выбраны все столбцы. Например, если выбрать Столбец1 и Столбец2, но не Столбец3, то ключом, используемым для поиска дубликатов, будет значение BOTH Column1 & Column2. Если в этих столбцах найдено повторяющиеся записи, удаляется вся строка, включая другие столбцы в таблице или диапазоне.

Чтобы отменить изменение, нажмите кнопку Отменить (или нажмите клавиши CTRL+Z на клавиатуре).

Проблемы с удалением дубликатов из структурных или вычитающихся данных

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

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

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

Быстрое форматирование

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

Повторяющиеся значения

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

Введите нужные значения и выберите формат.

Расширенное форматирование

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

Меню "Условное форматирование" с выделенным пунктом "Управление правилами"

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

Выполните одно из следующих действий:

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

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

В группе Выберите тип правила выберите параметр Форматировать только уникальные или повторяющиеся значения.

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

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

В Excel в Интернете можно удалить повторяющиеся значения.

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

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

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

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

На вкладке Данные нажмите кнопку Удалить дубликаты.

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

Примечание: Данные будут удалены из всех столбцов, даже если на этом этапе не выбраны все столбцы. Например, если выбрать Столбец1 и Столбец2, но не Столбец3, то ключом, используемым для поиска дубликатов, будет значение BOTH Column1 & Column2. Если в столбцах "Столбец1" и "Столбец2" найдено повторяющиеся данные, удаляется вся строка, включая данные из столбца "Столбец3".

Примечание: Если вы хотите вернуть данные, просто нажмите кнопку Отменить (или нажмите клавиши CTRL+Z на клавиатуре).

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

Одна из задач, которую тебе точно придётся решать при работе с большими массивами данных – это поиск дублей в Excel. Не вариант проверять тысячи ячеек руками – угробишь на это часы и выйдешь с работы, пошатываясь, будто пьяный. Я предложу тебе 2 способа, как выполнить эту работу в десяток раз быстрее. Они дают немного разные результаты, но в равной степени просты.

Как в Эксель найти повторяющиеся значения?

Для примера я распределил фамилии прославленных футболистов российской эпохи в пару столбцов. Нарочно сделал повторы в столбиках (иллюстрации кликабельны).

Столбики данных

Наша цель – найти повторы в столбцах Excel и выделить их цветом.

Шаг №1. Выделяем весь диапазон.

Шаг №2. Кликаем на раздел «Условное форматирование» в главной вкладке.

Повторяющиеся значения

Шаг №3. Наводим на пункт «Правила выделения ячеек» и в появившемся списке выбираем «Повторяющиеся значения».

Повторы данных

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

Нажмите «ОК», и вы обнаружите: одинаковые ячейки в двух столбиках теперь выделены! Как видите, это вопрос 30 секунд.

Как вычислить повторы при помощи сводных таблиц

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

Вернёмся к нашим баранам футболистам. Я оставил один столбик, добавив в него ячейки-дубли, а также дописал заглавную строку (это обязательно).

Столбик из имен футболистов

Далее делаем следующее:

Шаг 1. В ячейках напротив фамилий проставляем единички. Вот так:

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

Шаг 2. Переходим в раздел «Вставка» главного меню и в блоке «Таблицы» выбираем «Сводная таблица».

Пункт сводная таблица

Откроется окно «Создание сводной таблицы». Здесь нужно выбрать диапазон данных для анализа (1), указать, куда поместить отчёт (2) и нажать «ОК».

Поля сводной таблицы

Только не ставьте галку напротив «Добавить эти данные в модель данных». Иначе Эксель начнёт формировать модель, и это парализует ваш комп на пару минут минимум.

Шаг 3. Распределите поля сводной таблицы следующим образом: первое поле (в моём случае «Футболисты») – в область «Строки», второе («Значение2») – в область «Значения». Используйте обычное перетаскивание (drag-and-drop).

Перетаскиваем поля

Должно получиться так:

Строки и значения

Готовая сводная таблица

Этот метод «на бумаге» может выглядеть несколько замороченным, но уверяю: попробуете раз-два, набьёте руку, а потом все операции будете выполнять за минуту.

Заключение

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

Помогли ли тебе мои методы работы с данными? Или ты знаешь лучше? Поделись своим мнением в комментариях!

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

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

В нашем примере, в столбце D, текстовое значение «Тест» и число. Одно значение повторяется. Выделяем диапазон, в котором хотим найти дубликат.

В закладке Главная находим кнопку Условное форматирования (Рис. 1)

Как выделить (увидеть) повторяющиеся значение.

Нажимаем на нее. Появляется меню, в котором нам нужно выбрать пункт Создать правило (Рис. 2).

Как выделить (увидеть) повторяющиеся значение.

Нажимаем на этот пункт. Появляется диалоговое окно Создание правило форматирования, в котором выбираем тип правила – Форматировать только уникальные или повторяющиеся значения и в описание правила выбираем Повторяющиеся. Теперь нажимая Формат. На рисунке 3 красными стрелками указаны данные пункты.

Как выделить (увидеть) повторяющиеся значение.

Появляется диалоговое окно Формат ячеек, в котором можно выбрать, как будут выделены (отформатированы) ячейки с повторяющимися значениями. Число, Шрифт, Граница, Заливка. Выберем способ выделения ячеек с повторяющимися значениями с помощью заливки этих ячеек красным цветом. Выбираем закладку Заливка и в ней красный цвет (Рис 4). Красный цвет заливки ячейки будет очень заметен в таблице любого размера. Нажимаем Ок.

Повторяющиеся значение.

Окно Формат ячеек закрывается, появляется окно Создание правило форматирования. Тут тоже нажимаем Ок. Готово. Ячейки с повторяющимися значениями отформатировались красной заливкой (Рис. 5)

отформатировались красной заливкой

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

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