Меню «Обнаружить символы» помогает в 1 клик ответить на вопрос, содержатся в ячейке определённые символы или нет.
Казалось бы, невелика задача, найти в ячейке Excel определённый символ или последовательность. Перечислим основные штатные варианты поиска символов:
- Процедура “Найти и заменить” найдет символы в книге, на листе или в диапазоне
- Функции ПОИСК и НАЙТИ укажут позицию искомых символов внутри ячейки
- Функция ПОДСТАВИТЬ (несколько окольный путь, но тоже можно!) попытается заменить символы на пустоту. Если удастся это сделать – строка станет короче, что легко выявить функцией ДЛСТР
- Процедура Фильтр
- ПОИСКПОЗ (с подстановочными символами) вернет адрес ячейки, содержащей искомый символ
- Всесильная функция ВПР (с подстановочными символами) – вернет при поиске первую содержащую символ(ы) ячейку или то, что напротив
Иногда определённые трудности возникают при поиске символов ? и *, см. статью как найти звёздочки в Excel.
Однако не для всех типов символов пригодны и удобны перечисленные варианты. Когда нужно искать не 1 или 2 символа, а целые множества, использование штатных процедур и функций может быть времязатратным и сложным.
Именно для таких случаев я разработал интуитивно понятные процедуры в моей надстройке.
Я выделил среди всех популярных процедур поиска поиск символов по их типу и по начертанию и сделал для них отдельные меню:
Подробнее о процедурах можно прочитать в соответствующих статьях ниже.
Найти символы по типу
- Как найти в ячейке текстовые символы? Буквы и цифры;
- Как найти в ячейке цифры;
- Как узнать, что ячейка содержит латиницу;
- Как найти в ячейке слова, содержащие и кириллицу, и латиницу;
- Как найти в ячейке заглавные буквы.
Найти символы по начертанию
Иногда пользователям нужно выявить, есть ли в ячейках символы в определенном начертании шрифта – жирном, курсиве и подчеркнутом. Для каждой выделена своя процедура.
Поиск символов с помощью регулярных выражений
Регулярные выражения в Excel отсутствуют как штатная возможность, но немного кодинга позволяют включить их поддержку. Что и было сделано для пользователей надстройки. Зная их, вы сможете найти практически любые символы в тексте ячеек.
Помимо самого их наличия, приятный бонус — функции REGEXREPLACE, REGEXEXTRACT и REGEXMATCH доступны бесплатно как в полной, так и в базовой версии.
Похожие и связанные с поиском символов процедуры
Обычно после того, как удалось найти в ячейках определенные символы или сочетания символов, следуют другие операции с ними. Например, можно извлечь, удалить их или заменить на какие-то другие (например, заменить кириллицу на латиницу). В решении подобных задач помогут соответствующие разделы сайта:
- Удалить лишние символы в Excel;
- Извлечь определённые символы в Excel;
- Изменить символы в Excel.
Функция ПОИСК() в MS EXCEL
Смотрите также текстом имеет адрес ячейка, в которой а обработчик php быть указана, как улиц будут найдены(ЕСЛИОШИБКА) появилась в
Синтаксис функции
поиск начнётся с Мы также разберем,
найти, и позволяетнажмите кнопку можно оперативнее обеспечивать
=ИНДЕКС(Список;НАИМЕНЬШИЙ( т.е. 5 букв).Найдем все названия инструментов, использована совместно с 8-й позиции слева.
Функция ПОИСК(), английский вариант «А2» и в находится произвольный текст. этот символ значение аргумента фразы CENTRAL, CENTER Excel, начиная с первого символа.
как справиться с сделать активной ячейки,Найти и выделить вас актуальными справочнымиЕСЛИОШИБКА(ЕСЛИ(ПОИСК($G$2;Список);СТРОКА(Список)-СТРОКА($A$4);НД());»»); Критерию также будут которые функциями ЛЕВСИМВ(), ПРАВСИМВ()Пусть в ячейке SEARCH(), находит первое данной ячейке следующийВ тексте ячейки не любит.start_num
и CENTRE. версии 2007. ВФункция
теми ситуациями, когда выбрав нужное вхождение.и нажмите кнопку материалами на вашемСТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК(Список))))
Примеры
соответствовать такие несуразныеначинаются и ПСТР().А2
вхождение одной текстовой текст «аб. Абвгд»: постоянно меняются первыеRAN(нач_позиция) в «главной»=ISNUMBER(SEARCH($E$2,B3)) более ранних версияхSEARCH эта функция выдаёт
Можно сортировать результатыНайти языке. Эта страница) значения как дрел5,с фразы дрелНапример, в ячейке
введена строка Первый строки в другой200?’200px’:»+(this.scrollHeight+5)+’px’);»> 1-3 символа, например:: Так вы что, функции=ЕЧИСЛО(ПОИСК($E$2;B3)) тот же результат(ПОИСК) возвратит позицию ошибку.Найти. переведена автоматически, поэтомуЧасть формулы ПОИСК($G$2;Список) определяет: дрелМ и т.п.
иА2 канал — лучший. строке и возвращаетxcell = Range(«A2»).Value а. 1111111, аб. каждый день сюдаSEARCH
Функция НАЙТИ() vs ПОИСК()
Если мы запишем два можно было получить, первой совпадающей строки,Итак, давайте рассмотрим внимательновсе, щелкнув заголовок.В поле ее текст можетсодержит (если они содержатся
Связь с функциями ЛЕВСИМВ(), ПРАВСИМВ() и ПСТР()
длина строкисодержится фамилия и Формула =ПОИСК(СИМВОЛ(32);A2) вернет начальную позицию найденной
xcellpart = Left(xcell,4) 1111111, абв. 1111111. новый файл выкладывать(ПОИСК). В результате знака минус (двойное используя не зависимо от теорию и практическиеПримечание:Найти содержать неточности или значение из в списке).
excel2.ru
Поиск ТЕКСТовых значений в MS EXCEL с выводом их в отдельный список. Часть2. Подстановочные знаки
которых составляет 5 имя «Иванов Иван», 7, т.к. символ строки.То есть, методомКаким образом можно будете, чтобы мы названия городов будут отрицание) перед функциейIF регистра. Если Вам примеры по функции Чтобы прекратить процесс поиска,введите текст —
грамматические ошибки. Для диапазонаКритерий вводится в ячейку символов. то формула =ЛЕВСИМВ(A2;ПОИСК(СИМВОЛ(32);A2)-1)
Задача
пробела (код 32)ПОИСКискомый_текстпросматриваемая_строка Left взять 4 проверить ячейку на вам меняли? проигнорированы поиском.ISNUMBER
А. Найти значения, которые начинаются с критерия и содержат определенное количество символов
(ЕСЛИ) вместе с нужен поиск сSEARCH нажмите клавишу ESC. или номера —,
нас важно, чтобыA5:A13E2
Критерий будет вводиться в извлечет фамилию, а находится на 7-й;[нач_позиция]) первые символа ячейки наличие в первыеShAMТеперь проверенная и исправленная
(ЕЧИСЛО), то онаISERROR учётом регистра, Вы(ПОИСК). Если уДля выполнения этой задачи вам нужно найти.
эта статья былафразу «?дрел?». Критериюи выглядит так: ячейку =ПРАВСИМВ(A2;ДЛСТР(A2)-ПОИСК(СИМВОЛ(32);A2)) — имя. позиции.Искомый_текст и уже их 4 символах содержимого: Андрей, убил. Пойду,
формула будет считать возвратит значения(ЕОШИБКА).
можете использовать функцию
Вас припрятаны какие-то
используется функция
Или выберите из
вам полезна. Просим также будут соответствовать «дрел??». В этомС2 Если между именемФормула =ПОИСК(«#???#»;»Артикул #123# ID»)
— текст, который требуется передав в переменную ячейки (в том отдышусь. только те строки,1
=IFERROR(SEARCH(B5,B2),»Not Found»)FIND хитрости или примерыЕТЕКСТ раскрывающегося списка вас уделить пару значения содержащие фразы случае будут выведеныи выглядеть так: и фамилией содержится будет искать в найти. при помощи конструкции числе и точку),
Б. Найти значения, которые начинаются со слова дрель или дрели и содержат как минимум 6 букв
palmin90 которые содержат слово/=ЕСЛИОШИБКА(ПОИСК(B5;B2);»Not Found»)(НАЙТИ), с которой работы с этой.Найти секунд и сообщить, 5дрел7, Адрелу и все значения, в «дрел?». Вопросительный знак
более одного пробела, строке «Артикул #123#Просматриваемая_строка
if then else
на наличие одного
: ShAM, я рад,
«bank» в названии
0Еще один способ проверить мы познакомимся далее функцией, пожалуйста, делитесьДля возвращения результатов дляпоследнего поиска. помогла ли она т.п. которые является подстановочным знаком.
В. Найти значения, у которых слово дрель находится в середине строки
то для работоспособности ID» последовательность из — текст, в которой проверять на совпадение из вариантов: «а.», что развеселил. Тяжкий профессии:вместо TRUE/FALSE (ИСТИНА/ЛОЖЬ). результат, возвращаемый в рамках марафона ими в комментариях. условия, которое можно
Примечание: вам, с помощьюКритерий вводится в ячейку
начинаются
Для реализации этого варианта
вышеупомянутых формул используйте
5 символов, которая
ищется с текстом, который «аб», «абв.», вырезать день, проблема в=—ISNUMBER(SEARCH($E$1,B2,SEARCH(«|»,B2))) Далее, функцияSEARCH30 функций Excel заФункция указать с помощью
Г. Найти значения, которые заканчиваются на слово дрель или дрели
В условиях поиска можно кнопок внизу страницы.I2с текста-критерия (со поиска требуется функция функцию СЖПРОБЕЛЫ(). начинается и заканчиваетсяИскомый_текст ищется.
их из ячейки
том, что уже=—ЕЧИСЛО(ПОИСК($E$1;B2;ПОИСК(«|»;B2)))SUM
(ПОИСК), на наличие
30 дней
SEARCH
функции
использовать подстановочные знаки. Для удобства такжеи выглядит так: слова дрел) и позволяющая использовать подстановочныеНайдем текстовые значения, удовлетворяющие на знак #..Подскажите, пожалуйста, как и передать в
есть макрос и
Урок подготовлен для Вас(СУММ) в ячейке ошибки – воспользоваться.(ПОИСК) ищет текстовуюЕслиЧтобы задать формат для
excel2.ru
Проверка ячейки на наличие в ней текста (без учета регистра)
приводим ссылку на «дрел?». В этомдлиной как минимум знаки: используем функцию заданному пользователем критерию.Чтобы найти позицию второгоНач_позиция проверить при помощи переменную, либо делать хотелось его дополнить командой сайта office-guru.ru E2 подсчитает суммарное функциейИспользуйте функцию строку внутри другой. поиска, нажмите кнопку оригинал (на английском случае будут выведены6 символов. ПОИСК(). Согласно критерию Критерии заданы с
вхождения буквы «а» — позиция знака в .Find взятые от иное действие, если функцией, принцип ничегоИсточник: http://blog.contextures.com/archives/2011/01/19/30-excel-functions-in-30-days-18-search/ количество записей, гдеISNUMBERSEARCH текстовой строки, и,Для выполнения этой задачиФормат языке) .
все значения,Для создания списка, содержащего «дрел?» (длина 5 использованием подстановочных знаков. в строке «мама
Поиск ячеек, содержащих текст
просматриваемой_строке, с которой исходного текста 4 одного их данных
-
не делать повторяющегосяПеревел: Антон Андронов искомый текст был
(ЕЧИСЛО). Если строка(ПОИСК), чтобы найти если находит, то
-
используются функциии внесите нужныеПредположим, что вы хотитезаканчивающиеся найденные значения, воспользуемся символов) — должны Поиск будем осуществлять мыла раму» используйте должен начинаться поиск.
-
первых символа на вариантов вначале ячейки ежедневно хорош, дляАвтор: Антон Андронов найден. найдена, результатом какой-либо текст внутри сообщает её позицию.Если
изменения во всплывающем убедиться, что столбецна слова дрель
-
формулой массива: быть выведены 3 в диапазоне с формулу =ПОИСК(«а»;»мама мыла Если аргумент наличие текста «аб.»? нет. этого и нужны
-
palmin90В следующем примере вSEARCH текстовой строки. ВФункция, окне содержит текст, не
или дрели.=ИНДЕКС(Список;НАИМЕНЬШИЙ( значения: Дрель, дрель, повторяющимися значениями. При раму»;ПОИСК(«а»;»мама мыла раму»)+1).нач_позиция То есть, чтобыСможет ли помочь программисты.: Приветствую, нужна помощь.
-
столбце B показаны:(ПОИСК) будет число, этом примере мыSEARCHПоиск
Найти формат номера. Или perhapsyou ЕСЛИОШИБКА(ЕСЛИ(ПОИСК($E$2;Список)=1;СТРОКА(Список)-СТРОКА($A$4);НД());»»); Дрели. наличии повторов, можно Чтобы определить естьопущен, то предполагается в случае, если
в данном вопросеВ общем вопросНужно найти и
Проверка ячейки на наличие в ней любого текста
Название города | Профессия а значит функция будем искать одиночный(ПОИСК) ищет текстовую
Проверка соответствия содержимого ячейки определенному тексту
и. необходимо найти всеДля создания списка, содержащегоСТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК(Список))))Для создания списка, содержащего
Проверка соответствия части ячейки определенному тексту
ожидать, что критерию ли третье вхождение значение 1. в первых 4 инструмент Find в закрыт, на стадии заменить символ наНаша задача найти профессии,
ISNUMBER символ (введённый в строку внутри другойЕЧИСЛО
support.office.com
30 функций Excel за 30 дней: ПОИСК (SEARCH)
Кнопка заказы, которые соответствуют найденные значения, воспользуемся) найденные значения, воспользуемся будет соответствовать несколько буквы «м» вВ аргументе символах есть текст VBA? компилирования из csv всем рабочем пространстве
содержащие текстовую строку,(ЕЧИСЛО) вернет TRUE ячейке B5) внутри текстовой строки. Она.Параметры определенным Продавец. Если формулой массива:Часть формулы ПОИСК($E$2;Список)=1 определяет: формулой массива: значений. Для их строке «мама мылаискомый_текст
«аб.», выполнялась одноПробовал написать макрос в json эту листа. введённую в ячейке (ИСТИНА). Если же текстовой строки, находящейся может:Примечание:служит для задания
Функция 18: SEARCH (ПОИСК)
у вас нет=ИНДЕКС(Список;НАИМЕНЬШИЙ(начинается=ИНДЕКС(Список; вывода в отдельный раму» используйте формулуможно использовать подстановочные
Как можно использовать функцию SEARCH (ПОИСК)?
условие, а если при помощи Find, вещь править будут.Ситуация такая: E1. Формула в текст не найден,
- в ячейке B2.Найти строку текста внутри Функция
- более подробных условий проблемой верхний или
- ЕСЛИОШИБКА(ЕСЛИ(ПОИСК($I$2;ПРАВСИМВ((Список);ДЛСТР($I$2)));СТРОКА(Список)-СТРОКА($A$4);НД());»»);ли значение из
Синтаксис SEARCH (ПОИСК)
НАИМЕНЬШИЙ(ЕСЛИОШИБКА(ЕСЛИ((ПОИСК($C$2;Список)=1)*(ДЛСТР($C$2)=ДЛСТР(Список))=1;СТРОКА(Список)-СТРОКА($A$4);НД());»»); диапазон удобно использовать =ЕСЛИ(ДЛСТР(ПОДСТАВИТЬ(«мама мыла раму»;»м»;»»;3))=ДЛСТР(«мама знаки — вопросительный
текст не "аб.",
но не могу
- palmin901. Нужно выделить ячейке C2 будет
- то=SEARCH(B5,B2) другой текстовой строкипоиска
- поиска. Например, можно найти нижний регистр текста,СТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК(Список)))) диапазонаСТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК(Список))))
Ловушки SEARCH (ПОИСК)
формулы массива. мыла раму»);»Нет третьего знак (?) и а просто «а.», никак понять, как: RAN, только дошло всю страницу от следующая:SEARCH=ПОИСК(B5;B2) (без учёта регистра).не учитывается регистр. все ячейки, содержащие существует несколько способов)A5:A13
Пример 1: Находим текст в строке
)Пусть Исходный список значений вхождения м»;»Есть третье звездочку (*). Вопросительный выполнялось другое? задать именно жесткий как вы до ctrl-home до ctrl-end.=—ISNUMBER(SEARCH($E$1,B2))(ПОИСК) сообщит обЕсли текст найден, функция
Использовать в поиске символы
Вчера в марафоне
данных определенного типа, проверки, если ячейкаЧасть формулы ПОИСК($I$2;ПРАВСИМВ((Список);ДЛСТР($I$2))) определяет:с фразы «дрел??».Часть формулы ПОИСК($C$2;Список)=1 определяет: (например, перечень инструментов) вхождение м») знак соответствует любомуkrosav4ig поиск по вышеуказаным
этой странности додумались,2. Найти в=—ЕЧИСЛО(ПОИСК($E$1;B2)) ошибке, аSEARCH подстановки.30 функций Excel за такого как формулы. содержит текст.совпадают ли последние 5 Критерию также будутначинается находится в диапазонеФормула =ПОИСК(«клад?»;»докладная») вернет 3, знаку; звездочка —:наборам символов, чтобы раз ctrl-home написано ячейках , иДанная формула нашла строки,ISNUMBER
(ПОИСК) возвратит номер
Определить стартовую позицию в
Пример 2: Используем символы подстановки с SEARCH (ПОИСК)
30 днейДля поиска на текущемДля поиска текста можно символов соответствовать значения начинающиесяли значение изA5:A13. т.е. в слове любой последовательности знаков.giovanni указать макросу, что значит я все заменить его на которые содержат слово(ЕЧИСЛО) возвратит FALSE позиции его первого просматриваемом тексте.мы распознавали типы листе или во также использовать фильтр.значений из диапазона с фраз дрелью, диапазона
См. Файл примера. «докладная» содержится слово Если нужно найти, .Find не о ищутся именно «а.», руками делаю))) /. «bank», но в (ЛОЖЬ). символа в текстовойФункция
ошибок с помощью всей книге можно Дополнительные сведения см.A5:A13 дрел23 и т.п.A5:A13Выведем в отдельный диапазон
из 5 букв,
в тексте вопросительный
Пример 3: Определяем стартовую позицию для SEARCH (ПОИСК)
том, вам нужен «аб.» или «абв.»RANPelena одной из нихВ значении аргумента строке. Если неSEARCH функции выбрать в поле в статье Фильтрацияс фразой «дрел?».Критерий вводится в ячейкус фразы «дрел?». значения, которые удовлетворяют первые 4 из знак или звездочку,
Instr и именно вначале
: Неужели есть? И
: Обязательно макросом? Стандартный это слово встречаетсяfind_text найден, результатом будет(ПОИСК) имеет вотERROR.TYPE
Искать
данных.
Критерию также будутG2Часть формулы ДЛСТР($C$2)=ДЛСТР(Список) критерию, причем критерий которых клад (начиная следует поставить перед200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub dd() содержимого ячейки где об этом
инструмент Найти/Заменить не не в названии(искомый_текст) можно использовать сообщение об ошибке такой синтаксис:(ТИП.ОШИБКИ) и убедились,вариантВыполните следующие действия, чтобы соответствовать значения заканчивающиесяи выглядит так: определяет: задан с использованием с третьей буквы ними тильду (~).Dim xcell AsПодскажите, пожалуйста, в хоть намек? вариант?
профессии, а в символы подстановки. Символ#VALUE!SEARCH(find_text,within_text,[start_num]) что она можетЛист
найти ячейки, содержащие
на фразы дрела,
«?дрель?». В этомравна ли длина строки
подстановочных знаков (*,
слова докладная).
Если искомый_текст не найден,
office-guru.ru
Поиск в диапазоне ячеек символа «/» и замена оного (Макросы/Sub)
Variant какую сторону смотреть)
palmin90palmin90 названии города. Это*
(#ЗНАЧ).
ПОИСК(искомый_текст;текст_для_поиска;[нач_позиция]) быть очень полезнаили
определенный текст. дрел6 и т.п. случае будут выведенызначения из диапазона
?). Рассмотрим различныеФункция НАЙТИ() учитывает РЕгиСТР возвращается значение ошибкиxcell = Range(«A2»).Value
Спасибо!: RAN,: Pelena, к сожалению нас не устраивает!(звёздочка) заменяет любоеВ случае, когда результатомfind_text для исправления ошибок
КнигаВыделите диапазон ячеек, средиСОВЕТ: все значения,A5:A13 варианты поиска.
букв и не #ЗНАЧ!Select Case 1krosav4igShAM нет, у меня
После каждого названия города количество символов или является ошибка, Вы
(искомый_текст) – текст, в Excel.. которых требуется осуществитьО поиске текстовыхсодержащие5 символам?Для удобства написания формул допускает использование подстановочныхФункция ПОИСК() не учитываетCase InStr(xcell, «абв.»): Доброй ночи
: Макрорекордер рулит: каждый день новый стоит символ их отсутствие, а можете использовать функцию
который Вы ищете.18-й день марафона мыНажмите кнопку поиск. значений с учетомслово дрель, иЗнак * (умножить) между
создадим Именованный диапазон знаков. Для поиска РЕгиСТР букв. ДляMsgBox «абв.»
200?’200px’:»+(this.scrollHeight+5)+’px’);»>.Find(«абв.*», , xlFormulas, xlWhole,200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub Макрос1(): Cells.Replace What:=»»,
файл от 5|
?IFERROR
excelworld.ru
Поиск определенных символов вначале содержимого ячейки (Макросы/Sub)
within_text посвятим изучению функции
Найти всеЧтобы выполнить поиск по
РЕгиСТра читайте в у которых есть частями формулы представляет
Список для диапазона без учета регистра, поиска с учетомCase InStr(xcell, «аб.») xlByRows, xlNext)
Replacement:=»/»: End Sub до 13 тыс.строк,(вертикальная черта), поэтому(вопросительный знак) заменяет(ЕСЛИОШИБКА), чтобы вместо(текст_для_поиска) – текстоваяSEARCHили всему листу, щелкните статье Поиск текстовых перед ним и условие И (значениеA5:A13 а также для регистра следует воспользоватьсяMsgBox «аб.»
giovannigiovanni где в некоторых мы, используя функцию
любой одиночный символ. выполнения функции строка, внутри которой(ПОИСК). Она ищетНайти далее любую ячейку.
значений в списках. после него как должно начинаться с. поиска с использованием функцией НАЙТИ().
Case InStr(xcell, «а.»): Пришла на ум
: Доброй ночи!
ячейках эти символы.SEARCHВ нашем примере использованSEARCH
происходит поиск. символ (или символы).На вкладке Часть3. Поиск с минимум 1 символ. дрел и иметьПеречень найденных значений будем подстановочных знаков пользуйтесь
Формула =ПОИСК("к";"Первый канал") вернет
MsgBox "а."
примерно такая идея
Подскажите, пожалуйста, поДело в том,(ПОИСК), можем найти символ подстановки(ПОИСК) вывести соответствующееstart_num внутри текстовой строкиНайти всеГлавная учетом РЕГИСТРА.
Для создания списка, содержащего такую же длину, помещать в отдельный функцией ПОИСК(). 8, т.к. букваEnd Select решения задачи. Например, следующему вопросу. что далее файл позицию этого символа.* сообщение. Функция(нач_позиция) – если и сообщает, гдесписки каждого экземпляра
в группеПримечание: найденные значения, воспользуемся как и критерий, столбец.Функция ПОИСК() может быть к находится на
End Sub ячейка с исходным
К примеру, есть
конвертим в .json,
Его позиция может
, поэтому в названиях
IFERROR
не указан, то
он был найден.
элемента, который необходимо
Редактирование
Мы стараемся как
excelworld.ru
формулой массива:
Рассмотрим применение подстановочных знаков в Excel (символы звездочки «*», тильды «~» и вопросительного знака «?») и их использование при поиске и замене текстовых значений.
Приветствую всех, дорогие читатели блога TutorExcel.Ru.
В начале предлагаю вспомнить определение подстановочных знаков и понять, что же это такое и для каких целей они применяются в Excel. А затем уже разберем применение на конкретных примерах.
Подстановочные знаки — это специальные символы, которые могут принимать вид любого произвольного количества символов, другими словами, являются определенными масками комбинаций символов.
Всего в Excel есть 3 типа подобных знаков:
- * (звездочка); Обозначает любое произвольное количество символов.
Например, поиск по фразе «*ник» найдет слова типа «понедельник», «всадник», «источник» и т.д. - ? (вопросительный знак); Обозначает один произвольный символ.
К примеру, поиск по фразе «ст?л» найдет «стол», «стул» и т.д. - ~ (тильда) с последующими знаками *, ? или ~. Обозначает конкретный символ *, ? или ~.
Например, поиск по фразе «хор*» найдет все фразы начинающиеся на «хор» («хоровод», «хорошо» и т.д.). Поэтому для точного поиска «хор*» нужно использовать символ «~» и искать по фразе «хор~*». Наличие «~» гарантирует, что Excel прочитает следующий символ как текст, а не как подстановочный знак.
Использование таких спецсимволов может быть полезно при фильтрации данных, для сравнения текста, при поиске и замене текстовых значений. Давайте подробно остановимся на каждом из основных вариантов применения.
Фильтрация данных
Рассмотрим пример. Предположим, что у нас имеется список сотрудников компании и мы хотим отфильтровать только тех сотрудников, у которых фамилии начинаются на конкретную букву (к примеру, на букву «п»):
Для начала добавляем фильтр на таблицу (выбираем вкладку Главная -> Редактирование -> Сортировка и фильтр или нажимаем сочетание клавиш Ctrl + Shift + L).
Для фильтрации списка воспользуемся символом звездочки, а именно введем в поле для поиска «п*» (т.е. фамилия начинается на букву «п», после чего идет произвольный текст):
Фильтр определил 3 фамилии удовлетворяющих критерию (начинающиеся с буквы «п»), нажимаем ОК и получаем итоговый список из подходящих фамилий:
В общем случае при фильтрации данных мы можем использовать абсолютно любые критерии, никак не ограничивая себя в выборе маски поиска (произвольный текст, различные словоформы, числа и т.д.).
К примеру, чтобы показать все варианты фамилий, которые начинаются на букву «к» и содержат букву «в», то применим фильтр «к*в*» (т.е. фраза начинается на «к», затем идет произвольный текст, потом «в», а затем еще раз произвольный текст).
Или поиск по «п?т*» найдет фамилии с первой буквой «п» и третьей буквой «т» (т.е. фраза начинается на «п», затем идет один произвольный символ, затем «т», и в конце опять произвольный текст).
Применение в функциях
Как уже говорилось выше, подстановочные знаки в Excel могут использоваться в качестве критерия при сравнении текста в различных функциях Excel (например, СЧЁТЕСЛИ, СУММЕСЛИ, СУММЕСЛИМН, ГПР, ВПР и другие).
Повторим задачу из предыдущего примера и подсчитаем количество сотрудников компании, фамилии которых начинаются на букву «п».
Воспользуемся функцией СЧЁТЕСЛИ, которая позволяет посчитать количество ячеек соответствующих указанному критерию.
В качестве диапазона данных укажем диапазон с сотрудниками (A2:A20), а в качестве критерия укажем запись «п*» (т.е. любая фраза начинающаяся на букву «п»):
Как и в первом примере, в результате мы получили ровно 3 фамилии.
Однако не все функции поддерживают применение подстановочных знаков. Некоторые из них (к примеру, функция НАЙТИ) любой символ воспринимают как текст, даже несмотря на то, что он может быть служебным.
С помощью функции НАЙТИ найдем в тексте позицию вхождения вопросительного знака и звездочки:
Обратным примером служит аналогичная функция ПОИСК, в которой мы должно четко указать что ищем именно служебный символ:
Как видим результат у функций получился одинаковым, однако обращение к подстановочным знакам разное.
Инструмент «Найти и заменить»
Подстановочные знаки в Excel также можно использовать для поиска и замены текстовых значений в инструменте «Найти и заменить» (комбинация клавиш Ctrl + F для поиска и Ctrl + H для замены).
Рассмотрим пример. Имеется список продукции магазина, в котором нам нужно найти продукт «молоко».
Предположим, что при вводе данных сделали ошибки из-за чего в списке появились продукты «малоко».
Чтобы несколько раз не искать данные по словам «молоко» или «малоко», при поиске воспользуемся критерием «м?локо» (т.е. вторая буква — произвольная):
При этом не стоит забывать, что с помощью данного инструмента можно не только искать текст, но и заменять его (к примеру, заменить «м?локо» на «молоко»).
Практически наверняка каждый сталкивался со следующей ситуацией — в тексте присутствует символ звездочки, который необходимо удалить или заменить на какой-либо другой текст.
Однако при попытке заменить звездочку возникают трудности — при замене меняются абсолютно весь текст, что естественно и логично, так как Excel воспринимает символ «*» как любой произвольный текст.
Но мы теперь уже знаем как с этим бороться, поэтому в поле Найти указываем текст «~*» (явно показываем, что звездочка является специальным символом), а в поле Заменить на указываем на что заменяем звездочку, либо оставляем поле пустым, если хотим удалить звездочку:
Аналогичная ситуация и при замене или удалении вопросительного знака и тильды.
Производя замену «~?» (для тильды — «~~») мы также без проблем сможем заменить или удалить спецсимвол.
Удачи вам и до скорых встреч на страницах блога Tutorexcel.ru
Поделиться с друзьями:
Поиск по сайту:
ПОИСК, ПОИСКБ (функции ПОИСК, ПОИСКБ)
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
В этой статье описаны синтаксис формулы и использование функций ПОИСК и ПОИСКБ в Microsoft Excel.
Функции ПОИСК И ПОИСКБ находят одну текстовую строку в другой и возвращают начальную позицию первой текстовой строки (считая от первого символа второй текстовой строки). Например, чтобы найти позицию буквы «n» в слове «printer», можно использовать следующую функцию:
Эта функция возвращает 4, так как «н» является четвертым символом в слове «принтер».
Можно также находить слова в других словах. Например, функция
возвращает 5, так как слово «base» начинается с пятого символа слова «database». Можно использовать функции ПОИСК и ПОИСКБ для определения положения символа или текстовой строки в другой текстовой строке, а затем вернуть текст с помощью функций ПСТР и ПСТРБ или заменить его с помощью функций ЗАМЕНИТЬ и ЗАМЕНИТЬБ. Эти функции показаны в примере 1 данной статьи.
Эти функции могут быть доступны не на всех языках.
Функция ПОИСКБ отсчитывает по два байта на каждый символ, только если языком по умолчанию является язык с поддержкой БДЦС. В противном случае функция ПОИСКБ работает так же, как функция ПОИСК, и отсчитывает по одному байту на каждый символ.
К языкам, поддерживающим БДЦС, относятся японский, китайский (упрощенное письмо), китайский (традиционное письмо) и корейский.
Аргументы функций ПОИСК и ПОИСКБ описаны ниже.
Искомый_текст Обязательный. Текст, который требуется найти.
Просматриваемый_текст Обязательный. Текст, в котором нужно найти значение аргумента искомый_текст.
Начальная_позиция Необязательный. Номер знака в аргументе просматриваемый_текст, с которого следует начать поиск.
Функции ПОИСК и ПОИСКБ не учитывают регистр. Если требуется учитывать регистр, используйте функции НАЙТИ и НАЙТИБ.
В аргументе искомый_текст можно использовать подстановочные знаки: вопросительный знак (?) и звездочку (*). Вопросительный знак соответствует любому знаку, звездочка — любой последовательности знаков. Если требуется найти вопросительный знак или звездочку, введите перед ним тильду (
Если значение аргумента искомый_текст не найдено, #VALUE! возвращено значение ошибки.
Если аргумент начальная_позиция опущен, то он полагается равным 1.
Если Нач_позиция не больше 0 или больше, чем длина аргумента просматриваемый_текст , #VALUE! возвращено значение ошибки.
Аргумент начальная_позиция можно использовать, чтобы пропустить определенное количество знаков. Допустим, что функцию ПОИСК нужно использовать для работы с текстовой строкой «МДС0093.МужскаяОдежда». Чтобы найти первое вхождение «М» в описательной части текстовой строки, задайте для аргумента начальная_позиция значение 8, чтобы поиск не выполнялся в той части текста, которая является серийным номером (в данном случае — «МДС0093»). Функция ПОИСК начинает поиск с восьмого символа, находит знак, указанный в аргументе искомый_текст, в следующей позиции, и возвращает число 9. Функция ПОИСК всегда возвращает номер знака, считая от начала просматриваемого текста, включая символы, которые пропускаются, если значение аргумента начальная_позиция больше 1.
Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.
Функция искать от определенного символа до другого символа
Доброго времени суток. Ребят подскажите пожалуйста как сделать такую функцию — Найти в ячейке слово и перенести до определенного символа
Я использую это =ЕСЛИОШИБКА(ПСТР(A1;ПОИСК(«ля-ля»;A1)+0;21);»») , но у меня по кол-ву символов подсчет идет, как сделать ту же функцию, но чтобы срезало до определенного символа «|» . гребанный эксель
Удаление данных после определенного символа
есть документ , в нем записи такого типа : Linux oper-232 Intel(R) Celeron(R) CPU G530 @.
Как удалить число после определенного символа, поставить ноль, остальную строку оставить без изменений?
Имеется столбец в каждой ячейке имеются координаты: x12 y2.43 z16.7 x43.457 y43.1 x89 z24.3.
Извлечь текст до определенного символа и извлечь из кавычек
Ребята, помогите, пожалуйста, с формулой. есть много текста в ячейках, в каждом тексте есть разные.
Считывание от определенного символа до другого определенного символа
Привет всем, можете помочь мне с кодом одним? Мне нужно что бы начиналось чтение от определенного.
Удалить часть строки от определенного символа до определенного символа
Всем привет, есть строка 127.0.0.1(spec) (domenadmin — user) как удалить не нужные символы.
Пример преимущества функции ПОИСК в Excel перед функцией НАЙТИ
В приложении Excel предусмотрено большое разнообразие инструментов для обработки текстовых и числовых данных. Одним из наиболее востребованных является функция ПОИСК. Она позволяет определять в строке, ячейке с текстовой информацией позицию искомой буквенной или числовой комбинации и записывать ее с помощью чисел.
Примеры использования функции ПОИСК в Excel
Для нахождения позиции текстовой строки в другой аналогичной применяют ПОИСК и ПОИСКБ. Расчет ведется с первого символа анализируемой ячейки. Так, если задать функцию ПОИСК “л” для слова «апельсин» мы получим значение 4, так как именно такой по счету выступает заданная буква в текстовом выражении.
Функция ПОИСК работает не только для поиска позиции отдельных букв в тексте, но и для целой комбинации. Например, задав данную команду для слов «book», «notebook», мы получим значение 5, так как именно с этого по счету символа начинается искомое слово «book».
Используют функцию ПОИСК наряду с такими, как:
- НАЙТИ (осуществляет поиск с учетом регистра);
- ПСТР (возвращает текст);
- ЗАМЕНИТЬ (заменяет символы).
Важно помнить, что рассматриваемая команда ПОИСК не учитывает регистра. Если мы с помощью нее станем искать положение буквы «а» в слове «Александр», в ячейке появится выражение 1, так как это первый символ в анализируемой информации. При задании команды НАЙТИ «а» в том же отрезке текста, мы получим значение 6, так как именно 6 позицию занимает строчная «а» в слове «Александр».
Кроме того, функция ПОИСК работает не для всех языков. От команды ПОИСКБ она отличается тем, что на каждый символ отсчитывает по 1 байту, в то время как ПОИСКБ — по два.
Чтобы воспользоваться функцией, необходимо ввести следующую формулу:
В этой формуле задаваемые значения определяются следующим образом.
- Искомый текст. Это числовая и буквенная комбинация, позицию которой требуется найти.
- Анализируемый текст. Это тот фрагмент текстовой информации, из которого требуется вычленить искомую букву или сочетание и вернуть позицию.
- Начальная позиция. Данный фрагмент необязателен для ввода. Но, если вы желаете найти, к примеру, букву «а» в строке со значением «А015487.Мужская одежда», то необходимо указать в конце формулы 8, чтобы анализ этого фрагмента проводился с восьмой позиции, то есть после артикула. Если этот аргумент не указан, то он по умолчанию считается равным 1. При указании начальной позиции положение искомого фрагмента все равно будет считаться с первого символа, даже если начальные 8 были пропущены в анализе. То есть в рассматриваемом примере букве «а» в строке «А015487.Мужская одежда» будет присвоено значение 14.
При работе с аргументом «искомый_текст» можно использовать следующие подстановочные знаки.
- Вопросительный знак (?). Он будет соответствовать любому знаку.
- Звездочка (*). Этот символ будет соответствовать любой комбинации знаков.
Если же требуется найти подобные символы в строке, то в аргументе «искомый_текст» перед ними нужно поставить тильду (
Если искомый текст не был найден приложением или начальная позиция установлена меньше 0, больше общего количества присутствующих символов, в ячейке отобразиться ошибка #ЗНАЧ.
Если «искомый_текст» не найден, возвращается значение ошибки #ЗНАЧ.
Пример использования функции ПОИСК и ПСТР
Пример 1. Есть набор текстовой информации с контактными данными клиентов и их именами. Информация записана в разных форматах. Необходимо найти, с какого символа начинается номер телефона.
Введем исходные данные в таблицу:
В ячейке, которая будет учитывать данные клиентов без телефона, введем следующую формулу:
Нажмем Enter для отображения искомой информации:
Далее мы можем использовать любые другие функции для отображения представленной информации в удобном формате:
На рисунке видно, как с помощью формулы из двух функций ПСТР и ПОИСК мы вырезаем фрагмент текста из строк разной длины. Притом разделяем текстовый фрагмент в нужном месте так, чтобы отделить ее от номера телефона.
Пример формулы ПОИСК и ЗАМЕНИТЬ
Пример 2. Есть таблица с текстовой информацией, в которой слово «маржа» нужно заменить на «объем».
Откроем книгу Excel с обрабатываемыми данными. Пропишем формулу для поиска нужного слова «маржа»:
Теперь дополним формулу функцией ЗАМЕНИТЬ:
Чем отличается функция ПОИСК от функции НАЙТИ в Excel?
Функция ПОИСК очень схожа с функцией НАЙТИ по принципу действия. Более того у них фактически одинаковые аргументы. Только лишь названия аргументов отличаются, а по сути и типам значений – одинаковые:
Но опытный пользователь Excel знает, что отличие у этих двух функций очень существенные.
Отличие №1. Чувствительность к верхнему и нижнему регистру (большие и маленькие буквы). Функция НАЙТИ чувствительна к регистру символов. Например, есть список номенклатурных единиц с артикулом. Необходимо найти позицию маленькой буквы «о».
Теперь смотрите как ведут себя по-разному эти две функции при поиске большой буквы «О» в критериях поиска:
Отличие №2. В первом аргументе «Искомый_текст» для функции ПОИСК мы можем использовать символы подстановки для указания не точного, а приблизительного значения, которое должно содержаться в исходной текстовой строке. Вторая функция НАЙТИ не умеет использовать в работе символы подстановки масок текста: «*»; «?»; «
Для примера попробуем в этих же исходных строках столбца «наименования» найти приблизительный текст. Для этого укажем следующий вид критерия поиска используя символы подстановки: «н*ая».
Как видим во втором отличии функция НАЙТИ совершенно не умеет работать и распознавать спецсимволы для подстановки текста в критериях поиска при неточном совпадении в исходной строке.
Функция ПОИСК() в MS EXCEL
Синтаксис функции
ПОИСК(искомый_текст;просматриваемая_строка;[нач_позиция])
Искомый_текст — текст, который требуется найти.
Просматриваемая_строка — текст, в которой ищется Искомый_текст.
Нач_позиция — позиция знака в просматриваемой_строке, с которой должен начинаться поиск. Если аргумент нач_позиция опущен, то предполагается значение 1.
В аргументе искомый_текст можно использовать подстановочные знаки — вопросительный знак (?) и звездочку (*). Вопросительный знак соответствует любому знаку; звездочка — любой последовательности знаков. Если нужно найти в тексте вопросительный знак или звездочку, следует поставить перед ними тильду (
Если искомый_текст не найден, возвращается значение ошибки #ЗНАЧ!
Функция ПОИСК() не учитывает РЕгиСТР букв. Для поиска с учетом регистра следует воспользоваться функцией НАЙТИ() .
Формула =ПОИСК(«к»;»Первый канал») вернет 8, т.к. буква к находится на 8-й позиции слева.
Пусть в ячейке А2 введена строка Первый канал — лучший. Формула =ПОИСК(СИМВОЛ(32);A2) вернет 7, т.к. символ пробела (код 32) находится на 7-й позиции.
Формула =ПОИСК(«#. #»;»Артикул #123# ID») будет искать в строке «Артикул #123# ID» последовательность из 5 символов, которая начинается и заканчивается на знак #.
Чтобы найти позицию второго вхождения буквы «а» в строке «мама мыла раму» используйте формулу =ПОИСК(«а»;»мама мыла раму»;ПОИСК(«а»;»мама мыла раму»)+1). Чтобы определить есть ли третье вхождение буквы «м» в строке «мама мыла раму» используйте формулу =ЕСЛИ(ДЛСТР(ПОДСТАВИТЬ(«мама мыла раму»;»м»;»»;3))=ДЛСТР(«мама мыла раму»);»Нет третьего вхождения м»;»Есть третье вхождение м»)
Формула =ПОИСК(«клад?»;»докладная») вернет 3, т.е. в слове «докладная» содержится слово из 5 букв, первые 4 из которых клад (начиная с третьей буквы слова докладная).
Функция НАЙТИ() vs ПОИСК()
Функция НАЙТИ() учитывает РЕгиСТР букв и не допускает использование подстановочных знаков. Для поиска без учета регистра, а также для поиска с использованием подстановочных знаков пользуйтесь функцией ПОИСК() .
Связь с функциями ЛЕВСИМВ() , ПРАВСИМВ() и ПСТР()
Функция ПОИСК() может быть использована совместно с функциями ЛЕВСИМВ() , ПРАВСИМВ() и ПСТР() .
Например, в ячейке А2 содержится фамилия и имя «Иванов Иван», то формула =ЛЕВСИМВ(A2;ПОИСК(СИМВОЛ(32);A2)-1) извлечет фамилию, а =ПРАВСИМВ(A2;ДЛСТР(A2)-ПОИСК(СИМВОЛ(32);A2)) — имя. Если между именем и фамилией содержится более одного пробела, то для работоспособности вышеупомянутых формул используйте функцию СЖПРОБЕЛЫ() .
Извлечение слов из текста в Excel
Возможности Excel не ограничиваются построением таблиц и работой с цифрами. Благодаря множеству разнообразных встроенных инструментов, круг задач, которые можно решить посредством Excel, необычайно широк. Например, благодаря встроенным текстовым функциям программа может ловко управляться с текстом. Продемонстрируем это на примере задачи извлечения слов из текста.
Важное замечание!
Задача 1. Подсчет количества слов в тексте
Для начала нужно научиться элементарному действию — подсчету количества слов в исходном тексте. Напрямую этого сделать нельзя, но используя текстовые функции и немного логики, задачу можно решить.
Итак, слова в тексте отделены друг от друга пробелами. Пробелов всегда на 1 меньше, чем слов (действительно, между двумя словами — один пробел, между тремя — два и т.д.). Значит, достаточно подсчитать пробелы и прибавить к ним единицу, чтобы узнать число слов в ячейке.
В Excel есть замечательные функции ДЛСТР() и ПОДСТАВИТЬ() . Первая подсчитывает количество символов в указанной ячейке, а вторая умеет заменять указанный символ на любой другой или на пусто (обозначается как двойные кавычки без пробела между ними «» ).
Функция ПОДСТАВИТЬ() имеет 4 аргумента:
1) Ячейка с текстом
2) То, что нужно заменить (указывается в кавычках)
3) То, на что нужно заменить (указывается в кавычка)
4) Необязательный аргумент — номер вхождения заменяемого текста. То есть, если в тексте 4 пробела, мы можем заменить только тот, номер которого укажем. Если аргумент опущен — заменяются все символы.
Первой функцией мы можем узнать длину текста в ячейке. Второй функцией мы можем заменить все пробелы в тексте на «» (пусто), то есть удалить. Если после удаления мы подсчитаем длину текста еще раз, то она сократится ровно на число удаленных пробелов. Таким образом, чтобы подсчитать пробелы, нужна формула:
Прибавим к ней единицу — и получим число слов в ячейке.
Имейте в виду, что такой способ подсчета принимает символы, отделенные от слов пробелом, за отдельные слова. Например, тире, обрамленное пробелами, также будет считаться отдельным словом. Избежать этого можно, если перед подсчетом пробелов убрать функцией ПОДСТАВИТЬ() лишние знаки из ячейки.
Задача 2. Извлечение первого слова из текста
Раз слова отделены пробелами, то первое слово от второго отделено первым в тексте пробелом. Значит для извлечения первого слова, нам нужно найти первый пробел и извлечь из текста всё, что идет до него.
Найти символ в тексте поможет функция НАЙТИ() . У нее есть 3 аргумента:
1) Искомый текст;
2) Текст, в котором ищем;
3) С какого символа начать поиск (необязательный, если опущен — функция ищет с самого начала).
Результатом работы функции является позиция первого символа найденного текста в строке. Например, формула =НАЙТИ(«плюс»;»Один плюс один») вернет в результате число 6 (именно с этой позиции начинается искомое слово «плюс»). Если в строке несколько раз содержится искомое слово, то вернется результат для первого вхождения.
Функция НАЙТИ работает с учетом регистра и без подстановочных знаков. Если нужно их использовать, или не учитывать регистр — есть аналогичная функция ПОИСК() .
Теперь мы можем найти позицию первого пробела
Извлечь символы до пробела поможет функция ЛЕВСИМВ . Ей нужно указать текст, а также число символов, которое нужно извлечь начиная с первого. Если найденный пробел, например, 6-ой символ, то нам нужно извлечь 6-1=5.
Формула для извлечения первого слова:
Если в строке одно слово (то есть нет пробела между первым и вторым словом), данная формула вернет ошибку. Чтобы этого избежать, нужно добавить к ней функцию ЕСЛИОШИБКА() .
Теперь формула корректно сработает для любого числа слов в ячейке.
Задача 3. Извлечение последнего слова из текста
Извлечь последнее слово несколько труднее, так как функции поиска текста в ячейке работают только слева направо. Логика формулы будет такая:
- подсчитаем, сколько в ячейке пробелов, воспользовавшись приемом из Задачи 1.
=ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»))
- с помощью функции ПОДСТАВИТЬ заменим последний пробел в тексте на символ, которого там точно нет (например, «*» или «$»). Чтобы заменить именно последний пробел, добавим в качестве необязательного аргумента формулу из предыдущего пункта (то есть число пробелов, так как оно равно номеру последнего пробела)
=ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»)))
- теперь, когда последний пробел заменен на «*», мы можем узнать его позицию с помощью функции НАЙТИ() . В качестве текста, в котором ищем, укажем предыдущую формулу
=НАЙТИ(«*»;ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»))))
- если из общей длины текста мы вычтем найденную позицию звездочки, то получим число символов после звездочки (то есть длину последнего слова в ячейке)
=ДЛСТР(A1)-НАЙТИ(«*»;ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»))))
- теперь, зная длину последнего слова, мы можем вытащить его из ячейки с помощью функции ПРАВСИМВ() . Она работает точно так же, как ЛЕВСИМВ() , но извлекает символы не с начала, а с конца строки. В качестве количества извлекаемых символов, укажем предыдущую формулу.
Как и в предыдущей задаче, можно обернуть в ЕСЛИОШИБКА , чтобы верно работало с ячейками, в которых только 1 слово.
=ЕСЛИОШИБКА(ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(«*»;ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»)))));A1)
Если Вас не пугает VBA и макросы, то есть гораздо более изящное решение. Добавьте в модуль книги (можно в личную книгу макросов) следующий код:
Function РЕВЕРС(str As String)
Это макрофункция. Теперь, используя ее, можно отразить текст зеркально, извлечь первое слово, как в Задаче 2 и отразить его обратно. Формула:
Берите на вооружение, если любите макросы.
Задача 4. Извлечение n-ного слова из текста
Самый интересный пример. Для решения подобной задачи нужно применить фантазию. Разберем решение поэтапно.
Помимо уже использовавшихся в статье функций, нам понадобятся еще 2:
1) ПОВТОР() . Умеет повторять указанный текст указанное число раз.
2) ПСТР() . Имеет 3 аргумента:
- исходный текст;
- позиция, с которой нужно начать извлечение;
- число символов, которые нужно извлечь.
Теперь мы вооружены всем нужным инструментарием. Приступаем:
- Для начала воспользуемся функцией ПОВТОР() , чтобы вместо 1 пробела в тексте вставить число пробелов, равное длине исходного текста. Количество повторений узнаем через уже известную функцию ДЛСТР() . Итак, формула:
=ПОДСТАВИТЬ(A1;» «;ПОВТОР(» «;ДЛСТР(A1)))
- Теперь каждое слово отделено друг от друга числом символов, равным общей длине строки. Чтобы извлечь слово под номером n, нам нужно узнать позицию какого-нибудь пробела между словом n и n-1 в обработанном удлиненном тексте. Это может сделать формула ниже (+1 в ней нужно для правильного поиска первого слова):
=ДЛСТР(A1)*(n-1)+1
Чтобы лучше понять, какую позицию относительно начала строки Вы найдете благодаря этой формуле, взгляните на рисунок ниже (делайте поправку на масштаб).
- Теперь мы может извлечь из найденной позиции число символов ДЛСТР(A1) (на рисунке — m ) и извлеченный текст всегда будет захватывать нужное нам слово целиком (с некоторым количеством предшествующих и последующих пробелов)
=ПСТР(ПОДСТАВИТЬ(A1;» «;ПОВТОР(» «;ДЛСТР(A1)));ДЛСТР(A1)*(n-1)+1;ДЛСТР(A1))
- Осталось избавиться от лишних пробелов функцией СЖПРОБЕЛЫ()
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A1;» «;ПОВТОР(» «;ДЛСТР(A1)));ДЛСТР(A1)*(n-1)+1;ДЛСТР(A1)))
Не забудьте в формуле заменить n на номер извлекаемого слова или ссылку на ячейку с этим номером.
Задача 5. Извлечение имя файла из полного пути к нему
Напоследок, небольшой практический пример. Есть некоторый список файлов с указанием полного пути к ним. Нужно из всех ссылок собрать только имена файлов.
Как мы знаем, директории в ссылках отделены друг от друга символом «». После последнего такого символа расположено нужное нам имя файла. Похоже на задачу с извлечением последнего слова? Только вместо пробелов теперь символ обратной косой черты.
Берем формулу из задачи 3 и заменяем в ней пробелы на «».
Получим следующую формулу:
Вставляем в ячейку и вуаля! Имя файла извлечено.
Полученной информации Вам будет вполне достаточно, чтобы извлечь из ячейки, например, имя файла без расширения. Попробуйте составить такую формулу самостоятельно и сравните ее с формулой, предоставленной в файле-примере. Его можно скачать здесь . Там Вы найдете все формулы, предложенные в статье.
Поддержать наш проект и его дальнейшее развитие можно вот здесь .
Ваши вопросы по статье можете задавать через нашего бота обратной связи в Telegram: @ExEvFeedbackBot
Содержание
- Поисковая функция в Excel
- Способ 1: простой поиск
- Способ 2: поиск по указанному интервалу ячеек
- Способ 3: Расширенный поиск
- Вопросы и ответы
В документах Microsoft Excel, которые состоят из большого количества полей, часто требуется найти определенные данные, наименование строки, и т.д. Очень неудобно, когда приходится просматривать огромное количество строк, чтобы найти нужное слово или выражение. Сэкономить время и нервы поможет встроенный поиск Microsoft Excel. Давайте разберемся, как он работает, и как им пользоваться.
Поисковая функция в Excel
Поисковая функция в программе Microsoft Excel предлагает возможность найти нужные текстовые или числовые значения через окно «Найти и заменить». Кроме того, в приложении имеется возможность расширенного поиска данных.
Способ 1: простой поиск
Простой поиск данных в программе Excel позволяет найти все ячейки, в которых содержится введенный в поисковое окно набор символов (буквы, цифры, слова, и т.д.) без учета регистра.
- Находясь во вкладке «Главная», кликаем по кнопке «Найти и выделить», которая расположена на ленте в блоке инструментов «Редактирование». В появившемся меню выбираем пункт «Найти…». Вместо этих действий можно просто набрать на клавиатуре сочетание клавиш Ctrl+F.
- После того, как вы перешли по соответствующим пунктам на ленте, или нажали комбинацию «горячих клавиш», откроется окно «Найти и заменить» во вкладке «Найти». Она нам и нужна. В поле «Найти» вводим слово, символы, или выражения, по которым собираемся производить поиск. Жмем на кнопку «Найти далее», или на кнопку «Найти всё».
- При нажатии на кнопку «Найти далее» мы перемещаемся к первой же ячейке, где содержатся введенные группы символов. Сама ячейка становится активной.
Поиск и выдача результатов производится построчно. Сначала обрабатываются все ячейки первой строки. Если данные отвечающие условию найдены не были, программа начинает искать во второй строке, и так далее, пока не отыщет удовлетворительный результат.
Поисковые символы не обязательно должны быть самостоятельными элементами. Так, если в качестве запроса будет задано выражение «прав», то в выдаче будут представлены все ячейки, которые содержат данный последовательный набор символов даже внутри слова. Например, релевантным запросу в этом случае будет считаться слово «Направо». Если вы зададите в поисковике цифру «1», то в ответ попадут ячейки, которые содержат, например, число «516».
Для того, чтобы перейти к следующему результату, опять нажмите кнопку «Найти далее».
Так можно продолжать до тех, пор, пока отображение результатов не начнется по новому кругу.
- В случае, если при запуске поисковой процедуры вы нажмете на кнопку «Найти все», все результаты выдачи будут представлены в виде списка в нижней части поискового окна. В этом списке находятся информация о содержимом ячеек с данными, удовлетворяющими запросу поиска, указан их адрес расположения, а также лист и книга, к которым они относятся. Для того, чтобы перейти к любому из результатов выдачи, достаточно просто кликнуть по нему левой кнопкой мыши. После этого курсор перейдет на ту ячейку Excel, по записи которой пользователь сделал щелчок.
Способ 2: поиск по указанному интервалу ячеек
Если у вас довольно масштабная таблица, то в таком случае не всегда удобно производить поиск по всему листу, ведь в поисковой выдаче может оказаться огромное количество результатов, которые в конкретном случае не нужны. Существует способ ограничить поисковое пространство только определенным диапазоном ячеек.
- Выделяем область ячеек, в которой хотим произвести поиск.
- Набираем на клавиатуре комбинацию клавиш Ctrl+F, после чего запуститься знакомое нам уже окно «Найти и заменить». Дальнейшие действия точно такие же, что и при предыдущем способе. Единственное отличие будет состоять в том, что поиск выполняется только в указанном интервале ячеек.
Способ 3: Расширенный поиск
Как уже говорилось выше, при обычном поиске в результаты выдачи попадают абсолютно все ячейки, содержащие последовательный набор поисковых символов в любом виде не зависимо от регистра.
К тому же, в выдачу может попасть не только содержимое конкретной ячейки, но и адрес элемента, на который она ссылается. Например, в ячейке E2 содержится формула, которая представляет собой сумму ячеек A4 и C3. Эта сумма равна 10, и именно это число отображается в ячейке E2. Но, если мы зададим в поиске цифру «4», то среди результатов выдачи будет все та же ячейка E2. Как такое могло получиться? Просто в ячейке E2 в качестве формулы содержится адрес на ячейку A4, который как раз включает в себя искомую цифру 4.
Но, как отсечь такие, и другие заведомо неприемлемые результаты выдачи поиска? Именно для этих целей существует расширенный поиск Excel.
- После открытия окна «Найти и заменить» любым вышеописанным способом, жмем на кнопку «Параметры».
- В окне появляется целый ряд дополнительных инструментов для управления поиском. По умолчанию все эти инструменты находятся в состоянии, как при обычном поиске, но при необходимости можно выполнить корректировку.
По умолчанию, функции «Учитывать регистр» и «Ячейки целиком» отключены, но, если мы поставим галочки около соответствующих пунктов, то в таком случае, при формировании результата будет учитываться введенный регистр, и точное совпадение. Если вы введете слово с маленькой буквы, то в поисковую выдачу, ячейки содержащие написание этого слова с большой буквы, как это было бы по умолчанию, уже не попадут. Кроме того, если включена функция «Ячейки целиком», то в выдачу будут добавляться только элементы, содержащие точное наименование. Например, если вы зададите поисковый запрос «Николаев», то ячейки, содержащие текст «Николаев А. Д.», в выдачу уже добавлены не будут.
По умолчанию, поиск производится только на активном листе Excel. Но, если параметр «Искать» вы переведете в позицию «В книге», то поиск будет производиться по всем листам открытого файла.
В параметре «Просматривать» можно изменить направление поиска. По умолчанию, как уже говорилось выше, поиск ведется по порядку построчно. Переставив переключатель в позицию «По столбцам», можно задать порядок формирования результатов выдачи, начиная с первого столбца.
В графе «Область поиска» определяется, среди каких конкретно элементов производится поиск. По умолчанию, это формулы, то есть те данные, которые при клике по ячейке отображаются в строке формул. Это может быть слово, число или ссылка на ячейку. При этом, программа, выполняя поиск, видит только ссылку, а не результат. Об этом эффекте велась речь выше. Для того, чтобы производить поиск именно по результатам, по тем данным, которые отображаются в ячейке, а не в строке формул, нужно переставить переключатель из позиции «Формулы» в позицию «Значения». Кроме того, существует возможность поиска по примечаниям. В этом случае, переключатель переставляем в позицию «Примечания».
Ещё более точно поиск можно задать, нажав на кнопку «Формат».
При этом открывается окно формата ячеек. Тут можно установить формат ячеек, которые будут участвовать в поиске. Можно устанавливать ограничения по числовому формату, по выравниванию, шрифту, границе, заливке и защите, по одному из этих параметров, или комбинируя их вместе.
Если вы хотите использовать формат какой-то конкретной ячейки, то в нижней части окна нажмите на кнопку «Использовать формат этой ячейки…».
После этого, появляется инструмент в виде пипетки. С помощью него можно выделить ту ячейку, формат которой вы собираетесь использовать.
После того, как формат поиска настроен, жмем на кнопку «OK».
Бывают случаи, когда нужно произвести поиск не по конкретному словосочетанию, а найти ячейки, в которых находятся поисковые слова в любом порядке, даже, если их разделяют другие слова и символы. Тогда данные слова нужно выделить с обеих сторон знаком «*». Теперь в поисковой выдаче будут отображены все ячейки, в которых находятся данные слова в любом порядке.
- Как только настройки поиска установлены, следует нажать на кнопку «Найти всё» или «Найти далее», чтобы перейти к поисковой выдаче.
Как видим, программа Excel представляет собой довольно простой, но вместе с тем очень функциональный набор инструментов поиска. Для того, чтобы произвести простейший писк, достаточно вызвать поисковое окно, ввести в него запрос, и нажать на кнопку. Но, в то же время, существует возможность настройки индивидуального поиска с большим количеством различных параметров и дополнительных настроек.