- Найти заглавные (прописные) символы латиницы
- Найти заглавные (прописные) символы кириллицы
- Найти прописные символы кириллицы или латиницы
- Найти любые заглавные буквы
- Найти любые строчные буквы
- Инструмент “Обнаружить заглавные буквы” в !SEMTools
Поиск именованных сущностей — задача, встречающаяся во множестве профессий. Возникает там, где в текстовом массиве встречаются те или иные имена собственные. Это могут быть названия брендов, ФИО людей, географические названия (топонимы), названия организаций и другие наименования живых и неживых существ.
Все их объединяет простое правило: они пишутся с заглавной буквы, что одновременно становится и своеобразным маркером, позволяющим выделить эти единицы среди остального текста.
При работе с большими массивами данных часто бывает предпочтительнее сначала обнаружить среди ячеек те, что содержат наименования, и далее уже производить более “тяжёлые” операции:
- массовую замену символов/слов;
- извлечение текста с заглавными буквами — будь то слова или все содержимое ячейки;
- удаление символов, слов, словосочетаний или всего содержимого ячеек.
Найти заглавные (прописные) символы латиницы
В Excel есть функция НАЙТИ — она регистрозависимая, что позволяет найти буквы в том регистре, в котором они перечислены. В сочетании с формулой массива эта функция возвращает позицию любого найденного символа из массива.
Поскольку в ASCII-таблице символов прописные английские буквы идут друг за другом по порядку с 65 по 90, можно использовать менее громоздкую формулу массива для их поиска:
{=СЧЁТ(НАЙТИ(СИМВОЛ(СТРОКА(65:90));A1))>0}
Данная формула вернет ИСТИНА, если в ячейке A1 есть хотя бы одна заглавная английская буква.
Важно: фигурные скобки в данном случае появляются сами, вводить их не нужно — нужно вводить формулу без них и использовать сочетание Ctrl + Shift + Enter.
Найти заглавные (прописные) символы кириллицы
Формула аналогична предыдущей, разница лишь в диапазоне символов — от 192 до 223:
{=СЧЁТ(НАЙТИ(СИМВОЛ(СТРОКА(192:223));A1))>0}
Есть пара замечаний к этой формуле:
- Данный диапазон не включает в себя букву Ё;
- Язык системы (Windows) должен быть русский, т.к. ASCII-таблица привязана именно к нему.
Найти прописные символы кириллицы или латиницы
Функция не отличается изящностью, но это лучшее, что предоставляет нам Excel в его базовой конфигурации. В зависимости от наличия в строке прописных букв функция возвращает ИСТИНА или ЛОЖЬ.
=СЧЁТ(НАЙТИ({"A":"B":"C":"D":"E":"F":"G":"H":"I":"J":"K":"L":"M":"N":"O":"P":"Q":"R":"S":"T":"U":"V":"W":"X":"Y":"Z":"А":"Б":"В":"Г":"Д":"Е":"Ё":"Ж":"З":"И":"Й":"К":"Л":"М":"Н":"О":"П":"Р":"С":"Т":"У":"Ф":"Х":"Ц":"Ч":"Ш":"Щ":"Ы":"Э":"Ю":"Я"};A1))>0
Можно решить задачу чуть более компактной формулой массива, совмещающей формулы выше:
{=СЧЁТ(НАЙТИ(СИМВОЛ(СТРОКА($192:$223));A1))+СЧЁТ(НАЙТИ(СИМВОЛ(СТРОКА($65:$90));A1))>0}
Найти любые заглавные буквы
Помимо кириллицы и латиницы есть и другие алфавиты. Не перечислять же их нам все — формулы будут гигантскими и ресурсозатратными.
Для поиска заглавных букв нам поможет логика, а именно использование функций СТРОЧН и СОВПАД, последняя из которых позволяет сравнивать значения по регистру.
Логика такова:
- Переведём значение в нижний регистр,
- Сравним результат с исходным,
- Если не совпадут, значит, хотя бы один символ был в верхнем регистре.
А вот и формула:
=НЕ(СОВПАД(СТРОЧН(A1);A1))
Найти любые строчные буквы
Формула аналогична той, что ищет символы в верхнем регистре. Единственное отличие — в ней используется функция ПРОПИСН. Вот формула:
=НЕ(СОВПАД(ПРОПИСН(A1);A1))
Чтобы не приходилось запоминать сложный синтаксис составных функций, можно пользоваться готовыми решениями. !SEMTools располагает набором подобных возможностей, включая и процедуру обнаружения заглавных букв.
Макрос находится в группе “Обнаружить” в первом меню “Символы”. Инструкция безумно проста:
- Скопируйте исходный столбец с данными в соседний,
- Оставив выделенным скопированный диапазон (иначе говоря, ничего больше не делая), выберите процедуру в меню “Обнаружить символы” —> “Заглавные”.
Ячейки, содержащие заглавные буквы, заменятся на значение “ИСТИНА”, не содержащие их — на “ЛОЖЬ”. Далее можно фильтровать, сортировать, копировать и производить любые дальнейшие действия с маркированными таким образом данными.
Более подробную инструкцию по использованию функционала надстройки можно посмотреть в видео, где рассмотрены в том числе некоторые подводные камни.
Смотрите также похожие разделы:
- Найти кириллицу и латиницу в Excel;
- Регулярные выражения в Excel – найти, заменить, извлечь;
- Изменить регистр букв в Excel.
Нужно найти заглавные или строчные буквы в Excel?
В !SEMTools есть это и сотни других готовых решений!
Роман интересуется:
Как в документе найти все слова, написанные прописными буквами? Причем, можно ли результаты поиска вывести вместе, или ворд будет переходить от слова к слову?
Можно воспользоваться следующим макросом, который мне помогли реализовать специалисты VBA с форума microsoft.public.word.vba.general.
Этот макрос позволяет найти в документе все слова, написанные прописными буквами, скопировать их в конец документа, отсортировать по алфавиту и удалить повторяющиеся слова. При этом, не затрагиваются односимвольные слова, типа О, И и так далее.
Обратите внимание, что макрос писал не я, по моей просьбе его составили специалисты с указанного выше форума. Тем не менее, я добавил в текст макроса свои поясняющие комментарии (для себя и тех, кому это может быть интересно в плане изучения опыта).
Sub UcaseList() 'Поиск в тексте слов с прописными буквами, копирование их в конец документа, сортировка и удаление повторяющихся 'Помощь от Jean-Guy Marcil и Graham Mayor 'http://groups.google.ru/group/microsoft.public.word.vba.general/ Dim rngDoc As Word.Range Dim wu As Word.Range Dim lngDocEnd As Long Set rngDoc = ActiveDocument.Range lngDocEnd = rngDoc.End With ActiveDocument Selection.EndKey Unit:=wdStory 'переходим в конец документа Selection.TypeParagraph 'вставляем параграф .Bookmarks.Add Range:=Selection.Range, Name:="ListStart" 'вставляем закладку 'для каждого слова проверяем его регистр и если есть слова с прописными буквами, добавляем их в конец документа For Each wu In rngDoc.Words If wu.Case = wdUpperCase Then .Range.InsertAfter vbCrLf & wu.Text rngDoc.End = lngDocEnd End If Next wu .Bookmarks("ListStart").Select 'выбираем закладку, выделяем все слова, что идут ниже ее, и сортируем их по алфавиту With Selection .EndKey Unit:=wdStory, Extend:=wdExtend .Sort , FieldNumber:="Paragraphs", _ SortFieldType:=wdSortFieldAlphanumeric, _ SortOrder:=wdSortOrderAscending 'с отсортированными словами With .Find .ClearFormatting .Replacement.ClearFormatting 'удаляем пробелы после слов .Text = "[ ](^13)" .Replacement.Text = "1" .MatchWildcards = True .Execute Replace:=wdReplaceAll 'удаляем лишние концы абзацев .Text = "(*^13)@" .Replacement.Text = "1" .MatchWildcards = True .Execute Replace:=wdReplaceAll 'ищем повторяющиеся слова и удаляем их .Text = "([!A-Z-А-ЯЁ])[A-Z-А-ЯЁ]^13" .Replacement.Text = "1" .Execute Replace:=wdReplaceAll End With End With End With End Sub
Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:
Создание макроса из готового кода
Автоматическая запись макроса
Добрый вечер, уважаемые форумчане! Может кто знает как из текстовой строки извлечь слова, написанные прописными буквами? С уважением, |
|
vikttur Пользователь Сообщений: 47199 |
Вам только название нужно? Если в нем встретятся строчные? Если прописные будут не только в этом слове? |
{quote}{login=vikttur}{date=16.12.2009 01:10}{thema=}{post}Вам только название нужно? Если в нем встретятся строчные? Если прописные будут не только в этом слове?{/post}{/quote} Строчные не встретятся. А вот прописные буквы могут быть в начале строки. Но с этим я справлюсь. |
|
vikttur Пользователь Сообщений: 47199 |
Показываем второе слово: |
{quote}{login=vikttur}{date=16.12.2009 01:25}{thema=}{post}Показываем второе слово: Да, в любом месте текста. Эти прописные слова идут в 99 % одно за другим. |
|
ytk5kyky Пользователь Сообщений: 2410 |
Прописные русские или латиница? Видите, как с текстом сложно… |
ytk5kyky Пользователь Сообщений: 2410 |
Вот формула, которая берет все что между первой и последней прописной. |
{quote}{login=Лузер™}{date=16.12.2009 01:44}{thema=}{post}Прописные русские или латиница? Видите, как с текстом сложно…{/post}{/quote} Тогда давайте ограничимся 3 вариантами. Они в файле. |
|
Sh_Alex Пользователь Сообщений: 732 |
Пользовательская функция выбирает все прописные буквы из ячейки, за исключением первой. |
{quote}{login=Лузер™}{date=16.12.2009 01:54}{thema=}{post}Вот формула, которая берет все что между первой и последней прописной. Да. работает формула. Единственное что приходится – убирать прописные буквы в первых словах. Если это конечный вариант, то тему можно закрывать. |
|
{quote}{login=Sh_Alex}{date=16.12.2009 01:59}{thema=}{post}Пользовательская функция выбирает все прописные буквы из ячейки, за исключением первой. Благодарю! |
|
vikttur Пользователь Сообщений: 47199 |
Добейте, мне некогда: |
{quote}{login=vikttur}{date=16.12.2009 02:04}{thema=}{post}Добейте, мне некогда: Спасибо огромное! |
|
vikttur Пользователь Сообщений: 47199 |
#14 17.12.2009 10:12:34 Полная формула: |
На чтение 4 мин Просмотров 1.3к.
Привет, друзья. Знаете ли вы, что поиск в Ворде можно выполнять очень точно: учитывая регистр, стиль, шрифт, а также учитывая подстановочные знаки, и другое? В этой статье я расскажу вам, как им правильно пользоваться, чтобы результат поиска был безошибочным.
Содержание
- Расширенный поиск
- Поиск по словам
- Поиск в документе Word по формату
- Поиск и замена
- Заключение
Расширенный поиск
Поиск по странице Ворд исполняется при помощи функции под названием “Найти”. Более подробно о нем можно узнать на странице “Поиск в Ворд”.
Если вам доводилось искать какой-либо текст в тексте документа, то, думаю, вы замечали, что результаты могут быть не точными. К примеру, при поиске слова «дети» Ворд вам предложит все варианты, которые производные от основного запроса: «детиНА», «детиШКИ».
А чтобы отыскать определенное конкретное слово, для этого в текстовом редакторе Word существует расширенный поиск. Через него можно отыскать более точный текст — учитывая регистр, по точному совпадению, найти слово не только по содержанию, но и по тому, как оформлены эти слова, а также по прочим условиям. Как им пользоваться, спросите вы?
Откроем вкладку “Главная”, найдем раздел “Редактирование” и жмем “Найти”. Внизу появившегося окна поиска жмем “Больше”. Откроется окно расширенного поиска.
Посмотрите, как много тут всяких вариантов поиска. Сейчас я вам расскажу об основных из них:
- «Направление»- в каком направлении будет произведен поиск по документу Word.
- “Вперед”, поиск пройдет вниз от курсора до конца документа.
- “Назад” – от курсора вверх к началу документа. При этом в ссылках и в колонтитулах поиск осуществляться не будет.
- Если выбрать “Везде”, то Word поищет слова и в колонтитулах, и в ссылках.
Поиск по словам
Продолжаем изучать параметры расширенного поиска.
“Учитывать регистр” — означает, будет ли Ворд при поиске слов учитывать БОЛЬШИМИ или маленькими буквами набрано слово. К примеру, в поиске набираем слово с Заглавной буквы, тогда и результатом поиска будет, только слово с Заглавной буквы.
“Только слова целиком” — этим пунктом мы говорим Ворду, что нас интересует поиск конкретно этого слова. К примеру, в строке поиска набираем слово «пап», тогда поиск найдет те слова, которые содержат конкретно «пап», а слова, типа папа, папин, папочка будут пропущены.
“Подстановочные знаки” — это значит, что будем использовать специальные знаки для поиска слов. К примеру, набираем в поиске «стен?» и ищем. Ворд понимает, что вместо знака вопроса можно подставить любую букву: стенА, стенЫ, стенУ и т.д. Результатом поиска будут все подобные слова.
Какие бывают подстановочные знаки можете узнать на странице «Подстановочные знаки расширенного поиска в Ворд».
«Произносится как» — в английском языке есть множество слов, звучащие одинаково, а записываются они по-разному. Хоть и в русском языке есть такие слова, но для нашего языка эта функция не работает.
Функция “Все словоформы” ищет все словоформы.
Поиск в документе Word по формату
Кнопка «Формат» откроет список форматов, по которым можно отыскать текст. Кстати, формат можно выбрать не один, а несколько.
Функция “Специальный” также содержит список функций.
Поиск и замена
В Ворд, используя расширенный поиск, можно не только найти текст, но и его заменить на другой.
Для этого откройте вкладку «Заменить». Далее в строке найти указываем то слово, что мы хотим поменять. К примеру слово «одно» заменить на слово «другое». А значит, следующим шагом в поле «Заменить на» мы пишем то, на что необходимо поменять текст. Выставляем правильные Параметры поиска и жмем на одну из кнопок: Заменить либо Заменить все.
Заключение
По моему мнению в этом ничего слишком сложного нет. Напротив, довольно удобно, что в Ворде есть более гибкая настройка поиска, которая позволяет более точно указать параметры поиска. Надеюсь вам понравилось и я вам смог помочь. Еще раз напомню, что у меня есть статья про «Поиск в Ворде», советую посмотреть и ее.
Комментируйте, задавайте вопросы, делитесь с друзьями, вступайте в группы (ссылки в меню) и подписывайтесь на обновления сайта.
Sunny_John 0 / 0 / 1 Регистрация: 12.03.2018 Сообщений: 20 |
||||
1 |
||||
Как найти слово с заглавной буквой в списке23.03.2018, 14:25. Показов 24636. Ответов 2 Метки python 3.x (Все метки)
Всем добрый день! Подскажите с задачкой. Пользователь вводит слова через пробел и они записываются в список. Как узнать есть ли в списке слова, в которых есть любая заглавная буква? Максимум до чего я додумался – это если ввод записывать в строку и проверять на наличие заглавных букв. Но мне то нужно проверить список.
0 |
883 / 195 / 54 Регистрация: 06.11.2015 Сообщений: 1,975 Записей в блоге: 2 |
|
23.03.2018, 15:22 |
2 |
Sunny_John, сделайте отдельный метод, который бы итерировал по списку и проверял слова на наличие заглавных букв.
1 |
Semen-Semenich 4466 / 3146 / 1112 Регистрация: 21.03.2016 Сообщений: 7,833 |
||||
23.03.2018, 21:30 |
3 |
|||
Напишите
0 |