Удаление повторяющихся текстовых значений (Microsoft Excel)
Каждый в тот или иной момент сталкивается с необходимостью — удалить повторяющиеся записи из списка текстовых записей. Предположим, у вас есть текстовые значения в столбце 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 [Удаление повторяющихся текстовых значений]
.