Как удалить дубликаты внутри ячейки в Excel

Есть три способа найти и удалить дубликаты в ячейке Excel. Просто выберите тот, который лучше всего подходит для вас.

Когда дело касается удаления повторяющихся значений или строк, Microsoft Excel предлагает множество различных вариантов. Но когда дело доходит до удаления идентичного текста в данной ячейке, Excel… ничего не дает. Никаких инструментов, никаких функций, никаких формул, ничего. Помешает ли это нам достичь нашей цели? Ни в коем случае. Если в Excel нет нужной нам функции, давайте напишем свою 🙂

Как удалить повторяющиеся слова в ячейке Excel

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

Решение: пользовательская функция или макрос VBA.
Удалить дубликаты в ячейке Excel

Пользовательская функция для удаления дубликатов в ячейке

Чтобы устранить повторяющийся текст в ячейке, вы можете использовать следующую определяемую пользователем функцию (UDF) с именем УдалитьДупеВордс:

Функция RemoveDupeWords(текст как строка, необязательный разделитель) как строка = » «) как строка Dim словарь как объект Dim x, часть Установить словарь = CreateObject(«Scripting.Dictionary») Dictionary.CompareMode = vbTextCompare For Each x In Split(текст, разделитель ) часть = Обрезать(х) Если часть <> «» И Не словарь.Существует(часть) Тогда словарь.Добавить часть, Ничего Конец Если Далее Если словарь.Счетчик > 0 Тогда УдалитьДупеСлов = Присоединить(словарь.ключи, разделитель) Иначе УдалитьДупеСлова = «» Конец, если установить словарь = ничего Конец функции

Как вставить код функции в книгу

Чтобы добавить приведенный выше код в свой Excel, вам нужно сделать следующее:

  1. Нажмите Alt + F11, чтобы открыть редактор Visual Basic.
  2. На левой панели щелкните правой кнопкой мыши Эта рабочая тетрадь и выберите Вставлять > Модуль.
  3. Вставьте приведенный выше код в Код окно.

Дополнительные сведения см. в разделе Как вставить код VBA в Excel.

Синтаксис функции RemoveDupeWords

Наша недавно созданная функция для удаления повторяющегося текста в ячейке имеет следующий синтаксис:

RemoveDupeWords(текст, [delimiter])

Где:

  • Текст (обязательно) — строка или ячейка, из которой вы хотите удалить повторяющийся текст.
  • Разделитель (необязательно) — разделитель, которым отделяется повторяющийся текст. Если опущено, в качестве разделителя используется пробел.

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

Как использовать функцию RemoveDupeWords

Как только код функции будет добавлен в книгу, вы сможете использовать его в своих формулах так же, как вы используете встроенные функции Excel.

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

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

= Удалить повторяющиеся слова (A2, «,»)

В результате у вас будет список уникальных слов или подстрок, разделенных запятой и пробелом:
Удаление повторяющихся слов, разделенных запятой и пробелом

Если вы хотите получить список, разделенный запятыми, используйте только запятую для разделителя:

= Удалить повторяющиеся слова (A2, «,»)
Удаление повторяющихся слов, разделенных запятыми

Если ваши исходные данные разделены пробелом, второй аргумент должен быть » » или опущен:

= Удалить повторяющиеся слова (A2)
Удаление дубликатов внутри ячейки, разделенной пробелами

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

Макрос VBA для удаления повторяющегося текста из нескольких ячеек одновременно

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

Код макроса следующий:

Public Sub RemoveDupeWords2() Затемнение ячейки как диапазона для каждой ячейки в Application.Selection cell.Value = RemoveDupeWords(cell.Value, «,») Next End Sub

В приведенном выше коде разделителем является запятая и пробел. Чтобы использовать другой разделитель, замените «,» другим символом (символами) в этой строке кода:

cell.Value = RemoveDupeWords(cell.Value, «,»)

Примечание. Чтобы макрос работал, его код и Код функции RemoveDupeWords должны быть размещены на одном модуле.

Как использовать макрос

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

  1. Выберите диапазон ячеек, из которых вы хотите удалить повторяющийся текст.
  2. Нажмите Alt + F8, чтобы открыть макрос диалоговое окно.
  3. В списке макросов выберите УдалитьДупеВордс2.
  4. Нажмите Бежать.
    Макрос для удаления повторяющегося текста из всех ячеек в выбранном диапазоне

Дополнительные сведения см. в разделе Как запустить макрос в Excel.

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

Как удалить повторяющиеся символы в ячейке

Проблема: у вас есть несколько вхождений одного и того же символа в ячейке, в то время как каждая ячейка должна содержать только одно вхождение данного символа.

Решение: пользовательская функция или макрос VBA.
Удаление повторяющихся символов в ячейке

Пользовательская функция для удаления повторяющихся символов

Чтобы удалить повторяющиеся символы в ячейке, оставив только первые вхождения, вы можете использовать следующую определяемую пользователем функцию с именем УдалитьDupeChars:

Функция RemoveDupeChars(текст как строка) Как строка Затемнить словарь как объект Затемнить символ как строку Затемнить результат как строку Установить словарь = CreateObject(«Scripting.Dictionary») For i = 1 To Len(text) char = Mid(text, i, 1) ) Если не словарь.Существует(символ), то словарь.Добавить символ, Ничего результата = результат & char End If Next RemoveDupeChars = result Set Dictionary = Nothing End Function

Чтобы вставить код функции в книгу, шаги точно такие же, как и в предыдущем примере.

Синтаксис функции RemoveDupeChars

Синтаксис этой пользовательской функции максимально прост — требуется только один аргумент:

RemoveDupeChars(текст)

Где текст — это строка или ячейка, из которой вы хотите удалить повторяющиеся символы.

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

Как использовать функцию RemoveDupeChars

Все, что мы говорили о использование RemoveDupeWords верно для УдалитьDupeChars. Итак, не вдаваясь слишком в теорию, давайте сразу перейдем к примеру.

Чтобы удалить повторяющиеся символы из столбца A, начиная с A2, введите эту формулу в B2 и скопируйте ее вниз:

= Удалить повторяющиеся символы (A2)

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

Кончик. Если ваши символы отделены друг от друга каким-либо разделителем, таким как пробел, запятая или дефис, используйте УдалитьДупеВордс работать, как показано в предыдущем примере.

Макрос VBA для удаления одинаковых символов из ячейки

Нравиться УдалитьДупеВордс, УдалитьDupeChars Функция также может быть вызвана из макроса:

Public Sub RemoveDupeChars2() Затемните ячейку как диапазон для каждой ячейки в Application.Selection cell.Value = RemoveDupeChars(cell.Value) Next End Sub

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

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

Как использовать макрос

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

  1. Выберите диапазон ячеек, из которых вы хотите удалить повторяющиеся символы.
  2. Нажмите Alt + F8, чтобы открыть макрос диалоговое окно.
  3. В списке макросов выберите УдалитьDupeChars2.
  4. Нажмите Бежать.
    Макрос для удаления повторяющихся символов из каждой ячейки в выбранном диапазоне

Удалите повторяющиеся подстроки с помощью Ultimate Suite

В начале этого руководства упоминалось, что Microsoft Excel не имеет встроенной функции для удаления дубликатов в ячейке. Но наш Ultimate Suite делает это!

Вы можете найти его в Удаление дубликатов выпадающее меню на Данные об аблебитах вкладка, в Дедупликация группа. Если параметр «Удалить повторяющиеся подстроки» не отображается в вашем Excel, убедитесь, что у вас установлена ​​последняя версия Ultimate Suite (бесплатную пробную версию можно скачать здесь).
Инструмент удаления повторяющихся подстрок для Excel

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

  1. Выберите исходные данные и запустите Удалить повторяющиеся подстроки инструмент.
  2. Укажите разделитель.
  3. Определите, следует ли рассматривать последовательные разделители как один (по умолчанию).
  4. Выберите, следует ли выполнять поиск с учетом или без учета регистра.
  5. Щелкните Удалить.

Сделанный! Никакой возни с VBA или формулами, только быстрые и точные результаты.
Удаление дублированного текста в Excel без VBA

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

Вот как удалить повторяющийся текст в ячейке. Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!

Доступные загрузки

Примеры удаления дубликатов в ячейке (файл .xlsm)
Ultimate Suite 14-дневная полнофункциональная версия (файл .exe)

Вас также могут заинтересовать

Похожие записи

Добавить комментарий

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