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

Удалить повторяющиеся слова во всем столбце

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

Если же нужно удалить внутри столбца все повторы, кроме первого, можно воспользоваться инструментом в группе SEO & PPC:

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

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

В стандартных функциях и процедурах Excel удаления дублирующихся слов в ячейках нет. Мысленно алгоритм довольно прост и понятен — нужно:
1. разбить ячейку на слова,
2. просматривать их по порядку,
3. удалять слова, если они уже встречались в строке ранее.

Есть несколько онлайн-инструментов, позволяющих удалить повторы слов в строках, но что, если бы возможность была прямо под рукой? Именно такую возможность предоставляет надстройка !SEMTools.

С помощью надстройки удалить повторы слов в ячейках можно буквально в 2 клика. Процедура производит удаление повторяющихся слов независимо от регистра. Макрос находится на вкладке «УДАЛИТЬ» в меню «Удалить слова«. Ниже — наглядная инструкция:

удалить повторяющиеся слова в ячейке
Удалить повторяющиеся слова в ячейках диапазона — точно совпадающие слова

Удалить повторяющиеся слова с учетом словоформ

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

Макрос также работает независимо от регистра — здравый смысл подсказывает, что слово остается словом вне зависимости от регистра символов в нем. Однако, если есть кейсы, где необходим чувствительный к регистру поиск и удаление — можно обратиться к автору.

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

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

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

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