При анализе текстовых данных зачастую требуется удалить повторяющиеся слова в каждой строке. Иногда слова дублируются из-за машинных ошибок. Иногда повторы допускают люди. Но так или иначе — их нужно удалить.
Удалить повторяющиеся слова внутри ячейки
Прежде, чем удалять повторы слов, можно убедиться, что они есть в принципе, для этого в !SEMTools есть отдельный инструмент — найти повторяющиеся слова в ячейках. Если массив фраз большой (десятки-сотни тысяч строк), эта процедура будет заметно быстрее.
В стандартных функциях и процедурах Excel удаления дублирующихся слов в ячейках нет. Мысленно алгоритм довольно прост и понятен — нужно:
- разбить ячейку на слова,
- просматривать их по порядку,
- удалять слова, если они уже встречались в строке ранее.
Есть несколько онлайн-инструментов, позволяющих удалить повторы слов в строках, но что, если бы возможность была прямо под рукой? Именно такую возможность предоставляет надстройка !SEMTools.
С помощью надстройки удалить повторы слов в ячейках можно буквально в 2 клика. Процедура производит удаление повторяющихся слов независимо от регистра. Макрос находится на вкладке «УДАЛИТЬ» в меню «Удалить слова». Ниже — наглядная инструкция:

Как видно в демонстрации, помимо обычного удаления всех повторов, можно удалять повторы по условию:
- Только числа
- Только английские слова (определяются по латинице)
- Только русские слова (определяются по кириллице)
- Только слова, идущие подряд
Удалить повторяющиеся слова с учетом словоформ
Иногда повторами можно считать не только полностью совпадающие слова, но и другие формы тех же слов. Для того, чтобы произвести такое удаление, потребуется лемматизация слов, чтобы производить сравнение их лемм. Чтобы осуществить подобное, в !SEMTools Pro был подключен модуль морфологии, позволяющий делать много чудесных вещей, которые оригинальный Excel вряд ли когда-либо сможет:
- Удалять неявные дубли с учётом словоформ
- Склонять слова и фразы по падежам
- Производить лемматизацию
- Извлекать и удалять из текста определённые части речи
Перед запуском процедуры нужно скачать и открыть словарь лемм, он и используется для удаления повторов слов независимо от их словоформ. Из слов с одинаковой леммой остается слово, идущее в ячейке первым по порядку.
Макрос также работает независимо от регистра — здравый смысл подсказывает, что слово остается словом вне зависимости от регистра символов в нем. Однако, если есть кейсы, где необходим чувствительный к регистру поиск и удаление — можно обратиться к автору.

Удалить повторяющиеся слова в диапазоне, собрать уникальные, посчитать и вывести списком
Иногда, например, при семантическом анализе текста, удаление повторов слов нужно произвести не в каждой ячейке, а по всему диапазону ячеек. Помимо выделения уникальных слов, может быть интересно вычислить и количество уникальных слов в тексте. Здесь вам поможет раздел про составление частотного словаря n-gram.
Перед тем, как производить все указанные процедуры, рекомендуется удалить все знаки препинания из ячеек Excel, т.к. слово со знаком препинания для Excel — уже другое слово.
Удалить повторяющиеся слова во всем столбце
Если список заранее не известен, его можно составить, посчитав самые повторяющиеся слова в тексте. Если это короткие слова, есть риск повредить данные при обычной их замене на пустоту. Эту проблему решает макрос «Удалить слова из списка».
Если же нужно удалить внутри столбца все повторы, кроме первого, можно воспользоваться инструментом в группе SEO & PPC:
Нужно удалить повторяющиеся слова в Excel?
Надстройка !SEMToolsпоможет решить эту и сотни других рабочих задач за пару кликов!
Эта статья также доступна на EN