Страницы: 1
RSS
Поиск одинаковых слов в строках
 
Нужно найти повторяющиеся слова в строках. Например:

как найти нужный текст
нужный текст легко найти
это нужный нам текст
этот нужный текст русский
где нужный текст

результатом поиска должно быть: "нужный текст"

Можно ли как то решить эту задачу?
 
В цикле проверять наличие каждого слова в каждой ячейке. Если есть во всех, то оно наше.
Формулами при таких скудных условиях - вряд ли.
 
Задача усложняется тем, что нужно искать не ОДНО слово, а группу (предложение).
 
Юра, split и найденное слово искать в паре с соседним. Я быстро не напишу...
 
А если будет три/четыре совпадающих? И вообще тут нужен автор: тема "Поиск одинаковых слов в строках", а получается, что не совсем так.
 
=ПСТР(E6;НАЙТИ("нужный текст";E6);12)

"это нужный нам текст" не определит
Изменено: Rustem Haziev - 18.02.2013 23:50:39
Excel 2013
 
А "нужный текст" Вы глазами определили?  :)
 
Мысли вслух...
1. Собираем словарь слов, каждому коллекцию номеров строк, где это слово встречается (или просто в Item считаем количество строк)
2. Перебираем словарь, у каких слов в коллекции все строки (или смотрим количество) - те есть во всех строках :)

Если собирать номера строк - их затем можно отсортировать, собрать в строку, и уже эти строки собирать в словарь, и к ним в Item собирать слова.
Так можно сгруппировать слова, которые всегда встречаются в одинаковых строках.
 
Вот например так:
Код
Sub tt()
    Dim a(), i&, el
    a = [a1].CurrentRegion.Value
    With CreateObject("scripting.dictionary")
        For i = 1 To UBound(a)
            For Each el In Split(a(i, 1))
                .Item(el) = .Item(el) + 1
            Next
        Next
        For Each el In .keys
            If .Item(el) = UBound(a) Then MsgBox el
        Next
    End With
End Sub

Только если брать текст из поста - сперва нужно его очистить от всякого мусора по концам строк... :(
 
Мусор по концам строк это какой?  :)

Юрий М, вы правы, неправильно сформулировал задачу. Одинаковых слов может быть и три и четыре. В моем конкретном случае редко больше четырех. А бывает, что общих слов не оказывается. Сейчас приходится глазами смотреть.

Надеялся, что есть какой-то функционал в Excel о котором я не знаю.
 
Мусор - это пробелы, которые не пробелы :)
Т.е. если закинуть на лист текст из поста - то код будет врать, если эти пробелы не убрать.
Вернее врать не будет - просто не все слова, одинаковые с виду, будут одинаковы на самом деле.
 
Друзья, мои поиски были вознаграждены.
Нашел бесплатную англоязычную надстройку http://nielsbosma.se/projects/seotools/download/
она делает то, что надо
Меню SeoTools -> Content -> Fint DuplicateContent
Будет здорово, если эта информация еще кому-нибудь пригодится!
 
Цитата
donoway пишет: ... Сейчас приходится...
Играть в "Угадай-ку": сколько слов, какие, в строгой последовательности или хаотично?..  А что если два разных сочетания есть в одной ячейке/предложении?..
ps Опыт форума - пример в студию с реальной структурой и форматами данных, а к нему пояснение из чего какую хочуху как желательно получить... ;)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
Страницы: 1
Читают тему
Наверх