Страницы: 1
RSS
Найти и выделить в столобце Excel повторяющиеся слова, не зная какие слова повторяются
 
Уважаемые форумчане , нужна ваша помощь.
На листе Excel есть очень длинный список слов или их сочетаний. Что-то вроде:
Иванов И.И.
Петров
И.и.Иванов
Сидоров
Иван иванов
Господин Иванов
Андреев
и т.п.

Можно заметить, что часто повторяется Иванов. НО слово "Иванов" может стоять первым, может быть вторым, т.е. без чёткой позиции в ячейке + когда список из нескольких сотен строк нереально заметить, что повторяется именно "Иванов", т.е. повторяющееся слово заранее неизвестно, поэтому функция "Найти" , "Условное форматирование для повторяющихся значений" и "удаление дубликатов" не подходят.
Задача в том, чтобы найти одинаковые (в очень идеальном идеале однокоренные) слова и выделять ячейки с ними.

P.s. к сожалению с функциями экселя знаком на довольно базовом уровне, поэтому просьба объяснять смысл идей чуть подробней.
Заранее спасибо за любые идеи.
Изменено: Fisher47 - 19.01.2013 18:01:36
 
и всех "господинов" - тоже считать "одинаковыми"?..
если вы перечитаете свой пост - вы поймёте, что это так  :D
Цитата
Fisher47 пишет: Задача в том, чтобы...
не-а
первая задача в том, чтобы правильно сформулировать задачу.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Цитата
и всех "господинов" - тоже считать "одинаковыми"?..
если вы перечитаете свой пост - вы поймёте, что это так  :D  
насчёт этого не подумал, что и "господин иванов"и "господин сидоров" выделятся из-за слова "господин"  :oops:  
с другой стороны с помощью "найти и заменить" заранее могу удалить такие часто повторяющиеся "слова-пустышки" типа господин, мистер и т.п.

Наверно тогда было бы лучше ставить задачей, чтобы выделялось повторяющееся слово - мне бы по смыслу было понятно обратить на ячейку внимание или нет, т.е. выделилось только слово "господин" - мне это не важно, выделилось "Иванов" - ага, стоит воспользоваться поиском и найти где ещё один Иванов.
 
хорошо.
с "господинами", можно сказать, разобрались.
к слову: выделение отдельных символов (или слов) разным цветами - гораздо более долгая задача.

ещё вопрос:
в списке будут: "иванов", написанный "по-разному", "сидоров", "петров" и т.д.
их выделять разными цветами?
а цветов-то хватит?  :)  

может быть, лучше отказаться от разноцветной разукрашки?
и формировать какой либо список (списки) в отдельном месте?
который(ые) будет легко подправить и использовать - например, для замены всех вариантов одним.
ну например:
получим два списка
"иванов", "Иванов", "Иванов И.И.", "Иванов Г.П.", "Иванов Иван", "Петрова Клавдия Ивановна"..
"Сидор", "Сидоров", "Сидорчук", "Сидоренко", "Сидоров И.И.", "И.И. Сидорчук",..

вообще - что дальше-то?..

пс. имхо - только макросом. и довольно непростым макросом.
Изменено: ikki - 19.01.2013 18:57:09
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
разноцветность - это конечно необязательно (В списке есть достаточно 100% неповторяющихся слов, поэтому если использовать один цвет заливки ячейки, то повторы будут явно выделяться. поэтому даже выделение всей ячейки, а не отдельного слова в ней, не принесёт много проблем ). ещё хочу добавить ,что можно обойтись и без поиска однокоренных слов, т.е. если есть Иванов и Иванович, то это действительно разные слова и к ним вопросов нет.
 
пробуем первый вариант:
с листа запускаем макрос test

PS в принципе, список слов-исключений (ака "мусор") можно включить в макрос.
но надо ещё подумать.
Изменено: ikki - 19.01.2013 20:10:12
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Вставил длинный список  для теста: то что не выделилось - действительно оказалось неповторяющимся словом/сочетанием, а вот среди подсвеченных слов попадались и те, которые на самом деле тоже являются "уникальными" значениями. В любом случае впечатлило :) для тестовой версии очень даже неплохо
 
Цитата
Fisher47 пишет:
Вставил длинный списокдля теста
секретный? список-то?
от вас - примеры того, что сработало не так как надо и рядышком - как надо и почему.
иначе второй версии не будет
:D
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
секретный конешн, нигде не найти  ;)  
взял около сотни крупных компаний по версии forbes и под сотенку от expert.
проверил нарандом десяток тех, что не выделены - действительно не повторяются.
а вот, например, РЖД выделена как повтор , а ctrl + F говорит об обратном. (также как ненастоящие повторы заметил 1С, "Руст инк" ;) . Или "Руст инк" признан повтором из-за того, что есть "Корпорация Инком" ?
 
Цитата
Fisher47 пишет:
например, РЖД выделена как повтор , а ctrl + F говорит об обратном. (также как ненастоящие повторы заметил 1С, "Руст инк"). Или "Руст инк" признан повтором из-за того, что есть "Корпорация Инком"?
заходим в макрос, изменяем значение константы nMin на 2 или 1, запускаем макрос.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
а вообще-то применять макрос, разработанный для списка фамилий, к списку компаний - это отдельное извращение  :D
там и с кавычками свои заморочки, и с сокращениями, и с организационными формами (ОАО, ЗАО)...

надо думать, прежде чем "рисовать пример", ага  ;)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
да наверно стоило сразу привести пример с компаниями  :oops:  
вобщем, потестил с другими значениями константы - впринципе норм. Убрал всякие лишние слова(типа компания, группа, банк и т.п.) - ошибочно выделеных ячеек - минимум, восновном  корректно.в понедельник проведу тест на рабочем варианте.
Спасибо огромное за оперативную помощь!
Страницы: 1
Читают тему
Наверх