Как удалить повторяющиеся символы или слова в строке ячейки Excel?
При работе с данными в Excel часто возникают ситуации, когда ячейки содержат повторяющиеся символы или дублирующиеся слова. Например, у вас могут быть данные, введенные пользователями, экспортированные логи или коды продуктов, в которых символы или слова могут встречаться несколько раз. Удаление этих дубликатов может помочь очистить данные для дальнейшего анализа, улучшить читаемость или подготовить строки для использования в других системах.
В этом руководстве представлено несколько методов удаления повторяющихся символов или слов в одной ячейке. Вы можете выбрать наиболее подходящее решение на основе версии Excel, вашего технического комфорта и типа разделителя, используемого в ваших данных. Будь то отдельные символы или целые слова, разделенные пробелами или знаками препинания, ниже вы найдете практический подход, который можно использовать.
- Удаление повторяющихся символов или слов с использованием формул Excel (динамические массивы)
- Удаление повторяющихся символов текстовой строки с помощью пользовательской функции
- Удаление повторяющихся слов, разделенных знаками препинания, с помощью пользовательской функции
Удаление повторяющихся символов или слов с использованием формул Excel (динамические массивы)
Если вы используете Microsoft 365 или Excel 2021 и выше, вы можете воспользоваться формулами динамических массивов для удаления повторяющихся символов или слов из ячейки — полностью без VBA. Эти функции, такие как TEXTSPLIT, UNIQUE, TEXTJOIN и MID, позволяют легко разделять, удалять дубликаты и реконструировать строку прямо на вашем листе.
Этот метод особенно рекомендуется, если вы предпочитаете не использовать макросы, хотите эффективное решение и чувствуете себя комфортно с новейшими функциями формул в Excel.
Преимущества: Мгновенно пересчитывается при изменении исходных данных, не требует включения макросов или специальных разрешений, формулу можно легко применять к большим диапазонам данных.
Недостатки: Работает только в Excel для Microsoft 365, Excel 2021 или новее (не работает в Excel 2019 или ранее).
Чтобы удалить повторяющиеся символы внутри ячейки (например, "банан" → "бан"):
1. Выберите ячейку, где вы хотите отобразить результат (например, ячейку B2 рядом с исходной ячейкой A2), и введите следующую формулу:
=TEXTJOIN("",,UNIQUE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)))
Эта формула разделяет содержимое A2 на отдельные символы с помощью MID, генерирует последовательные позиции с помощью ROW(INDIRECT(...)), извлекает уникальные символы с помощью UNIQUE и затем объединяет их обратно в текстовую строку с помощью TEXTJOIN.
2. Нажмите Enter. Результат формулы покажет строку в A2 с удаленными повторяющимися символами, порядок сохранится. Чтобы применить ту же операцию для других строк, используйте маркер заполнения, чтобы скопировать формулу вниз по мере необходимости.
Примечание: Если вы видите ошибку #ИМЯ?, возможно, ваша версия Excel не поддерживает эти функции. Проверьте, что вы используете Excel для Microsoft 365 или Excel 2021 или новее.
Устранение неполадок: Иногда дополнительные пробелы или знаки препинания могут мешать результатам. Рассмотрите возможность использования TRIM или TEXTSPLIT с дополнительными аргументами, если ваши данные не имеют постоянного формата.
Использование формул динамических массивов помогает сделать ваш рабочий процесс более эффективным и актуальным, а также упрощает задачи очистки данных как для простых, так и для сложных шаблонов строк.
Удаление повторяющихся символов текстовой строки с помощью пользовательской функции
Если у вас есть диапазон ячеек, содержащих текстовые строки, и вам нужно удалить повторяющиеся символы из каждой ячейки — например, превратить "aabbcc" в "abc", как показано ниже, — пользовательская функция VBA может помочь вам быстро выполнить эту задачу, особенно если ваша версия Excel не поддерживает расширенные формулы массивов.
1. Нажмите и удерживайте клавиши ALT + F11, чтобы открыть окно Microsoft Visual Basic для приложений.
2. Нажмите Вставить > Модуль и вставьте следующий код в окно модуля. Убедитесь, что код добавлен в начало модуля, чтобы избежать конфликтов с другими макросами, которые у вас могут быть.
Код VBA: Удаление повторяющихся символов текстовой строки в ячейке
Function RemoveDupes1(pWorkRng As Range) As String
'Updateby Extendoffice
Dim xValue As String
Dim xChar As String
Dim xOutValue As String
Set xDic = CreateObject("Scripting.Dictionary")
xValue = pWorkRng.Value
For i = 1 To VBA.Len(xValue)
xChar = VBA.Mid(xValue, i, 1)
If xDic.Exists(xChar) Then
Else
xDic(xChar) = ""
xOutValue = xOutValue & xChar
End If
Next
RemoveDupes1 = xOutValue
End Function
3. После сохранения и закрытия окна кода VBA вернитесь к своему листу. Введите эту формулу =removedupes1(A2) в пустой ячейке рядом с вашим исходным текстом (здесь A2 — это ячейка, содержащая строку, которую вы хотите обработать). См. иллюстрацию ниже:
4. Нажмите Enter для расчета результата. Перетащите маркер заполнения вниз, чтобы применить функцию ко всем другим соответствующим ячейкам в столбце, и вы увидите, что все повторяющиеся символы будут немедленно удалены из каждой соответствующей ячейки.
Совет: Порядок появления сохраняется — функция сохраняет первое появление каждого символа и удаляет последующие дубликаты внутри ячейки.
Предупреждение: Пользовательские функции (UDF), добавленные через VBA, доступны только в книге, где хранится код. Если вы перемещаете или делитесь своей книгой, убедитесь, что макрос включен или повторно вставлен в целевой файл. Также для работы кода необходимо включить макросы.

Раскройте магию Excel с Kutools AI
- Умное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это посредством простых команд.
- Пользовательские формулы: Создавайте индивидуальные формулы для оптимизации ваших рабочих процессов.
- Кодирование VBA: Пишите и внедряйте код VBA без особых усилий.
- Интерпретация формул: Легко разбирайтесь в сложных формулах.
- Перевод текста: Преодолейте языковые барьеры в ваших таблицах.
Удаление повторяющихся слов, разделенных знаками препинания, с помощью пользовательской функции
В ситуациях, когда ваши данные состоят из слов, разделенных знаками препинания — таких как запятые, точки с запятой или другие символы — вы можете захотеть удалить повторяющиеся слова внутри каждой ячейки, сохраняя только первое вхождение каждого слова. Это особенно полезно для списков тегов, категорий или адресов. Вы можете эффективно выполнить эту задачу с помощью настроенной функции VBA.
1. Нажмите и удерживайте клавиши ALT + F11, чтобы открыть окно Microsoft Visual Basic для приложений.
2. Нажмите Вставить > Модуль и вставьте следующий код в окно модуля. Разместите код в начале нового модуля, если возможно, для ясности.
Код VBA: Удаление повторяющихся слов, разделенных знаками препинания, в ячейке
Function RemoveDupes2(txt As String, Optional delim As String = " ") As String
Dim x
'Updateby Extendoffice
With CreateObject("Scripting.Dictionary")
.CompareMode = vbTextCompare
For Each x In Split(txt, delim)
If Trim(x) <> "" And Not .exists(Trim(x)) Then .Add Trim(x), Nothing
Next
If .Count > 0 Then RemoveDupes2 = Join(.keys, delim)
End With
End Function
3. После сохранения и закрытия окна VBA вернитесь к своему листу. В пустом столбце рядом с вашими данными введите эту формулу: =RemoveDupes2(A2,","). Здесь A2 ссылается на вашу целевую ячейку, а "," указывает знак препинания, используемый в качестве разделителя. Вы можете заменить эту запятую на другой символ (например, ";" или пробел), если ваши слова разделены другим знаком препинания.
4. Нажмите Enter для подтверждения, затем перетащите формулу вниз, чтобы заполнить другие ячейки по мере необходимости. После этого шага все повторяющиеся слова будут удалены из соответствующих ячеек, оставляя уникальные слова в исходном порядке. См. результат ниже:
Примечание: В формуле вы можете изменить как ссылку на ячейку, так и разделитель знаков препинания в соответствии с вашими данными. Если используются несколько символов или различные типы разделителей (например, пробел и запятая вместе), может потребоваться дополнительная настройка кода.
Совет: Как и со всеми макросами VBA, помните сохранить резервную копию вашей книги и включить макросы для использования этой функции.
Лучшие инструменты для повышения продуктивности в Office
Повысьте свои навыки работы в Excel с помощью Kutools для Excel и ощутите эффективность на новом уровне. Kutools для Excel предлагает более300 расширенных функций для повышения производительности и экономии времени. Нажмите здесь, чтобы выбрать функцию, которая вам нужнее всего...
Office Tab добавляет вкладки в Office и делает вашу работу намного проще
- Включите режим вкладок для редактирования и чтения в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна вместо новых отдельных окон.
- Увеличьте свою продуктивность на50% и уменьшите количество щелчков мышью на сотни ежедневно!
Все надстройки Kutools. Один установщик
Пакет Kutools for Office включает надстройки для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro — идеально для команд, работающих в разных приложениях Office.





- Комплексный набор — надстройки для Excel, Word, Outlook и PowerPoint плюс Office Tab Pro
- Один установщик, одна лицензия — настройка занимает считанные минуты (MSI-совместимо)
- Совместная работа — максимальная эффективность между приложениями Office
- 30-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
- Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек