Подсчет одинаковых слов
Подсчитывает количество одинаковых слов в тексте. Может удалять повторяющиеся слова, выдает общее количество слов и количество уникальных слов.
По запросу повторяющиеся слова публикуем калькулятор, вычисляющий количество повторяющихся слов. Калькулятор считает общее количество слов, количество уникальных слов (количество слов за вычетом всех повторов), также выводит текст с указанием количества слов и имеет возможность удалять все повторяющиеся слова из оригинального текста.
Как в ворде найти повторяющиеся слова
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.
Сообщения: 58
Благодарности: 1
Цитата Iska:
_самых честных — 2 шт самых честных — 3 шт самых честных — 3 шт самых честных — 3 шт самых честных_ — 2 шт »
Как вариант — так как вы отметили, но я бы предпочел, чтоб программа блокировала проверку внутри первого набора найденный дубликатов.
Или же подобные коллизии должны разруливаться на уровне настроек (учитывать/НЕучитывать пробелы или знаки конца абзаца, конца строки и т.п.; искать/НЕискать внутри найденных дубликатов; расширять/НЕрасширять выделение дубликатов на всю строку, характерную для совпадений (в моем примере до «самых честных» — опять-таки включать здесь или не включать пробел в выделение — настраивать опционально).
Последний раз редактировалось sl.oleg@fb, 20-11-2016 в 16:24 .
Сообщения: 27449
Благодарности: 8086
Цитата sl.oleg@fb:
| Как вариант — так как вы отметили, но я бы предпочел, чтоб программа блокировала проверку внутри первого набора найденный дубликатов. » |
Угу. Вот только опять-таки, имейте в виду: первым найденным будет не то, что Вы указали — «самых чест», а «пробелсамых чес».
Цитата sl.oleg@fb:
| Или же подобные коллизии должны разруливаться на уровне настроек (учитывать/НЕучитывать пробелы или знаки конца абзаца, конца строки и т.п.; искать/НЕискать внутри найденных дубликатов; расширять/НЕрасширять выделение дубликатов на всю строку, характерную для совпадений (в моем примере до «самых честных» — опять-таки включать здесь или не включать пробел в выделение — настраивать опционально). » |
Может, Вы расскажете, для каких целей сие Вам вообще потребно?
Сообщения: 58
Благодарности: 1
Цитата Iska:
Может, Вы расскажете, для каких целей сие Вам вообще потребно? »
Есть некий документ, в котором довольно неструктурно и хаосно хранятся текстовые данные, ну (для примера) кулинарные рецепты. В этот документ добавляли всяко-разно без какой-либо систематизации, т.о. рецепт «Салат оливье» может входить и два и три раза. Причем, как я писал, данные хранятся безсистемно и может быть ситуация, когда описание следующего рецепта идет не с новой строки, поэтому отсортировать строки в Excel, а потом удалить дубли его инструментами — не вариант. К тому же т.к. описания текстовые, то внутри одного рецепта может быть несколько абзацев, а значит один рецепт будет представлен несколькими строками (с точки зренеия электронных таблиц) и при этом программно определить где заканчивается один рецепт и начинается другой — невозможно — только по контексту.
Задача: почистить данный документ, удалив из него дубликаты. Чистить будем ручками, но дубли надо найти автоматически, т.к. перебирать ВСЕ названия рецептов «руками» — очень долго и хотелось бы хотя бы частично этот процесс автоматизировать. Условимся, что сами названия рецептов (целевой контекст) у нас довольно длинные и не будут конфликтовать с, например, ингредиентами рецептов, которые могут повторяться от рецепта к рецепту (потому что эти ингредиенты гораздо короче названий рецептов и будут отсеяны за счет минимальной длины строки поиска).
Последний раз редактировалось sl.oleg@fb, 20-11-2016 в 17:01 .
Сообщения: 16821
Благодарности: 3244
| Конфигурация компьютера | |
| Процессор: 11th Gen Intel(R) Core(TM) i7-1165G7 | |
| Память: 16 гб | |
| Видеокарта: Intel(R) Iris(R) Xe Graphics | |
| Звук: Realtek High Definition Audio(SST) | |
| Монитор: 15,6″ | |
| Ноутбук/нетбук: LENOVO ThinkBook 15 G2 ITL | |
| ОС: Windows 11 — 64 Pro |
sl.oleg@fb, почему рубрику для названия темы вы выбрали «Разное», хотя наверняка работаете в определенной версии Word? Если она выше 2007, то при нажатии Ctrl+F слева появляется навигационная панель с результатами поиска. С ее помощью отыскать нужные фрагменты не представляет труда. Ну а удалять дубликаты, уж извольте, ручками.
Сообщения: 58
Благодарности: 1
Цитата okshef:
Ctrl+F слева появляется навигационная панель с результатами поиска. С ее помощью отыскать нужные фрагменты не представляет труда. »
Что именно вы советуете вводить в строку поиска после Ctrl-F ? Вам известно какие именно строки дублированы? И мне нет. Тогда что ж — перебирать все вручную, со сдвигом строки поиска на один символ при каждом последующем поиске? Для файла размером в 1 МБ (а у меня файлы поболе гораздо) нужно осуществить этих поисков около одного миллиона, при затрате времени на один поиск (с учетом ввода контекста и его учета) скажем 10 секунд и работе по 8 часов в день, понадобится 347 рабочих дней. А дублей в этом файле может быть 2-3 десятка, т.о. если знать какие именно данные задублированы, то файл чистится уже не в течение года, а в течение десяти минут. Разница ясна? Прочитайте пожалуйста пост внимательно (особенно то, что я повторил ниже), прежде, чем писать в него что-либо.
Цитата sl.oleg@fb:
Сами наборы символов не задаются — они программно обнаруживаются в тексте, ограничиваясь лишь их минимальной длиной. »
А версии Word на разных компах стоят разные (2007 и 2010), работать люди будут разные, поэтому привязаться к конкретной версии не представляется возможным.
Последний раз редактировалось sl.oleg@fb, 20-11-2016 в 17:44 .
Сообщения: 22
Благодарности: 7
| Конфигурация компьютера | |
| Процессор: Intel Core i5-3450 | |
| Материнская плата: Asus P8Z77-V LE | |
| Память: Geil Evo Corsa, 2×4 ГБ | |
| HDD: SSD OCZ-VERTEX3 (90 ГБ) + HDD WD30EFRX (3 ТБ) | |
| Видеокарта: NVIDIA GeForce GTX 1050 Ti (4 ГБ) | |
| Звук: Creative Audigy 2 Platinum | |
| Блок питания: Thermaltake TPX-575M ToughPower XT (575 Вт) | |
| Монитор: Dell UltraSharp U2410 (Digital) [24″ H-IPS LCD] | |
| ОС: Windows 7 x64 | |
| Индекс производительности Windows: 7.5 |
Поиск и удаление повторяющихся фрагментов текста на русском языке, длинной от 4-х букв:
1. Диалог «Найти и заменить» (Ctrl + H).
2. Поле «Найти»: ([А-ЯЁа-яё])(*)\1
3. Поле «Заменить на»: \1\2
4. Кнопка «Больше» > Активируем флаг «Подстановочные знаки»
Думаю, принцип понятен. Замечу, что учитывается регистр букв.
Или вот пример для трех повторений:
Найти: ([А-ЯЁа-яё])(*)\1(*)\1
Заменить: \1\2\3
Это сообщение посчитали полезным следующие участники:
Сообщения: 58
Благодарности: 1
Ещё не пробовал, но попробую! Жесть , а можно ссылку на описание всей этой китайской грамоты , т.е. что здесь что обозначает в приведенной вами строке, как самому такие строки писать.
Я правильно понял: в вашем примере верхняя формула находит все вхождения, которые имеют дубликаты в тексте длиной не менее 2-х символов, а в нижнем — не менее 3-х символов?
Только я не понял зачем здесь что-то на что-то меняется? Мне же надо просто найти дубликаты, заменять их не надо, а что такое \1\2 ?
Попробовал, к сожалению не работает на моем примере — не находит вхождение «самых чест» (при установке в ). Методом проб понял, что формула игнорирует все дубли, если в них присутствуют какие либо символы, кроме букв (напр.пробелы, подчеркивания и т.п.) Очень жаль. Может можно как-то доработать формулу, чтоб она искала корректно любые вхождения (с пробелами, тире, запятыми, концами абзаца и т.п.)?
Последний раз редактировалось okshef, 22-11-2016 в 09:41 . Причина: для цитирования выделите текст и нажмите кнопку «Цитировать»
Сообщения: 27449
Благодарности: 8086
Methodichka, удалять не надо. Надо просто найти примерные дубликаты «заголовков», а удаляться будут гораздо более крупные фрагменты текста. Посему не Ctrl-H, а просто Ctrl-F. Далее, к сожалению, находятся не просто повторы, а весь интервал текста между повторами (включая и сами повторы). Три повторения также бессмысленно искать по изложенным причинам.
Тем не менее, Ваша идея мне весьма нравится, и я полагаю, что пока это наиболее приемлемый вариант для полуавтоматического поиска дубликатов. Ctrl-Home, Ctrl-F, Enter — нашли, Esc, смотрим на начало выделения. Посмотрели, нажали Left, перешли в точку конца выделения (со снятием оного) и, соответственно, найденного дубликата текста. Смотрим, оцениванием, при надобности выделяем потребное, удаляем. Ctrl-Home, Ctrl-F… — ищем дальше.
Цитата sl.oleg@fb:
| а можно ссылку на описание всей этой китайской грамоты , т.е. что здесь что обозначает в приведенной вами строке, как самому такие строки писать. » |
Во встроенной документации к Microsoft Office есть, идущей в комплекте. Нажимаете Ctrl-F, затем F1 и читаете, переходя по ссылкам.
Цитата sl.oleg@fb:
| Я правильно понял: в вашем примере верхняя формула находит все вхождения, которые имеют дубликаты в тексте длиной не менее 2-х символов » |
Неправильно. Там же сказано — четырёх от четырёх и выше:
Цитата Methodichka:
| … длинной от 4-х букв… 2. Поле «Найти»: ([А-ЯЁа-яё]< 4 ;>)(*)\1 » |
Как в Microsoft Word сделать массовую замену или удаление текста
Случалось ли с вами такое, что уже закончив печатать письмо, отчёт или презентацию вы вдруг обнаруживали, что неправильно написали имя человека или неправильная компания была упомянута несколько раз по всему вашему документу? Не беспокойтесь — это легко поправить. Используя функцию Word «Найти и заменить» вы сможете быстро обнаружить и заменить однотипный текст много раз. Используя эту же технику вы сможете удалить из документа слово или фразу встречающуюся в тексте много раз.
Переключитесь на вкладку «Главная» в Ленте Word и нажмите кнопку Заменить.
Вы также можете открыть это окно используя сочетание клавиш CTRL+H.
Будет открыто окно «Найти и заменить». В поле «Найти» введите слово или фразу для поиска, которую вы хотите найти в тексте. Если вам нужно только найти текст в вашем документе, то для этого нажмите кнопку «Найти далее» и Word перейдёт к следующему совпадению искомого слова. Продолжайте кликать, чтобы пройтись по всем найденным результатам.
Если вы хотите заменить текст, который вы нашли на что-то ещё, то в поле «Заменить на» вставьте желаемую замену — новый текст или фразу. Кстати к слову, вы можете ввести до 255 символов в оба поля «Найти» и «Заменить на».
В моём примере, допустим мы хотим заменить фамилию «Петров» на фамилию «Мишкин», следовательно, мы впечатываем этот текст в соответствующие поля. Затем мы кликаем по кнопке «Найти далее» чтобы Word нашёл первое совпадение текста, которое указано в поле «Поиск».
Word прыгает по документу указывая и подсвечивая серым результат поиска, при этом окно «Найти и заменить» остаётся поверх документа, чтобы вы могли продолжать поиск. Кликните кнопку «Заменить» для замены выбранного в текущий момент результат на тот текст, который указан в поле «Заменить на».
Чтобы заменить за один раз все совпадения с поиском без остановки и исследования каждого результата, вы можете нажать кнопку «Заменить все».
Будьте осторожны, когда используете «Заменить все», поскольку он автоматически поменяет всех найденные вхождения, включая те, которые вы не хотели менять, и которые, возможно, вы даже не могли себе представить. В примере ниже ещё три совпадения «Петров», но нужно поменять только следующие два. В этом случае нужно делать замены по одной кликая кнопку «Заменить» для второго и третьего совпадений.
Если попадётся определённое вхождение, которое вы не хотите менять, тогда нажмите кнопку «Найти далее» столько раз, скольку нужно чтобы вы перешли к следующему фрагменту, который нужно заменить.
Чтобы выйти из диалогового окна «Найти и заменить» нажмите кнопку «Отмена».
Массовое удаление слова из текста в Word
Предположим, вам нужно удалить одинаковое слово или одинаковую фразу из всего текста. Если текст объёмный, то это может потребовать много времени.
Процесс удаления слов в Word можно автоматизировать. Для этого в поле «Поиск» введите слово или фразу, которую вы хотите удалить, а поле «Заменить на» оставьте пустым. Когда всё готово, нажмите кнопку «Заменить всё». В результате из всего текста будет убрано искомое слово.
Заключение
На самом деле, поиск в Word очень мощный и можно создавать весьма сложные конструкции и искать необычные вещи (параграфы, графические изображения, разные пробелы) и даже использовать регулярные выражения.
Основы поиска в Word весьма просты, но вы можете делать с ним очень многое — продолжайте углублять ваши знания.
Связанные статьи:
- Как использовать подстановочные символы и регулярные выражения при поиске и замене в Word (100%)
- Как убрать лишние пробелы в Microsoft Word (100%)
- Как выделить текст цветом в Word (84%)
- Как вставить музыкальный символ, ноты в Word (66%)
- Как напечатать диапазон страниц документа Word из нескольких разделов (66%)
- Как в PowerPoint отключить автоматическое изменение размера текста (RANDOM — 16%)
покупка
Как найти и выделить повторяющиеся абзацы в документе Word?
Предположим, у вас есть большой документ Word, который может содержать сотни страниц, теперь вы хотите проверить, есть ли повторяющиеся абзацы, а затем выделить их, чтобы сделать их выдающимися, чтобы вы могли иметь дело с повторяющимися предложениями. Как быстро и легко найти и выделить повторяющиеся абзацы в документе Word?
Найдите и выделите повторяющиеся абзацы в документе Word с кодом VBA
Чтобы найти и выделить повторяющиеся абзацы в документе Word, следующий код VBA может оказать вам услугу, сделайте следующее:
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. А затем нажмите Вставить > Модули, скопируйте и вставьте приведенный ниже код в открытый пустой модуль:
Код VBA: найдите и выделите повторяющиеся абзацы в документе Word:
Sub highlightdup() Dim I, J As Long Dim xRngFind, xRng As Range Dim xStrFind, xStr As String Options.DefaultHighlightColorIndex = wdYellow Application.ScreenUpdating = False With ActiveDocument For I = 1 To .Paragraphs.Count - 1 Set xRngFind = .Paragraphs(I).Range If xRngFind.HighlightColorIndex <> wdYellow Then For J = I + 1 To .Paragraphs.Count Set xRng = .Paragraphs(J).Range If xRngFind.Text = xRng.Text Then xRngFind.HighlightColorIndex = wdBrightGreen xRng.HighlightColorIndex = wdYellow End If Next End If Next End With End Sub
3, Затем нажмите F5 нажмите клавишу для запуска этого кода, все повторяющиеся предложения выделяются сразу, первые отображенные повторяющиеся абзацы выделяются зеленым цветом, а другие дубликаты выделяются желтым цветом, см. снимок экрана:

Лучшие инструменты для офисной работы
Kutools for Word — Повысьте свой опыт работы со словом с помощью Over 100 Замечательные особенности!
Преобразуйте свои задачи Word с помощью Kutools. Загрузите 30-дневную пробную версию прямо сейчас .
Узнать больше Бесплатная загрузка покупка
Newest First
Sort comments by
Comments ( 15 )
Rated 4.5 out of 5 · 1 ratings
about 1 year ago
This comment was minimized by the moderator on the site
about 2 years ago
This comment was minimized by the moderator on the site
Hi, mình chạy đoạn code trên nhưng không thấy ra kết quả giống bài viết, mình dùng word 2019, Ad support giúp mình nhé
about 2 years ago
This comment was minimized by the moderator on the site
Hi, can anyone please suggest me to prepare a macro in ms word for finding error in paragraph.
Like:- «and or» «that that» «of the of the» «Sentence end without dot (.)» «New Sentence start with initial caps without ending the sending».
about 2 years ago
This comment was minimized by the moderator on the site
Thanks so much.A very valuable article, helped me with my duplicate copies and paste paragraphs!You are awesome.
about 3 years ago
This comment was minimized by the moderator on the site
Tried this for my book in MS Word. First, it would not work because I had bullet points. I removed them and then it only found 2 instances «blank page» and «table of contents». I purposely have several sentences repeated, and this macro did not find them. Thank you for trying, but I would say this doesn’t work.
about 3 years ago
This comment was minimized by the moderator on the site
I had a very long document to process, the code above would take at least 100 days to finish and blocked everything while working at it. The main culprit is the «Set xRng = .Paragraphs(J).Range» which is very slow. I did an alternative version which ran in just 4 hours and presents a continuous report on the processing status and time to end. (To see the report in real time you have to open the «immediate window» by pressing Ctrl+G in the Microsoft Visual Basic for Applications window.) The code works well, except that it predicts a longer time to end than is actually the case (depends on the document). The code is as follows:
Sub highlightdup()
Dim StartTime, SecondsElapsed As Date
Dim secondsPerComparison As Double
Dim I, J, PC, totalComparisons, comparisonsDone, C, secondsToFinish As Long
Dim xRngFind, xRng As Range
Dim xStrg, minutesToFinish As String
Dim currentParag, nextParag As Paragraph
‘Options.DefaultHighlightColorIndex = wdYellow
Application.ScreenUpdating = False
With ActiveDocument
StartTime = Now()
C = 0
PC = .Paragraphs.Count
totalComparisons = CLng((PC * (PC + 1)) / 2)
Set currentParag = .Paragraphs(1)
For I = 1 To PC — 1
‘Debug.Print «processing paragraph » & I & » of a total of » & PC & » » & currentParag.Range.Text
‘Debug.Print Len(currentParag) & currentParag
If currentParag.Range.HighlightColorIndex <> wdYellow Then
If currentParag.Range.HighlightColorIndex <> wdBrightGreen Then
Set nextParag = currentParag
For J = I + 1 To PC
Set nextParag = nextParag.Next
If currentParag.Range.Text = nextParag.Range.Text Then
currentParag.Range.HighlightColorIndex = wdBrightGreen
nextParag.Range.HighlightColorIndex = wdYellow
Debug.Print «found one!! » & » I = » & I & » J s», StartTime, Now())
secondsPerComparison = CLng(SecondsElapsed) / comparisonsDone
secondsToFinish = CLng(secondsPerComparison * (totalComparisons — comparisonsDone))
minutesToFinish = Format(secondsToFinish / 86400, «hh:mm:ss»)
elapsedTime = Format(SecondsElapsed / 86400, «hh:mm:ss»)
Debug.Print «Finished procesing paragraph » & I & » of » & PC & «. Elapsed time = » & elapsedTime & «. Time to finish kt-editor-attachments» data-kt-attachment-wrapper=»»>