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

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

Возможно, самый простой способ — выбрать данные, дубликаты которых вы хотите удалить, а затем отобразить вкладку «Данные» на ленте. Щелкните инструмент Удалить дубликаты в группе Инструменты для работы с данными. Excel отображает диалоговое окно «Удалить дубликаты».

Самое замечательное в диалоговом окне «Удалить дубликаты» состоит в том, что в нем перечислены имена каждого столбца в ваших данных. (Инструмент предполагает, что у вас есть заголовки в первой строке ваших данных.) Затем вы можете убедиться, что рядом с каждым столбцом, который вы хотите проверить на дублирование, стоит галочка. Когда вы нажимаете кнопку ОК, ваши данные анализируются, а повторяющиеся строки удаляются. (Опять же, дубликаты определяются на основе столбцов, выбранных в диалоговом окне «Удалить дубликаты».)

Использование фильтрации данных

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

Использование формулы

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

=IF(A2=A1,"Duplicate","")

Скопируйте формулу вниз во все ячейки в столбце B, которые имеют соответствующее значение в столбце A. Выделите все значения в столбце B и нажмите Ctrl + C. Используйте Специальную вставку, чтобы вставить только значения в те же выбранные ячейки. Теперь вы преобразовали формулы в их результаты.

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

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

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

Следующий макрос полагается на фильтрацию данных, как и предыдущий ручной метод:

Sub CreateUniqueList()

Dim rData As Range     Dim rTemp As Range

Set rData = Range(Range("a1"), Range("A1048576").End(xlUp))

rData.EntireColumn.Insert     Set rTemp = rData.Offset(0, -1)

rData.AdvancedFilter _         Action:=xlFilterCopy, _         CopyToRange:=rTemp, _         Unique:=True

rTemp.EntireColumn.Copy _         rData.EntireColumn     Application.CutCopyMode = False     rTemp.EntireColumn.Delete     Set rData = Nothing     Set rTemp = Nothing End Sub

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

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

Sub RemoveDups()

Dim rData As Range

Set rData = Range(Range("a1"), Range("A1048576").End(xlUp))

rData.RemoveDuplicates Columns:=Array(1), Header:=xlYes End Sub

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

rData.RemoveDuplicates Columns:=Array(1,4), Header:=xlYes

Другой подход, основанный на макросах, — это разработка собственного кода для проверки значений в наборе данных следующим образом:

Sub DelDups()

Dim rngSrc As Range     Dim NumRows As Integer     Dim ThisRow As Integer     Dim ThatRow As Integer     Dim ThisCol As Integer     Dim J As Integer, K As Integer

Application.ScreenUpdating = False     Set rngSrc = ActiveSheet.Range(ActiveWindow.Selection.Address)



NumRows = rngSrc.Rows.Count     ThisRow = rngSrc.Row     ThatRow = ThisRow + NumRows - 1     ThisCol = rngSrc.Column

'Start wiping out duplicates     For J = ThisRow To (ThatRow - 1)

If Cells(J, ThisCol) > "" Then             For K = (J + 1) To ThatRow                 If Cells(J, ThisCol) = Cells(K, ThisCol) Then                     Cells(K, ThisCol) = ""

End If             Next K         End If     Next J

'Remove cells that are empty     For J = ThatRow To ThisRow Step -1         If Cells(J, ThisCol) = "" Then             Cells(J, ThisCol).Delete xlShiftUp         End If     Next J     Application.ScreenUpdating = True End Sub

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

_Примечание: _

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

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (12711) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для более старого интерфейса меню Excel здесь:

link: / excel-Deleting_Duplicate_Text_Values ​​[Удаление повторяющихся текстовых значений].