Как найти прописной текст

  • Найти заглавные (прописные) символы латиницы
  • Найти заглавные (прописные) символы кириллицы
  • Найти прописные символы кириллицы или латиницы
  • Найти любые заглавные буквы
  • Найти любые строчные буквы
  • Инструмент “Обнаружить заглавные буквы” в !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}

Найти любые заглавные буквы

Помимо кириллицы и латиницы есть и другие алфавиты. Не перечислять же их нам все — формулы будут гигантскими и ресурсозатратными.

Для поиска заглавных букв нам поможет логика, а именно использование функций СТРОЧН и СОВПАД, последняя из которых позволяет сравнивать значения по регистру.

Логика такова:

  1. Переведём значение в нижний регистр,
  2. Сравним результат с исходным,
  3. Если не совпадут, значит, хотя бы один символ был в верхнем регистре.

А вот и формула:

=НЕ(СОВПАД(СТРОЧН(A1);A1))

Найти любые строчные буквы

Формула аналогична той, что ищет символы в верхнем регистре. Единственное отличие — в ней используется функция ПРОПИСН. Вот формула:

=НЕ(СОВПАД(ПРОПИСН(A1);A1))

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

Макрос находится в группе “Обнаружить” в первом меню “Символы”. Инструкция безумно проста:

  1. Скопируйте исходный столбец с данными в соседний,
  2. Оставив выделенным скопированный диапазон (иначе говоря, ничего больше не делая), выберите процедуру в меню “Обнаружить символы” —> “Заглавные”.

Как найти заглавные буквы в Excel

Как найти ячейки с большими буквами в Excel с помощью !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
Регистрация: 15.09.2012

Вам только название нужно? Если в нем встретятся строчные? Если прописные будут не только в этом слове?

 

{quote}{login=vikttur}{date=16.12.2009 01:10}{thema=}{post}Вам только название нужно? Если в нем встретятся строчные? Если прописные будут не только в этом слове?{/post}{/quote}  

  Строчные не встретятся. А вот прописные буквы могут быть в начале строки. Но с этим я справлюсь.

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Показываем второе слово:  
=ПСТР(B5;НАЙТИ(” “;B5)+1;НАЙТИ(” “;B5;НАЙТИ(” “;B5)+1)-НАЙТИ(” “;B5)-1)  
Или нужно именно “прописное” в любом месте текста?

 

{quote}{login=vikttur}{date=16.12.2009 01:25}{thema=}{post}Показываем второе слово:  
=ПСТР(B5;НАЙТИ(” “;B5)+1;НАЙТИ(” “;B5;НАЙТИ(” “;B5)+1)-НАЙТИ(” “;B5)-1)  
Или нужно именно “прописное” в любом месте текста?{/post}{/quote}  

  Да, в любом месте текста. Эти прописные слова идут в 99 % одно за другим.

 

ytk5kyky

Пользователь

Сообщений: 2410
Регистрация: 01.01.1970

Прописные русские или латиница?  
Идут непрерывно? Т.е. “Мандарины МАДАГАСКАРСКИЕ высший СОРТ” не будет? и что делать первой буквой в слове “Мандарины”? А так быть не может: “Мандарины МАДАГАСКАРСКИЕ Высший Сорт”?  
>>Эти прописные слова идут в 99 % одно за другим.  
т.е. между словами может быть пробел?  

    Видите, как с текстом сложно…

 

ytk5kyky

Пользователь

Сообщений: 2410
Регистрация: 01.01.1970

Вот формула, которая берет все что между первой и последней прописной.  
Только русские.  
ф-ла массива, вводится стрл+шифт+ентер

 

{quote}{login=Лузер™}{date=16.12.2009 01:44}{thema=}{post}Прописные русские или латиница?  
Идут непрерывно? Т.е. “Мандарины МАДАГАСКАРСКИЕ высший СОРТ” не будет? и что делать первой буквой в слове “Мандарины”? А так быть не может: “Мандарины МАДАГАСКАРСКИЕ Высший Сорт”?  
>>Эти прописные слова идут в 99 % одно за другим.  
т.е. между словами может быть пробел?  

    Видите, как с текстом сложно…{/post}{/quote}  

  Тогда давайте ограничимся 3 вариантами. Они в файле.    
ПС: а ведь есть формула,которая вытаскивает слова целиком?

 

Sh_Alex

Пользователь

Сообщений: 732
Регистрация: 01.01.1970

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

 

{quote}{login=Лузер™}{date=16.12.2009 01:54}{thema=}{post}Вот формула, которая берет все что между первой и последней прописной.  
Только русские.  
ф-ла массива, вводится стрл+шифт+ентер{/post}{/quote}  

  Да. работает формула. Единственное что приходится – убирать прописные буквы в первых словах.    

  Если это конечный вариант, то тему можно закрывать.

 

{quote}{login=Sh_Alex}{date=16.12.2009 01:59}{thema=}{post}Пользовательская функция выбирает все прописные буквы из ячейки, за исключением первой.  
С уважением, Александр.{/post}{/quote}  

    Благодарю!

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Добейте, мне некогда:  
=ПСТР(B5;ПОИСКПОЗ(0;ЕСЛИ(КОДСИМВ(ПСТР(ПОДСТАВИТЬ(B5;” “;”я”);СТРОКА(2:100);1))>223;СТРОКА(2:100);0);0)+1;100)  
Формула массива. Нужно определить длину извлекаемого (в формуле стоит 100).

 

{quote}{login=vikttur}{date=16.12.2009 02:04}{thema=}{post}Добейте, мне некогда:  
=ПСТР(B5;ПОИСКПОЗ(0;ЕСЛИ(КОДСИМВ(ПСТР(ПОДСТАВИТЬ(B5;” “;”я”);СТРОКА(2:100);1))>223;СТРОКА(2:100);0);0)+1;100)  
Формула массива. Нужно определить длину извлекаемого (в формуле стоит 100).{/post}{/quote}  

  Спасибо огромное!

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#14

17.12.2009 10:12:34

Полная формула:  
=ПСТР(B5;ПОИСКПОЗ(0;ЕСЛИ(КОДСИМВ(ПСТР(ПОДСТАВИТЬ(B5;” “;”я”);СТРОКА(ДВССЫЛ(“2:”&ДЛСТР(B5)));1))>223;СТРОКА(ДВССЫЛ(“2:”&ДЛСТР(B5)));0);0)+1;СУММ((КОДСИМВ(ПСТР(ПОДСТАВИТЬ(B5;” “;”я”);СТРОКА(ДВССЫЛ(“2:”&ДЛСТР(B5)));1))<224)*1))  
Находит первую прописную (без учета самой первой в текстовой строке) и показывает количество символов, равное количеству прописных (опять же, без учета первой).

На чтение 4 мин Просмотров 1.3к.

Привет, друзья. Знаете ли вы, что поиск в Ворде можно выполнять очень точно: учитывая регистр, стиль, шрифт, а также учитывая подстановочные знаки, и другое? В этой статье я расскажу вам, как им правильно пользоваться, чтобы результат поиска был безошибочным.

Содержание

  1. Расширенный поиск
  2. Поиск по словам
  3. Поиск в документе Word по формату
  4. Поиск и замена
  5. Заключение

Расширенный поиск

Поиск по странице Ворд исполняется при помощи функции под названием “Найти”. Более подробно о нем можно узнать на странице “Поиск в Ворд”.

Если вам доводилось искать какой-либо текст в тексте документа, то, думаю, вы замечали, что результаты могут быть не точными. К примеру, при поиске слова «дети» Ворд вам предложит все варианты, которые производные от основного запроса: «детиНА», «детиШКИ».

А чтобы отыскать определенное конкретное слово, для этого в текстовом редакторе Word существует расширенный поиск. Через него можно отыскать более точный текст — учитывая регистр, по точному совпадению, найти слово не только по содержанию, но и по тому, как оформлены эти слова, а также по прочим условиям. Как им пользоваться, спросите вы?

Откроем вкладку “Главная”, найдем раздел “Редактирование” и жмем “Найти”. Внизу появившегося окна поиска жмем “Больше”. Откроется окно расширенного поиска.

окно расширенного поиска по в Ворде

Посмотрите, как много тут всяких вариантов поиска. Сейчас я вам расскажу об основных из них:

  • «Направление»- в каком направлении будет произведен поиск по документу Word.
  • “Вперед”, поиск пройдет вниз от курсора до конца документа.
  • “Назад” – от курсора вверх к началу документа. При этом в ссылках и в колонтитулах поиск осуществляться не будет.
  • Если выбрать “Везде”, то Word поищет слова и в колонтитулах, и в ссылках.

Поиск по словам

Продолжаем изучать параметры расширенного поиска.

“Учитывать регистр” — означает, будет ли Ворд при поиске слов учитывать БОЛЬШИМИ или маленькими буквами набрано слово. К примеру, в поиске набираем слово с Заглавной буквы, тогда и результатом поиска будет, только слово с Заглавной буквы.

“Только слова целиком” — этим пунктом мы говорим Ворду, что нас интересует поиск конкретно этого слова. К примеру, в строке поиска набираем слово «пап», тогда поиск найдет те слова, которые содержат конкретно «пап», а слова, типа папа, папин, папочка будут пропущены.

“Подстановочные знаки” — это значит, что будем использовать специальные знаки для поиска слов. К примеру, набираем в поиске «стен?» и ищем. Ворд понимает, что вместо знака вопроса можно подставить любую букву: стенА, стенЫ, стенУ и т.д. Результатом поиска будут все подобные слова.

Какие бывают подстановочные знаки можете узнать на странице «Подстановочные знаки расширенного поиска в Ворд».

подстановочные знаки

«Произносится как» — в английском языке есть множество слов, звучащие одинаково, а записываются они по-разному. Хоть и в русском языке есть такие слова, но для нашего языка эта функция не работает.

Функция “Все словоформы” ищет все словоформы.

Поиск в документе Word по формату

Кнопка «Формат» откроет список форматов, по которым можно отыскать текст. Кстати, формат можно выбрать не один, а несколько.

Функция “Специальный” также содержит список функций.

поиск в ворде - формат

Поиск и замена

В Ворд, используя расширенный поиск, можно не только найти текст, но и его заменить на другой.

Для этого откройте вкладку «Заменить». Далее в строке найти указываем то слово, что мы хотим поменять. К примеру слово «одно» заменить на слово «другое». А значит, следующим шагом в поле «Заменить на» мы пишем то, на что необходимо поменять текст. Выставляем правильные Параметры поиска и жмем на одну из кнопок: Заменить либо Заменить все.

найти и заменить в ворде

Заключение

По моему мнению в этом ничего слишком сложного нет. Напротив, довольно удобно, что в Ворде есть более гибкая настройка поиска, которая позволяет более точно указать параметры поиска. Надеюсь вам понравилось и я вам смог помочь. Еще раз напомню, что у меня есть статья про «Поиск в Ворде», советую посмотреть и ее.

Комментируйте, задавайте вопросы, делитесь с друзьями, вступайте в группы (ссылки в меню) и подписывайтесь на обновления сайта.

Sunny_John

0 / 0 / 1

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

Сообщений: 20

1

Как найти слово с заглавной буквой в списке

23.03.2018, 14:25. Показов 24636. Ответов 2

Метки python 3.x (Все метки)


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

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

Максимум до чего я додумался – это если ввод записывать в строку и проверять на наличие заглавных букв. Но мне то нужно проверить список.

Python
1
2
3
4
5
6
7
8
capital_latter = []
 
user_input = input("Напишите слово:").split(" ")
 
for i in user_input:
 if i >="A" and i<="Z":
  capital_latter.append(i)
print(i, capital_latter)



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

Python
1
2
3
4
5
6
7
8
9
def is_upper(x):
    for i in x:
        if i.isupper():
            print(x)
            return
        
capital_latter = ['Напишите', 'слово','боТ', 'bUss', 'boot']
for word in capital_latter:
    is_upper(word)

Напишите
боТ
bUss



0



Добавить комментарий