Найти одинаковые слова в тексте excel

Данная процедура имеет исключительно простой алгоритм, который ищет внутри ячеек повторяющиеся слова. Если в ячейке есть слова, которые повторяются, она возвращает ИСТИНА, если повторяющихся слов нет — возвращает ЛОЖЬ. При этом повторяющимися словами являются исключительно полные совпадения слов.

Найти повторяющиеся слова в Excel

Что является словом? В понимании макроса им считается:

  1. Набор символов, отделённых пробелами друг от друга в середине строки;
  2. Набор символов в конце строки, отделённых пробелом слева;
  3. Набор символов в начале строки, отделённых пробелом справа.

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

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

Запуск производится через меню «Слова -> Повторяющиеся слова» в группе «ОБНАРУЖИТЬ».

Найти наиболее повторяющиеся слова в тексте

Если задача стоит не просто найти повторы, но обнаружить наиболее повторяющиеся слова в целом столбце текста, в таком случае потребуется провести частотный анализ n-грамм, что также доступно в Excel с !SEMTools. Поскольку наиболее востребована операция поиска n-грамм бывает у PPC- и SEO-специалистов, она находится в соответствующей группе инструментов. Ниже пример, иллюстрирующий поиск наиболее популярных слов в семантике этой статьи.

Читайте подробнее: Частотный анализ N-gram в Excel

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

Поиск и удаление повторений

Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Excel Starter 2010 Еще…Меньше

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

  1. Выберите ячейки, которые нужно проверить на наличие повторений.

    Примечание: В Excel не поддерживается выделение повторяющихся значений в области «Значения» отчета сводной таблицы.

  2. На вкладке Главная выберите Условное форматирование > Правила выделения ячеек > Повторяющиеся значения.

    Удаление дубликатов 1

  3. В поле рядом с оператором значения с выберите форматирование для применения к повторяющимся значениям и нажмите кнопку ОК.

    Удаление дубликатов 2

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

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

  1. Выделите диапазон ячеек с повторяющимися значениями, который нужно удалить.

  2. На вкладке Данные нажмите кнопку Удалить дубликаты и в разделе Столбцы установите или снимите флажки, соответствующие столбцам, в которых нужно удалить повторения.

    Удаление дубликатов 3

    Например, на данном листе в столбце «Январь» содержатся сведения о ценах, которые нужно сохранить.

    Выделенные повторяющиеся значения

    Поэтому флажок Январь в поле Удаление дубликатов нужно снять.

    Удаление дубликатов 5

  3. Нажмите кнопку ОК.

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

Дополнительные сведения

Подключитесь к эксперту. Учитесь у живых инструкторов.

Нужна дополнительная помощь?

При совместной работе с таблицами Excel или большом числе записей накапливаются дубли строк. Ста…

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

Как выделить повторяющиеся и одинаковые значения в Excel

Поиск
одинаковых значений в Excel

Выберем
одну из ячеек в таблице. Рассмотрим, как
в Экселе найти повторяющиеся значения,
равные содержимому ячейки, и выделить
их цветом.

На
рисунке – списки писателей. Алгоритм
действий следующий:

  • Выбрать
    ячейку I3
    с записью «С. А. Есенин».
  • Поставить
    задачу – выделить цветом ячейки с
    такими же записями.
  • Выделить
    область поисков.
  • Нажать
    вкладку «Главная».
  • Далее
    группа «Стили».
  • Затем
    «Условное форматирование»;
  • Нажать
    команду «Равно».

как в экселе найти одинаковые значения в столбце

  • Появится
    диалоговое окно:

excel как найти повторяющиеся значения в столбце

  • В
    левом поле указать ячейку с I2,
    в которой записано «С. А. Есенин».
  • В
    правом поле можно выбрать цвет шрифта.
  • Нажать
    «ОК».

В
таблицах отмечены цветом ячейки, значение
которых равно заданному.

как выделить повторяющиеся значения в excel разными цветами

Несложно
понять, как
в Экселе найти одинаковые значения в
столбце.
Просто выделить перед поиском нужную
область – конкретный столбец.

Ищем в таблицах Excel
все повторяющиеся значения

Отметим
все неуникальные записи в выделенной
области. Для этого нужно:

  • Зайти
    в группу «Стили».
  • Далее
    «Условное форматирование».
  • Теперь
    в выпадающем меню выбрать «Правила
    выделения ячеек».
  • Затем
    «Повторяющиеся значения».

как в excel сравнить два столбца и найти различия

  • Появится
    диалоговое окно:

как в экселе отфильтровать повторяющиеся значения

  • Нажать
    «ОК».

Программа
ищет повторения во всех столбцах.

как в excel найти повторяющиеся строки

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

Удаление одинаковых значений
из таблицы Excel

Способ
удаления неуникальных записей:

  1. Зайти
    во вкладку «Данные».
  2. Выделить
    столбец, в котором следует искать
    дублирующиеся строки.
  3. Опция
    «Удалить дубликаты».

Как выделить повторяющиеся и одинаковые значения в Excel

В
результате получаем список, в котором
каждое имя фигурирует только один раз.

Как выделить повторяющиеся и одинаковые значения в Excel

Список
с уникальными значениями:

Как выделить повторяющиеся и одинаковые значения в Excel

Расширенный фильтр: оставляем
только уникальные записи

Расширенный
фильтр – это инструмент для получения
упорядоченного списка с уникальными
записями.

  • Выбрать
    вкладку «Данные».
  • Перейти
    в раздел «Сортировка и фильтр».
  • Нажать
    команду «Дополнительно»:

Как выделить повторяющиеся и одинаковые значения в Excel

  • В
    появившемся диалоговом окне ставим
    флажок «Только уникальные записи».
  • Нажать
    «OK»
    – уникальный список готов.

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

Составим
список уникальных строк, не теряя данные
из других столбцов и не меняя исходную
таблицу. Для этого используем инструмент
Сводная таблица:

Вкладка
«Вставка».

Пункт
«Сводная таблица».

Как выделить повторяющиеся и одинаковые значения в Excel

В
диалоговом окне выбрать размещение
сводной таблицы на новом листе.

Как выделить повторяющиеся и одинаковые значения в Excel

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

Как выделить повторяющиеся и одинаковые значения в Excel

Получаем
упорядоченный список уникальных строк.

Дубликаты внутри ячейки

Про поиск и подсветку дубликатов в разных ячейках и диапазонах я уже не раз писал, но что делать если нужно найти и, возможно, удалить повторяющиеся слова внутри ячейки? Например, мы имеем вот такую таблицу с данными (разделителями могут быть не обязательно пробелы):

Исходные данные

Хорошо видно, что некоторые имена в списках внутри ячеек повторяются. Давайте посмотрим, что можно с этим сделать.

Способ 1. Ищем повторения: текст по столбцам и формула массива

Это не самый удобный и быстрый, но зато самый простой вариант решения задачи «на коленке». Выделим исходный список и разобъем его на столбцы по пробелам с помощью команды Данные — Текст по столбцам (Data — Text to columns). В открывшемся окне трёхшагового Мастера выберем формат По разделителю (By delimiter) на первом шаге и поставим флажок Пробел (Space) на втором:

Делим текст по пробелам

Если в исходных данных могут быть лишние пробелы, то лучше включить и опцию Считать последовательные разделители одним (Treat consecutive delimiters as one) — это избавит нас от лишних столбцов.

На третьем шаге в поле Поместить в зададим пустую ячейку рядом с таблицей, чтобы результаты не затёрли нам исходные данные и нажмём на Готово (Finish):

Выбираем место для вывода результатов

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

Формула подсчета количества повторов

В английской версии это будет =SUMPRODUCT(N(COUNTIF(B2:G2,B2:G2)>1))

Давайте разберём логику её работы на примере первой строки.

  1. Сначала мы с помощью формулы СЧЁТЕСЛИ(B2:G2;B2:G2) вычисляем по очереди количество вхождений каждого имени в диапазон B2:G2 и получаем на выходе массив {1,2,1,2,1}, т.к. Иван встречается в первой строке 1 раз, Елена — 2 раза, Сергей — 1 и т.д.
  2. Проверяем с помощью СЧЁТЕСЛИ(B2:G2;B2:G2)>1 какие из полученных чисел больше единицы, т.е. где у нас повторы. На выходе эта формула выдаст нам массив результатов проверки в виде {ЛОЖЬ, ИСТИНА, ЛОЖЬ, ИСТИНА, ЛОЖЬ}.
  3. Переводим логические значения ЛОЖЬ и ИСТИНА в более удобные для подсчета 0 и 1, соответственно, с помощью функции Ч. На выходе получаем массив {0,1,0,1,0}.
  4. Суммируем все элементы получившегося массива функцией СУММПРОИЗВ. Можно было бы использовать и обычную функцию СУММ, но тогда пришлось бы жать вместо привычного Enter сочетание клавиш Ctrl+Shift+Enter, чтобы ввести формулу как формулу массива.

По получившемуся столбцу можно легко отфильтровать строки с повторами и работать потом с ними дальше уже вручную.

Минусы такого способа, впрочем, весьма очевидны: при изменении в исходных данных придётся повторять всю процедуру заново, дубликаты не очень заметны и удалять их тоже надо врукопашную. Поэтому идём дальше.

Способ 2. Выделение цветом повторов внутри ячейки макросом

Если дубликаты нужно именно наглядно показать, то удобнее будет использовать для этого специальный макрос. Откроем редактор Visual Basic одноимённой кнопкой на вкладке Разработчик (Developer — Visual Basic) или сочетанием клавиш Alt+F11. Вставим в книгу новый пустой модуль через меню Insert — Module и скопируем туда вот такой код:

Sub Color_Duplicates()
    Dim col As New Collection
    Dim curpos As Integer, i As Integer
    On Error Resume Next

    For Each cell In Selection
        Set col = Nothing
        curpos = 1
        
        'убираем лишние пробелы и разбиваем текст из ячейки по пробелам
        arWords = Split(WorksheetFunction.Trim(cell.Value), " ")
        
        For i = LBound(arWords) To UBound(arWords)      'перебираем слова в получившемся массиве
            Err.Clear                                   'сбрасываем ошибки
            curpos = InStr(curpos, cell, arWords(i))    'позиция начала текущего слова
            col.Add arWords(i), arWords(i)              'пытаемся добавить текущее слово в коллекцию
            
            If Err.Number <> 0 Then         'если возникает ошибка - значит это повтор, выделяем красным
                cell.Characters(Start:=curpos, Length:=Len(arWords(i))).Font.ColorIndex = 3
                cell.Characters(Start:=InStr(1, cell, arWords(i)), Length:=Len(arWords(i))).Font.ColorIndex = 3
            End If
            curpos = curpos + Len(arWords(i))       'переходим к следующему слову
        Next i
    Next cell
End Sub

Теперь можно вернуться в главное окно Excel, выделить ячейки с текстом и запустить созданный макрос через кнопку Макросы на вкладке Разработчик (Developer — Macros) или сочетанием клавиш Alt+F8. Этот макрос проходит по всем выделенным ячейкам и помечает повторения красным цветом шрифта прямо внутри ячейки:

Выделение дубликатов внутри ячейки цветом

Если нужно, чтобы цветом выделялись только клоны, но не первые вхождения (т.е. только вторая и третья, но не первая Алиса, например), то достаточно будет просто убрать из кода строку 20.

Способ 3. Выводим повторы в соседний столбец

Если повторы внутри ячеек нужно не просто подсветить, а явным образом вывести, например, в соседний столбец, то удобнее будет использовать для этого макрофункцию, созданную по образу предыдущего макроса. Добавим в редакторе Visual Basic новый модуль и вставим туда код нашей функции GetDuplicates:

Function GetDuplicates(cell As Range) As String
    Dim col As New Collection
    Dim i As Integer, sDupes As String
    
    On Error Resume Next
    Set col = Nothing
        
    'делим текст в ячейке по пробелам
    arWords = Split(WorksheetFunction.Trim(cell.Value), " ")
        
    'проходим в цикле по всем получившимся словам
    For i = LBound(arWords) To UBound(arWords)
        Err.Clear                           'сбрасываем ошибки
        col.Add arWords(i), arWords(i)      'пробуем добавить слово в коллекцию
        'если ошибки не возникает, то это не повтор - добавляем слово к результату
        If Err.Number <> 0 Then sDupes = sDupes & " " & arWords(i)
    Next i
    GetDuplicates = Trim(sDupes)      'выводим результаты
End Function

Эта функция, как легко догадаться, принимает в качестве единственного аргумента ячейку с текстом и выводит в качестве результата все повторы, которые там найдет:

Макрофункция для выявления повторов внутри ячейки

Способ 4. Удаление повторов внутри ячейки макросом

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

Sub Delete_Duplicates()
    Dim col As New Collection
    Dim i As Integer
    On Error Resume Next

    For Each cell In Selection
        Set col = Nothing
        sResult = ""
        
        'делим текст в ячейке по пробелам
        arWords = Split(WorksheetFunction.Trim(cell.Value), " ")
        
        'проходим в цикле по всем получившимся словам
        For i = LBound(arWords) To UBound(arWords)
            Err.Clear                           'сбрасываем ошибки
            col.Add arWords(i), arWords(i)      'пробуем добавить слово в коллекцию
            'если ошибки не возникает, то это не повтор - добавляем слово к результату
            If Err.Number = 0 Then sResult = sResult & " " & arWords(i)
        Next i
        cell.Value = Trim(sResult)      'выводим результаты без повторов
    Next cell
End Sub

Способ 5. Удаление повторов внутри ячейки через Power Query

Этот способ использует бесплатную надстройку Excel для обработки данных под названием Power Query. Для Excel 2010-2013 скачать её можно с сайта Microsoft, а в Excel 2016-2019 она уже встроена по умолчанию. Огромным плюсом этого варианта является возможность автоматического обновления — если в будущем исходные данные изменятся, то нам не придется заново проделывать всю обработку (как в Способе 1) или запускать макрос (как в Способе 4) — достаточно будет просто обновить созданный запрос.

Сначала наши данные нужно загрузить в Power Query. Проще всего для этого превратить нашу таблицу в «умную» сочетанием клавиш Ctrl+T или кнопкой Форматировать как таблицу на вкладке Главная (Home — Format as Table), а затем нажать кнопку Из таблицы/диапазона (From table/range) на вкладке Power Query (если у вас Excel 2010-2013) или на вкладке Данные (если у вас Excel 2016 или новее):

Загружаем таблицу в Power Query

Поверх окна Excel откроется окно редактора запросов Power Query с загруженными туда нашими данными:

Окно Power Query

Дальше делаем следующую цепочку действий:

Удаляем ненужный пока шаг Измененный тип (Changed Type) справа в панели применённых шагов с помощью крестика слева от шага.

Чтобы можно было потом идентифицировать принадлежность каждого имени к исходной строке — добавляем столбец с нумерацией строк на вкладке Добавление столбца — Столбец индекса — От 1 (Add Column — Index Column — From 1):

Добавляем столбец индекса

Выделяем столбец с именами и жмём на вкладке Преобразование — Разделить столбец — По разделителю (Transform — Split Column — By delimiter), а в открывшемся окне выбираем деление по каждому пробелу и — главное — деление на строки, а не на столбцы в расширенных параметрах:

Делим на строки по пробелу

После нажатия на ОК увидим следующее:

Разделенный текст

Теперь выделяем оба столбца (удерживая клавишу Ctrl или Shift) и удаляем дубликаты через Главная — Удалить строки — Удалить дубликаты (Home — Remove Rows — Remove Duplicates).

Осталось собрать всё обратно в ячейки :)   Для этого выделим столбец Индекс и используем команду Группировать по на вкладке Преобразование (Transform — Group By) со следующими параметрами:

Группируем

После нажатия на ОК наши имена сгруппируются во вложенные таблицы, имитирующие начальные ячейки — только уже без повторов. Увидеть содержимое свёрнутых таблиц можно, если щёлкнуть мышью в фон ячейки рядом со словом Table (но не в слово Table!):

Свернутые в таблицы исходные имена без повторов

Осталось вытащить все имена из первой колонки каждой таблицы и склеить их через пробел. Это можно сделать с помощью небольшой формулы на встроенном в Power Query языке М. Выберем на вкладке Добавление столбца команду Настраиваемый столбец (Add Column — Custom Column) и введём в открывшееся окно имя нового столбца и формулу (с соблюдением регистра!):

Извлекаем имена и склеиваем через пробел

=Text.Combine([Ячейки][Имена],» «)

Здесь выражение [Ячейки][Имена] извлекает содержимое столбца Имена из каждой таблицы в колонке Ячейки, а функция Text.Combine склеивает затем их все через заданный разделитель (пробел). После нажатия на ОК мы, наконец, увидим желаемое:

Развернутые списки

Осталось удалить ненужные более столбцы Индекс и Ячейки, щелкнув по их заголовкам правой кнопкой мыши и выбрав команду Удалить столбцы (Remove Columns) и выгрузить результаты на лист через Главная — Закрыть и загрузить — Закрыть и загрузить в (Home — Close & Load — Close & Load to..):

Результаты

Задача решена! Если в будущем данные в исходной «умной» таблице изменятся или к ней будут дописаны новые строки, то достаточно будет просто обновить запрос, щёлкнув по результирующей зелёной таблице правой кнопкой мыши и выбрав команду Обновить или нажав сочетание клавиш Ctrl+Alt+F5.

Ссылки по теме

  • Как найти и вывести отличия в двух списках в Excel
  • Как подсветить совпадающие пары дубликатов одинаковым цветом
  • Сравнение двух таблиц с помощью ВПР, сводной или Power Query

-6 / 2 / 0

Регистрация: 26.09.2014

Сообщений: 274

1

Поиск одинаковых слов

17.07.2015, 13:23. Показов 13395. Ответов 5


Студворк — интернет-сервис помощи студентам

нужно в столбце B найти одинаковые выражения состоящие из нескольких слов. В общем полностью одинаковые. Ну ли хотя бы 1 или 2 слова одинаковые, если нельзя полностью найти одинаковые.
на данный момент в столбце B есть одинаковые выражения: KALJU — TALLINNA INFONET
Это маленький список, для примера. У меня громадный список. И часто попадаются одинаковые. И их нужно найти, ну соответственно удалить
Пример прикрепил



0



5942 / 3154 / 698

Регистрация: 23.11.2010

Сообщений: 10,524

17.07.2015, 13:36

2

Для начала Данные — Удалить дубликаты



0



-6 / 2 / 0

Регистрация: 26.09.2014

Сообщений: 274

17.07.2015, 13:51

 [ТС]

3

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



0



5942 / 3154 / 698

Регистрация: 23.11.2010

Сообщений: 10,524

17.07.2015, 13:53

4

О сколько нюансов сразу)))
Условным форматированием выделите повторяющиеся



1



-6 / 2 / 0

Регистрация: 26.09.2014

Сообщений: 274

17.07.2015, 13:56

 [ТС]

5

а как? не могли бы сделать это? а я уже на этом примере сделаю у себя



0



5942 / 3154 / 698

Регистрация: 23.11.2010

Сообщений: 10,524

17.07.2015, 14:13

6

Лучший ответ Сообщение было отмечено Erolim как решение

Решение

Главная — Условное форматирование — Правила выделения — Повторяющиеся значения



0



Понравилась статья? Поделить с друзьями:
  • Найти одинаковые значения в столбцах excel впр
  • Найти одинаковые значения в столбцах excel в разных таблицах
  • Найти одинаковые значения в соседних ячейках excel
  • Найти одинаковые значения в двух массивах excel
  • Найти одинаковые данные с excel столбец