Excel поиск позиции символа в строке

ПОИСК, ПОИСКБ (функции ПОИСК, ПОИСКБ)

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Еще…Меньше

В этой статье описаны синтаксис формулы и использование функций ПОИСК и ПОИСКБ в Microsoft Excel.

Описание

Функции ПОИСК И ПОИСКБ находят одну текстовую строку в другой и возвращают начальную позицию первой текстовой строки (считая от первого символа второй текстовой строки). Например, чтобы найти позицию буквы «n» в слове «printer», можно использовать следующую функцию:

=ПОИСК(«н»;»принтер»)

Эта функция возвращает 4, так как «н» является четвертым символом в слове «принтер».

Можно также находить слова в других словах. Например, функция

=ПОИСК(«base»;»database»)

возвращает 5, так как слово «base» начинается с пятого символа слова «database». Можно использовать функции ПОИСК и ПОИСКБ для определения положения символа или текстовой строки в другой текстовой строке, а затем вернуть текст с помощью функций ПСТР и ПСТРБ или заменить его с помощью функций ЗАМЕНИТЬ и ЗАМЕНИТЬБ. Эти функции показаны в примере 1 данной статьи.

Важно: 

  • Эти функции могут быть доступны не на всех языках.

  • Функция ПОИСКБ отсчитывает по два байта на каждый символ, только если языком по умолчанию является язык с поддержкой БДЦС. В противном случае функция ПОИСКБ работает так же, как функция ПОИСК, и отсчитывает по одному байту на каждый символ.

К языкам, поддерживающим БДЦС, относятся японский, китайский (упрощенное письмо), китайский (традиционное письмо) и корейский.

Синтаксис

ПОИСК(искомый_текст;просматриваемый_текст;[начальная_позиция])

ПОИСКБ(искомый_текст;просматриваемый_текст;[начальная_позиция])

Аргументы функций ПОИСК и ПОИСКБ описаны ниже.

  • Искомый_текст    Обязательный. Текст, который требуется найти.

  • Просматриваемый_текст    Обязательный. Текст, в котором нужно найти значение аргумента искомый_текст.

  • Начальная_позиция    Необязательный. Номер знака в аргументе просматриваемый_текст, с которого следует начать поиск.

Замечание

  • Функции ПОИСК и ПОИСКБ не учитывают регистр. Если требуется учитывать регистр, используйте функции НАЙТИ и НАЙТИБ.

  • В аргументе искомый_текст можно использовать подстановочные знаки: вопросительный знак (?) и звездочку (*). Вопросительный знак соответствует любому знаку, звездочка — любой последовательности знаков. Если требуется найти вопросительный знак или звездочку, введите перед ним тильду (~).

  • Если значение find_text не найдено, #VALUE! возвращается значение ошибки.

  • Если аргумент начальная_позиция опущен, то он полагается равным 1.

  • Если start_num больше нуля или больше, чем длина аргумента within_text, #VALUE! возвращается значение ошибки.

  • Аргумент начальная_позиция можно использовать, чтобы пропустить определенное количество знаков. Допустим, что функцию ПОИСК нужно использовать для работы с текстовой строкой «МДС0093.МужскаяОдежда». Чтобы найти первое вхождение «М» в описательной части текстовой строки, задайте для аргумента начальная_позиция значение 8, чтобы поиск не выполнялся в той части текста, которая является серийным номером (в данном случае — «МДС0093»). Функция ПОИСК начинает поиск с восьмого символа, находит знак, указанный в аргументе искомый_текст, в следующей позиции, и возвращает число 9. Функция ПОИСК всегда возвращает номер знака, считая от начала просматриваемого текста, включая символы, которые пропускаются, если значение аргумента начальная_позиция больше 1.

Примеры

Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.

Данные

Выписки

Доход: маржа

маржа

Здесь «босс».

Формула

Описание

Результат

=ПОИСК(«и»;A2;6)

Позиция первого знака «и» в строке ячейки A2, начиная с шестого знака.

7

=ПОИСК(A4;A3)

Начальная позиция строки «маржа» (искомая строка в ячейке A4) в строке «Доход: маржа» (ячейка, в которой выполняется поиск — A3).

8

=ЗАМЕНИТЬ(A3;ПОИСК(A4;A3);6;»объем»)

Заменяет слово «маржа» словом «объем», определяя позицию слова «маржа» в ячейке A3 и заменяя этот знак и последующие пять знаков текстовой строкой «объем.»

Доход: объем

=ПСТР(A3;ПОИСК(» «;A3)+1,4)

Возвращает первые четыре знака, которые следуют за первым пробелом в строке «Доход: маржа» (ячейка A3).

марж

=ПОИСК(«»»»;A5)

Позиция первой двойной кавычки («) в ячейке A5.

5

=ПСТР(A5;ПОИСК(«»»»;A5)+1;ПОИСК(«»»»;A5;ПОИСК(«»»»;A5)+1)-ПОИСК(«»»»;A5)-1)

Возвращает из ячейки A5 только текст, заключенный в двойные кавычки.

босс

Нужна дополнительная помощь?

ПОИСК, ПОИСКБ (функции ПОИСК, ПОИСКБ)

​Смотрите также​ подстроку заданного размера.​ полученному числу прибавляется​​ дат.​​ — это я​​ колонке С не​​ арифметические операции (по​

Описание

​ ячейке​​ специальные комбинации символов​​и выглядит так:​​ ПОИСК(). Согласно критерию​​=ПСТР(A2;1;НАЙТИ(» №»;A2;1)-1)​Если «нач_позиция» больше, чем​ так и двухбайтовый,​ A2, начиная с​ или больше, чем​ В противном случае​В этой статье описаны​ Начальная позиция символа​ единица для нахождения​Вид исходной таблицы данных:​ так полагаю 12​

​ пусто.​

​ смежным столбцам)​​A1​​ (^v, ^l). В​ «?дрель?». В этом​ «дрел?» (длина 5​

​Выделяет текст от позиции​ длина аргумента «просматриваемый_текст»,​ как один знак,​

​ шестого знака.​

​ длина​​ функция ПОИСКБ работает​​ синтаксис формулы и​ в строке соответствует​ позиции первого символа​Для заполнения номера дня​ часть единицы, а​​- количество строк,​​Формуляр​​).​​ окне стандартного поиска​ случае будут выведены​ символов) — должны​ 1 до знака​ функции НАЙТИ и​ независимо от выбранного​​7​​просматриваемого текста​​ так же, как​​ использование функций​ числу 1. Если​​ названия марки продукта.​​ используем следующую формулу​​ именно суток), например​​ у которых в​: Для этого существует​Формула для подсчета символа​

​ EXCEL использование таких​​ все значения,​

  • ​ быть выведены 3​ «№» в строке​ НАЙТИБ, то возвращается​

  • ​ по умолчанию языка.​=ПОИСК(A4;A3)​, возвращается значение ошибки​ функция ПОИСК, и​ПОИСК​ данный аргумент принимает​ Итоговое значение используется​ (использовать в качестве​ если надо более​ колонке D значение​ обычный​ Z в слове​ комбинаций не предусмотрено,​

​содержащие​ значения: Дрель, дрель,​ («Керамический изолятор»)​ значение ошибки #ЗНАЧ!.​Функция НАЙТИБ при подсчете​

Синтаксис

​Начальная позиция строки «маржа»​

​ #ЗНАЧ!.​

​ отсчитывает по одному​и​

  • ​ дробное число из​​ в качестве аргумента​ формулы массива):​

  • ​ 2 дней​​ равно «Ожидание»​FIND(find_text,within_text,start_num)​ Zigzag (с учетом​​ но из ситуации​​слово дрель, и​

  • ​ Дрели.​​Керамический изолятор​Аргумент «нач_позиция» можно использовать,​​ рассматривает каждый двухбайтовый​​ (искомая строка в​Аргумент​

Замечание

  • ​ байту на каждый​​ПОИСКБ​​ диапазона допустимых значений,​​ начальная_позиция функции ПСТР.​​Описание аргументов:​то поставить >2​_Boroda_​​ALARMus​​ регистра), см. файл​​ можно выйти по-другому.​​ у которых есть​

  • ​Для создания списка, содержащего​​=ПСТР(A3;1;НАЙТИ(» №»;A3;1)-1)​​ чтобы пропустить нужное​ знак как два​ ячейке A4) в​​начальная_позиция​​ символ.​​в Microsoft Excel.​​ дробная часть будет​ Для упрощения, вместо​A2:A10 – диапазон ячеек​ ?​: Красные ячейки​: Именно его я​ примера:​​Для поиска, например, спецсимвола​​ перед ним и​

  • ​ найденные значения, воспользуемся​​Выделяет текст от позиции​​ количество знаков. Предположим,​ знака, если включена​

  • ​ строке «Доход: маржа»​​можно использовать, чтобы​​К языкам, поддерживающим БДЦС,​Функции​

  • ​ усечена;​​ поиска номера последней​​ с текстовым представлением​Serge_007​ALARMus​​ и пробовал, или​​=ДЛСТР(A1) — ДЛСТР(ПОДСТАВИТЬ(A1;»Z»;»»))​ Разрыв страницы (см.​

  • ​ после него как​​ формулой массива:​​ 1 до знака​ например, что для​ поддержка языка с​ (ячейка, в которой​​ пропустить определенное количество​​ относятся японский, китайский​ПОИСК​число_знаков – обязательный аргумент,​ позиции (например, с​ дат, из которых​: Да. Дни в​: вот это спасибо.​​ я не так​​Формула для подсчета символа​ статью Вставка символа​ минимум 1 символ.​=ИНДЕКС(Список;​ «№» в ячейке​ поиска строки «МДС0093.МесячныеПродажи»​ БДЦС и такой​​ выполняется поиск — A3).​​ знаков. Допустим, что​ (упрощенное письмо), китайский​И​ принимающий значение из​​ помощью функции ДЛСТР)​​ будут выделены номера​ Excel — это​Вот помогли. (+1​​ составил функцию или​​ Z (или z)​ Разрыва строки для​Для создания списка, содержащего​​НАИМЕНЬШИЙ(ЕСЛИОШИБКА(ЕСЛИ((ПОИСК($C$2;Список)=1)*(ДЛСТР($C$2)=ДЛСТР(Список))=1;СТРОКА(Список)-СТРОКА($A$4);НД());»»);​​ А3 («Медная пружина»)​ используется функция НАЙТИ.​ язык установлен по​​8​​ функцию​

Примеры

​ (традиционное письмо) и​ПОИСКБ​ диапазона неотрицательных чисел,​ указано число 100,​ дней;​ целая часть числа,​ exp. для моего​ одно из двух,​ в слове Zigzag​ удобства чтения формул​ найденные значения, воспользуемся​СТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК(Список))))​Медная пружина​

​ Чтобы найти номер​

​ умолчанию. В противном​

​=ЗАМЕНИТЬ(A3;ПОИСК(A4;A3);6;»объем»)​

​ПОИСК​

​ корейский.​

​находят одну текстовую​

​ которое характеризует длину​

​ которое в данном​

​1 – номер начальной​

​ значения даты и​ опыта)​ но НАЙТИ если​ (без учета РЕгиСТра):​

​ в ячейке) нужно​

​ формулой массива:​

​)​=ПСТР(A4;1;НАЙТИ(» №»;A4;1)-1)​ первого вхождения «М»​ случае функция НАЙТИБ​Заменяет слово «маржа» словом​нужно использовать для​

​ПОИСК(искомый_текст;просматриваемый_текст;[начальная_позиция])​

​ строку в другой​

​ в символах возвращаемой​ примере гарантированно превышает​ позиции символа извлекаемой​ времени.​ALARMus​ указать диапазон в​=ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(СТРОЧН(A1);»z»;»»))​ сделать следующее:​

​=ИНДЕКС(Список;НАИМЕНЬШИЙ(​

​Часть формулы ПОИСК($C$2;Список)=1 определяет:​

​Выделяет текст от позиции​ в описательную часть​ рассматривает каждый знак​ «объем», определяя позицию​ работы с текстовой​

​ПОИСКБ(искомый_текст;просматриваемый_текст;[начальная_позиция])​

​ и возвращают начальную​

​ подстроки. Если в​ количество знаков в​ подстроки (первый символ​

​ЗЫ И можно​

​: А еще дополнительный​

​ котором надо искать​Для подсчета количества пробелов​перейти в раскладку Английский​

​ЕСЛИОШИБКА(ЕСЛИ(ПОИСК($G$2;Список);СТРОКА(Список)-СТРОКА($A$4);НД());»»);​

support.office.com

НАЙТИ, НАЙТИБ (функции НАЙТИ, НАЙТИБ)

​начинается​ 1 до знака​ текстовой строки, задайте​​ как один знак.​​ слова «маржа» в​​ строкой «МДС0093.МужскаяОдежда». Чтобы​​Аргументы функций ПОИСК и​

Описание

​ позицию первой текстовой​ качестве этого аргумента​ изначальной строке.​ в исходной строке);​ не вводить как​ вопрос.​ ищет до первого​

​ (код символа пробела​​ (США)​

  • ​СТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК(Список))))​ли значение из​ «№» в ячейке​

  • ​ значение аргумента «нач_позиция»​К языкам, поддерживающим БДЦС,​ ячейке A3 и​ найти первое вхождение​ ПОИСКБ описаны ниже.​ строки (считая от​ передано число 0​В результате расчетов получим:​2 – номер последней​ формулу массива​

  • ​Если у функции​ найденного.​ — 32) в​нажать​)​ диапазона​ А4 («Переменный резистор»)​

  • ​ равным 8, чтобы​ относятся японский, китайский​ заменяя этот знак​ «М» в описательной​Искомый_текст​ первого символа второй​ (нуль), функция ПСТР​Пример 3. В таблице​ позиции символа извлекаемой​ALARMus​ есть координаты ячеек​

​По крайней мере​ ячейке используйте формулу:​CTRL+F​Часть формулы ПОИСК($G$2;Список) определяет:​A5:A13​

Синтаксис

​Переменный резистор​

​ поиск в той​

​ (упрощенное письмо), китайский​ и последующие пять​

  • ​ части текстовой строки,​​    Обязательный. Текст, который требуется​ текстовой строки). Например,​

  • ​ вернет пустую строку.​​ содержатся данные о​ подстроки.​: Что-то не все​

  • ​ с другого листа,​​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММПРОИЗВ((ЕСЛИОШИБКА(((НАЙТИ(«искомое слово»;’2012.07′!C2:C29))>0);0))*1)​=ДЛСТР(A1) — ДЛСТР(ПОДСТАВИТЬ(A1;СИМВОЛ(32);»»))​;​содержит​с фразы «дрел?».​Найдем текстовые значения, удовлетворяющие​ части текста, которая​ (традиционное письмо) и​

Замечания

  • ​ знаков текстовой строкой​ задайте для аргумента​ найти.​ чтобы найти позицию​ Если аргумент задан​ сотрудниках в столбцах​Аналогичным способом выделим номера​ получается.​ то пишется это​Дало результат 1,​

  • ​В статье Подсчет вхождений​установить курсор в поле​ли значение из​Часть формулы ДЛСТР($C$2)=ДЛСТР(Список)​ заданному пользователем критерию.​ является серийным номером,​ корейский.​ «объем.»​начальная_позиция​

  • ​Просматриваемый_текст​ буквы «n» в​

  • ​ числом, превышающим количество​ ФИО и дата​ месяца и годы​Первая часть подсчет​ так (‘Лист1’!;…;..)​

  • ​ хотя строк содержащих​ последовательности символов показано,​ Найти;​ диапазона​

  • ​ определяет:​ Критерии заданы с​ не производился. Функция​НАЙТИ(искомый_текст;просматриваемый_текст;[нач_позиция])​Доход: объем​

  • ​значение 8, чтобы​    Обязательный. Текст, в котором​ слове «printer», можно​ символов в строке,​ рождения. Создать столбец,​ для заполнения соответствующих​ и отбор строк​Как вместо указания​ «искомое слово» гараздо​ как подсчитать количество​удерживая клавишу ALT, набрать​A5:A13​равна ли длина строки​ использованием подстановочных знаков.​ НАЙТИ начинает со​НАЙТИБ(искомый_текст;просматриваемый_текст;[нач_позиция])​=ПСТР(A3;ПОИСК(» «;A3)+1,4)​ поиск не выполнялся​ нужно найти значение​ использовать следующую функцию:​ будет возвращена вся​ в котором будет​ столбцов с учетом,​ содержащих определенный текст​ конкретного имени листа​ больше. Ну как​ вхождений некоторой последовательности​

Примеры

​ на цифровой клавиатуре​фразу «?дрел?». Критерию​значения из диапазона​ Поиск будем осуществлять​ знака 8, находит​Аргументы функций НАЙТИ и​Возвращает первые четыре знака,​ в той части​ аргумента​=ПОИСК(«н»;»принтер»)​ часть строки начиная​ отображаться фамилия сотрудника​ что номер месяца​

​ работает, а вот​

​ указать значение ячейки,​

​ понимаете я расчитывал​

​ символов в текстовой​

​ (блок цифр справа)​

​ также будут соответствовать​

​A5:A13​ в диапазоне с​

​ искомый_текст в следующем​

​ НАЙТИБ описаны ниже.​

​ которые следуют за​ текста, которая является​

​искомый_текст​

​Эта функция возвращает​

​ с указанной вторым​ и его возраст​ начинается с 4-го​

​ попробовал сделать тоже​

Пример 2

​ сама ячейка содержит​

​ получить количество строк​

​ строке.​

​ 0010;​

​ значения содержащие фразы​

​5 символам?​

​ повторяющимися значениями. При​

​ знаке и возвращает​

​Искомый_текст​ первым пробелом в​ серийным номером (в​.​

​4​

​ аргументом позиции. В​

​ в формате «Иванов​ символа в каждой​ самое для НЕ​ как раз имя​

​ содержащих «искомое слово».​

​О поиске позиции n-го​

​отпустить ALT (символ может​ 5дрел7, Адрелу и​Знак * (умножить) между​ наличии повторов, можно​

​ число 9. Функция​

support.office.com

Поиск ТЕКСТовых значений в MS EXCEL с выводом их в отдельный список. Часть2. Подстановочные знаки

​    — обязательный аргумент. Текст,​ строке «Доход: маржа»​ данном случае —​Начальная_позиция​, так как «н»​ дробных числах, используемых​ – 27».​ строке, а год​ содержащих такой текст​ нужного листа (это​ALARMus​ вхождения буквы в​ быть не отображен);​ т.п.​

​ частями формулы представляет​ ожидать, что критерию​ НАЙТИ всегда возвращает​​ который необходимо найти.​​ (ячейка A3).​

Задача

​ «МДС0093»). Функция​    Необязательный. Номер знака в​ является четвертым символом​ в качестве данного​Вид исходной таблицы:​ – с 7-го.​ — правильно посчиталось​

А. Найти значения, которые начинаются с критерия и содержат определенное количество символов

​ когда много листов,​: вот файлик​ слове или в​​нажать ОК.​​Критерий вводится в ячейку​

​ условие И (значение​ будет соответствовать несколько​ номер знака, считая​

​Просматриваемый_текст​марж​​ПОИСК​​ аргументе​ в слове «принтер».​​ аргумента, дробная часть​​Для возврата строки с​ Используем следующие формулы:​

​ только общее количество,​ и ячейка это​​Serge_007​​ текстовой строке можно​В статье Ввод символов​I2​

​ должно начинаться с​ значений. Для их​ от левого края​    — обязательный аргумент. Текст,​=ПОИСК(«»»»;A5)​начинает поиск с​просматриваемый_текст​Можно также находить слова​ усекается.​ фамилией и текущим​

​=ПСТР(A2:A10;4;2)​ а вот остальное​ список содержит имя​
​:​
​ прочитать здесь.​
​ с помощью клавиши​
​и выглядит так:​

​ дрел и иметь​​ вывода в отдельный​​ текста «просматриваемый_текст», а​ в котором нужно​​Позиция первой двойной кавычки​​ восьмого символа, находит​
​, с которого следует​ в других словах.​​Функция ПСТРБ имеет схожий​​ возрастом используем следующую​​=ПСТР(A2:A10;7;4)​​ не правильно​

​ листа)​Quote​ALARMus​ Alt показано как​ «дрел?». В этом​ такую же длину,​ диапазон удобно использовать​ не от значения​ найти искомый текст.​ («) в ячейке​ знак, указанный в​ начать поиск.​ Например, функция​ синтаксис:​

Б. Найти значения, которые начинаются со слова дрель или дрели и содержат как минимум 6 букв

​ формулу:​​Вид заполненной таблицы данных:​​_Boroda_​у меня листы​(ALARMus)200?’200px’:»+(this.scrollHeight+5)+’px’);»>я расчитывал получить​: В целом задача:​ ввести любой символ,​​ случае будут выведены​​ как и критерий,​ формулы массива.​​ аргумента «нач_позиция».​​Начальная_позиция​

​ A5.​ аргументе​Функции​
​=ПОИСК(«base»;»database»)​
​=ПСТРБ(текст;начальная_позиция;число_байтов)​
​Функция ПСТР возвращает часть​
​Таким образом нам удалось​

​: Тут немного иначе​​ названы как 2012.7,​​ количество строк содержащих​Поиск слова(части слова)​​ зная его ASCII​​ все значения,​ т.е. 5 букв).​Пусть Исходный список значений​Скопируйте образец данных из​    — необязательный аргумент. Знак,​

В. Найти значения, у которых слово дрель находится в середине строки

​5​​искомый_текст​​ПОИСК​возвращает​Она отличается единственным аргументом:​ строки до символа​​ разрезать на части​​ нужно​ 2012.8,2012.9,…​ «искомое слово»​ в ячейке и​ код. Таблицу кодов​

​заканчивающиеся​ Критерию также будут​ (например, перечень инструментов)​
​ следующей таблицы и​
​ с которого нужно​
​=ПСТР(A5;ПОИСК(«»»»;A5)+1;ПОИСК(«»»»;A5;ПОИСК(«»»»;A5)+1)-ПОИСК(«»»»;A5)-1)​
​, в следующей позиции,​

​и​​5​​число_байтов – обязательный аргумент,​ пробела, позиция которого​​ текст в ячейках​​Serge_007​ALARMus​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММПРОИЗВ(—ЕЧИСЛО(НАЙТИ(«ввв»;A2:A14)))​ вычисление % значений,​ можно скачать здесь:​

Г. Найти значения, которые заканчиваются на слово дрель или дрели

​на слова дрель​​ соответствовать такие несуразные​​ находится в диапазоне​ вставьте их в​ начать поиск. Первый​Возвращает из ячейки A5​​ и возвращает число​​ПОИСКБ​, так как слово​

​ принимающий целые числа​

​ определяется функцией НАЙТИ.​ столбца A. Удалось​:​
​: Вот файлик.​
​Quote​
​ которые больше заданного​
​ .​

​ или дрели.​​ значения как дрел5,​A5:A13.​​ ячейку A1 нового​​ знак в тексте​​ только текст, заключенный​ 9. Функция​не учитывают регистр.​ «base» начинается с​ из диапазона от​

​ Для нахождения возраста​
​ отдельно каждую дату​Функция ПСТР в Excel​Может если я​(ALARMus)200?’200px’:»+(this.scrollHeight+5)+’px’);»>Нужно так как​ в другой ячейке​С помощью диалогового окна​ ​

excel2.ru

Поиск ячеек содержащих в MS EXCEL спецсимволы

​ дрелМ и т.п.​См. Файл примера.​ листа Excel. Чтобы​ «просматриваемый_текст» имеет номер​ в двойные кавычки.​ПОИСК​​ Если требуется учитывать​​ пятого символа слова​ 1 до N,​ сотрудника используется функция​ разделить на несколько​ предназначена для выделения​ не оптимально решил​ работает текстовый фильтр​ этой строки.​

​ Символ (Вставка/ Текст/​Для создания списка, содержащего​ (если они содержатся​Выведем в отдельный диапазон​ отобразить результаты формул,​ 1. Если номер​босс​

  • ​всегда возвращает номер​ регистр, используйте функции​
  • ​ «database». Можно использовать​​ где N –​​ ДОЛЯГОДА, полученное значение​
  • ​ ячеек по столбцам:​ подстроки из строки​
  • ​ так строить файл​ по колонке с​Или иными словами​ Символ) можно вставлять​
  • ​ найденные значения, воспользуемся​ в списке).​
  • ​ значения, которые удовлетворяют​

​ выделите их и​ опущен, он полагается​В этой статье описаны​ знака, считая от​НАЙТИ​ функции​ число байтов в​ которой усекается до​

​ день, месяц и​ текста, переданной в​ для данной цели,​ условием — «содержит»​ из общего числа​ символы, такие как​ формулой массива:​Критерий вводится в ячейку​ критерию, причем критерий​ нажмите клавишу F2,​ равным 1.​ синтаксис формулы и​ начала​и​​ПОИСК​​ исходной строке, характеризующий​ ближайшего меньшего целого,​ год.​ качестве первого аргумента,​ то так же​ — только воплотить​ содержащих заданное слово​ ©, или специальные​=ИНДЕКС(Список;НАИМЕНЬШИЙ(​E2​ задан с использованием​ а затем — клавишу​

excel2.ru

Подсчет вхождений в MS EXCEL Букв (Символов) в ТЕКСТовой строке

​Функции НАЙТИ и НАЙТИБ​ использование функций​просматриваемого текста​НАЙТИБ​

​и​ количество байт в​ чтобы получить число​​​ и возвращает требуемое​​ приветствуются рекомендации и​

​ с помощью какой-либо​ в ячейке A1,​ знаки, такие как​ЕСЛИОШИБКА(ЕСЛИ(ПОИСК($I$2;ПРАВСИМВ((Список);ДЛСТР($I$2)));СТРОКА(Список)-СТРОКА($A$4);НД());»»);​и выглядит так:​
​ подстановочных знаков (*,​

​ ВВОД. При необходимости​ работают с учетом​НАЙТИ​, включая символы, которые​
​.​

​ПОИСКБ​ возвращаемой подстроке.​ полных лет. Функция​Пример 2. В столбце​
​ количество символов начиная​

​ правки.​ функции​ вычислить процент тех,​ длинное тире (—)​СТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК(Список))))​ «дрел??». В этом​

​ ?). Рассмотрим различные​ измените ширину столбцов,​ регистра и не​и​ пропускаются, если значение​

excel2.ru

Поиск строк СОДЕРЖАЩИХ заданные символы

​В аргументе​​для определения положения​
​Примечания:​ ТЕКСТ преобразует полученное​ таблицы хранятся текстовые​ с заданной позиции.​Я попробовал вот​Функции не могут​
​ у которых длительность,​ или многоточие (…),​)​ случае будут выведены​ варианты поиска.​ чтобы видеть все​ позволяют использовать подстановочные​НАЙТИБ​ аргумента​
​искомый_текст​ символа или текстовой​Функция ПСТР вернет пустую​ значение в текстовую​ записи с наименованием​Один символ в языках​ так​

​ скрывать строки, как​​ заданная в соответствующей​

​ которых нет на​​Часть формулы ПОИСК($I$2;ПРАВСИМВ((Список);ДЛСТР($I$2))) определяет:​ все значения, в​Для удобства написания формул​
​ данные.​ знаки. Если необходимо​в Microsoft Excel.​начальная_позиция​можно использовать подстановочные​ строки в другой​ строку, если в​ строку.​ и маркой товаров.​ с однобайтовой кодировкой​но не работает:​ фильтр​

​ ячейке B1 более​​ клавиатуре. Следует помнить,​совпадают ли последние 5​​ которые​

​ создадим Именованный диапазон​​Данные​ выполнить поиск без​Функции НАЙТИ и НАЙТИБ​больше 1.​ знаки: вопросительный знак​ текстовой строке, а​ качестве аргумента начальная_позиция​Для соединения (конкатенации) полученных​ Разделить имеющиеся строки​ соответствует 1 байту.​
​200?’200px’:»+(this.scrollHeight+5)+’px’);»> =ДВССЫЛ(«‘»&(ТЕКСТ(B4;»ГГГГ.ММ»))&»‘!»&$A$2:$A$325)​
​ALARMus​
​ некоторой величины.​ что отображение символов в​ символов​начинаются​ Список для диапазона​Владимир Егоров​ учета регистра или​

​ находят вхождение одной​​Скопируйте образец данных из​

​ (​​ затем вернуть текст​​ было передано число,​​ строк используются символы​ на подстроки с​ При работе с​
​_Boroda_​
​: Ну мне же​​Сама загвоздка в​ ячейке зависит от​значений из диапазона​с текста-критерия (со​A5:A13​Формула​ использовать подстановочные знаки,​
​ текстовой строки в​ следующей таблицы и​?​

​ с помощью функций​​ превышающее количество символов​ «&». В результате​ наименованием и маркой​ такими языками результаты​: Почти правильно. Только​ не скрывать, анолог​ том как отобрать​
​ выбранного шрифта ячейки​
​A5:A13​ слова дрел) и​
​.​Описание​ воспользуйтесь функцией ПОИСК​
​ другую и возвращают​
​ вставьте их в​) и звездочку (​ПСТР​
​ в исходной строке.​ вычислений получим:​ соответственно и записать​ функций ПСТР и​
​ формат должен быть​ с фильтром я​ те строки в​ (​
​с фразой «дрел?».​длиной как минимум​Перечень найденных значений будем​Результат​

​ или ПОИСКБ.​​ начальную позицию искомой​

​ ячейку A1 нового​​*​
​и​Если в качестве аргумента​Функция имеет следующую синтаксическую​

​ полученные значения в​​ ПСТРБ (возвращает подстроку​ ГГГГ.М (или ГГГ.М)​
​ привел не как​ которых содержится(т.е. среди​CTRL+SHIFT+F​ Критерию также будут​6 символов.​
​ помещать в отдельный​=НАЙТИ(«В»;A2)​Если в качестве аргумента​ строки относительно первого​ листа Excel. Чтобы​). Вопросительный знак соответствует​ПСТРБ​ начальная_позиция было передано​ запись:​ соответствующие столбцы таблицы.​
​ из строки на​ или листы должны​ визуальное скрытие, а​

​ прочего текста) словофразачасть​​). Например, некоторые шрифты​
​ соответствовать значения заканчивающиеся​Для создания списка, содержащего​ столбец.​Позиция первой «В» в​ «искомый_текст» задана пустая​ знака второй строки.​ отобразить результаты формул,​
​ любому знаку, звездочка —​или заменить его​
​ значение 1, а​​=ПСТР(текст;начальная_позиция;число_знаков)​

​Вид таблицы данных:​​ основе количества заданных​ называться не 2012.7,​ как отбор строк,​ фразы набор символов…​ включают дроби, знаки​ на фразы дрела,​
​ найденные значения, воспользуемся​
​Найдем все названия инструментов,​
​ ячейке A2​

​ строка («»), функция​​Важно:​ выделите их и​ любой последовательности знаков.​ с помощью функций​
​ аргумент число_знаков определен​

​Описание аргументов:​​Для заполнения столбца «Наименование»​ байт) не отличаются.​

​ а 2012.07​​ для дальнейшей обработки.​ ?​ национальных алфавитов и​ дрел6 и т.п.​ формулой массива:​ которые​1​ НАЙТИ выводит значение,​ ​
​ нажмите клавишу F2,​ Если требуется найти​

​ЗАМЕНИТЬ​​ числом, которое равно​текст – обязательный для​ используем следующую формулу:​ Если на компьютере​Общая формула​
​Спасибо.​RAN​ символы национальных валют​

​СОВЕТ:​​=ИНДЕКС(Список;НАИМЕНЬШИЙ(​начинаются​
​=НАЙТИ(«в»;A2)​ равное первому знаку​Эти функции могут быть​ а затем — клавишу​ вопросительный знак или​и​ или больше общему​ заполнения аргумент, принимающий​=ПСТР(A2;1;НАЙТИ(» «;A2))​ используется двухбайтовый язык,​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММПРОИЗВ(—ЕЧИСЛО(ПОИСК(Справочник!$C$1;ДВССЫЛ(«‘»&ТЕКСТ($B$4;»ГГГ.М»)&»‘!A2:A325″))))​sad

​А остальные пункты​​: А сюда заглянуть?​ (см. статью ).​

​О поиске текстовых​​ЕСЛИОШИБКА(ЕСЛИ(ПОИСК($E$2;Список)=1;СТРОКА(Список)-СТРОКА($A$4);НД());»»);​

excelworld.ru

Пример функция ПСТР для разделения текста на части в Excel

​с фразы дрел​Позиция первой «в» в​ в строке поиска​ доступны не на​ ВВОД. При необходимости​ звездочку, введите перед​ЗАМЕНИТЬБ​ числу знаков в​

Примеры использования функции ПСТР в Excel

​ ссылку на ячейку​Функция НАЙТИ возвращает номер​ каждый символ при​см. вложение​ как реализовать:​ALARMus​ Встроенный шрифт Symbol​ значений с учетом​СТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК(Список))))​ и​ ячейке A2​ (знак с номером,​ всех языках.​ измените ширину столбцов,​ ним тильду (​. Эти функции показаны​ исходной строке, функция​ с текстом или​

Как разделить текст на несколько ячеек по столбцам в Excel?

​ позиции символа пробела​ использовании ПСТРБ будет​ALARMus​Отобрать все те​: Что то я​ содержит стрелки, маркеры​ РЕгиСТра читайте в​)​длина строки​

​15​

Пример 1.

​ соответствующим аргументу «нач_позиция»​Функция НАЙТИ предназначена для​ чтобы видеть все​~​

ПСТР.

​ в примере 1​

  • ​ ПСТР вернет всю​ текстовую строку, заключенную​ « » в​ считаться за два.​: А чтобы задать​
  • ​ строки в которых​ не нашел там​ и знаки, используемые​ статье Поиск текстовых​
  • ​Часть формулы ПОИСК($E$2;Список)=1 определяет:​которых составляет 5​=НАЙТИ(«и»;A2;3)​

​ или 1).​ языков с однобайтовой​ данные.​).​ данной статьи.​ строку целиком.​ в кавычки, из​ просматриваемой строке, который​ Двухбайтовыми языками являются​ все те которые​

​ заголовок содержит «ввв».​

​ нужного.​

​ в науке. Имеются​

разделить текст на несколько ячеек.

​ значений в списках.​начинается​ символов.​Позиция первой «и» в​Искомый_текст не может содержать​ кодировкой, а функция​Данные​Если​Важно:​

​Если аргумент начальная_позиция был​

Как вырезать часть текста ячейки в Excel?

​ которой будет извлечена​ принимается в качестве​ корейский, японский и​ не содержат заданный​Вычислить количество таких.​Нужно так как​ также дополнительные шрифты,​ Часть3. Поиск с​ли значение из​Критерий будет вводиться в​

​ строке А2, начиная​

Пример 2.

​ подстановочные знаки.​ НАЙТИБ — для​

​Выписки​

​искомый_текст​ ​ указан числом из​ подстрока определенной длины​ аргумента число_знаков функции​ китайский.​ текст ?​Среди этих строк​

НАЙТИ.

​ работает текстовый фильтр​ такие как Wingdings,​ учетом РЕГИСТРА.​

​ диапазона​

​ ячейку​ с третьего знака​Если «искомый_текст» отсутствует в​ языков с двухбайтовой​Доход: маржа​не найден, возвращается​Эти функции могут быть​ диапазона отрицательных чисел​ начиная с указанной​ ПСТР. В результате​Пример 1. В столбце​200?’200px’:»+(this.scrollHeight+5)+’px’);»>ПОИСК(НЕ(Справочник!$C$1);…​ (найденных по требованию​ по колонке с​ содержащие декоративные символы.​В MS WORD спецсимволы​A5:A13​С2​

​8​

вырезать часть текста ячейки.

Как посчитать возраст по дате рождения в Excel?

​ тексте «просматриваемый_текст», функции​ кодировкой. Заданный на​маржа​ значение ошибки #ЗНАЧ!.​ доступны не на​ или 0 (нулем),​ позиции первого символа;​ расчетов получим:​ таблицы содержатся даты,​_Boroda_​

​ выше) вычилсить:​

Пример 3.

​ условием — «содержит»​Найдем количество вхождений определенной​ (конец абзаца, разрыв​с фразы «дрел??».​

​и выглядеть так:​Данные​ НАЙТИ и НАЙТИБ​ компьютере язык по​Здесь «босс».​Если аргумент​ всех языках.​ функция ПСТР вернет​начальная_позиция – обязательный аргумент,​Для заполнения столбца «Марка»​ записанные в виде​: вместо ЕЧИСЛО нужно​- количество строк,​ — только воплотить​

​ Буквы или любого​ строки и т.п.)​ Критерию также будут​ «дрел?». Вопросительный знак​

посчитать возраст по дате рождения.

Особенности использования функции ПСТР в Excel

​Керамический изолятор №124-ТД45-87​ возвращают значение ошибки​

​ умолчанию влияет на​

​Формула​

  • ​начальная_позиция​Функция ПОИСКБ отсчитывает по​ код ошибки #ЗНАЧ!.​ принимающий целые числа​ используем следующую формулу​ текстовых строк. Записать​ написать ЕОШИБКА​ у которых в​ с помощью какой-либо​ символа в ячейке​
  • ​ легко найти с​ соответствовать значения начинающиеся​ является подстановочным знаком.​Медная пружина №12-671-6772​ #ЗНАЧ!.​ возвращаемое значение указанным​Описание​опущен, то он​ два байта на​Если аргумент число_знаков задан​ из диапазона от​ массива:​ отдельно в соседних​ALARMus​ колонке B длительность​ функции, с тем​
  • ​ EXCEL.​ помощью стандартного поиска​ с фраз дрелью,​Для реализации этого варианта​Переменный резистор №116010​Если «нач_позиция» не больше​ ниже образом.​Результат​ полагается равным 1.​ каждый символ, только​ отрицательным числом, результатом​ 1 до N,​=ПСТР(A2:A8;НАЙТИ(» «;A2:A8)+1;100)​ столбцах номер дня,​: а поясните расчет​ более 2 часов.​ чтобы с отобранным​Определим, сколько букв Z​ (​ дрел23 и т.п.​ поиска требуется функция​

​Формула​ нуля, функции НАЙТИ​

​Функция НАЙТИ при подсчете​

​=ПОИСК(«и»;A2;6)​

  • ​Если аргумент​ если языком по​ выполнения функции ПСТР​ где N –​Функция НАЙТИ возвращает позицию​ месяца и год,​ тех у кого​- количество строк,​ таким способом списком​

​ в слове Zigzag​

  1. ​CTRL+F​Критерий вводится в ячейку​ позволяющая использовать подстановочные​Описание (результат)​ и НАЙТИБ возвращают​ всегда рассматривает каждый​
  2. ​Позиция первого знака «и»​начальная_позиция​ умолчанию является язык​ будет код ошибки​ длина строки, из​ символа пробела. К​ выделенные из представленных​ более 2 часов(2/24​ у которых в​ строк уже производить​
  3. ​ (слово находится в​), т.к. им соответствуют​G2​ знаки: используем функцию​Результат​ значение ошибки #ЗНАЧ!.​
  4. ​ знак, как однобайтовый,​ в строке ячейки​не больше 0​ с поддержкой БДЦС.​ #ЗНАЧ!.​

exceltable.com

​ которой требуется извлечь​


Находим позицию третьего, четвертого и т.д. вхождения символа в слове (в текстовой строке).

Предположим, в ячейке

А5

имеется текстовая строка:

МАМА МЫЛа РАМУ

(см.

файл примера

).

Формула:

=НАЙТИ(СИМВОЛ(1);ПОДСТАВИТЬ(A5;»А»;СИМВОЛ(1);3))

найдет позицию

третьего

вхождения символа «А»

с учетом регистра

(9).

Рассмотрим подробнее. Функция

ПОДСТАВИТЬ()

заменяет третье вхождение символа «А» на символ с кодом ASCII =1 (заведомо нет в текстовой строке). Затем функция

НАЙТИ()

находит его и выводит его позицию. Если третьего вхождения не обнаружено, то будет выдана ошибка.

Формула без учета регистра:

=НАЙТИ(СИМВОЛ(1);ПОДСТАВИТЬ(СТРОЧН(A5);»а»;СИМВОЛ(1);3))

О подсчете вхождений символов можно прочитать

здесь

.

Формула:

=НАЙТИ(СИМВОЛ(1);ПОДСТАВИТЬ(A5;»МА»;СИМВОЛ(1);2))

найдет позицию

второго

вхождения подстроки «МА» с учетом регистра (3).

О подсчете вхождений последовательности символов можно прочитать

здесь

.

Как определить позицию символа в строке эксель

В этой статье описаны синтаксис формулы и использование функций ПОИСК и ПОИСКБ в Microsoft Excel.

Описание

Функции ПОИСК И ПОИСКБ находят одну текстовую строку в другой и возвращают начальную позицию первой текстовой строки (считая от первого символа второй текстовой строки). Например, чтобы найти позицию буквы «n» в слове «printer», можно использовать следующую функцию:

Эта функция возвращает 4, так как «н» является четвертым символом в слове «принтер».

Можно также находить слова в других словах. Например, функция

возвращает 5, так как слово «base» начинается с пятого символа слова «database». Можно использовать функции ПОИСК и ПОИСКБ для определения положения символа или текстовой строки в другой текстовой строке, а затем вернуть текст с помощью функций ПСТР и ПСТРБ или заменить его с помощью функций ЗАМЕНИТЬ и ЗАМЕНИТЬБ. Эти функции показаны в примере 1 данной статьи.

Эти функции могут быть доступны не на всех языках.

Функция ПОИСКБ отсчитывает по два байта на каждый символ, только если языком по умолчанию является язык с поддержкой БДЦС. В противном случае функция ПОИСКБ работает так же, как функция ПОИСК, и отсчитывает по одному байту на каждый символ.

К языкам, поддерживающим БДЦС, относятся японский, китайский (упрощенное письмо), китайский (традиционное письмо) и корейский.

Синтаксис

Аргументы функций ПОИСК и ПОИСКБ описаны ниже.

Искомый_текст Обязательный. Текст, который требуется найти.

Просматриваемый_текст Обязательный. Текст, в котором нужно найти значение аргумента искомый_текст.

Начальная_позиция Необязательный. Номер знака в аргументе просматриваемый_текст, с которого следует начать поиск.

Замечание

Функции ПОИСК и ПОИСКБ не учитывают регистр. Если требуется учитывать регистр, используйте функции НАЙТИ и НАЙТИБ.

В аргументе искомый_текст можно использовать подстановочные знаки: вопросительный знак (?) и звездочку (*). Вопросительный знак соответствует любому знаку, звездочка — любой последовательности знаков. Если требуется найти вопросительный знак или звездочку, введите перед ним тильду (

Если значение find_text не найдено, #VALUE! возвращается значение ошибки.

Если аргумент начальная_позиция опущен, то он полагается равным 1.

Если start_num больше нуля или больше, чем длина аргумента within_text, #VALUE! возвращается значение ошибки.

Аргумент начальная_позиция можно использовать, чтобы пропустить определенное количество знаков. Допустим, что функцию ПОИСК нужно использовать для работы с текстовой строкой «МДС0093.МужскаяОдежда». Чтобы найти первое вхождение «М» в описательной части текстовой строки, задайте для аргумента начальная_позиция значение 8, чтобы поиск не выполнялся в той части текста, которая является серийным номером (в данном случае — «МДС0093»). Функция ПОИСК начинает поиск с восьмого символа, находит знак, указанный в аргументе искомый_текст, в следующей позиции, и возвращает число 9. Функция ПОИСК всегда возвращает номер знака, считая от начала просматриваемого текста, включая символы, которые пропускаются, если значение аргумента начальная_позиция больше 1.

Примеры

Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.

Найти позицию последнего появления символа в строке в Excel

Найти позицию последнего появления символа в Excel

Несколько дней назад коллега столкнулся с этой проблемой.

У него был список URL-адресов, как показано ниже, и ему нужно было извлечь все символы после последней косой черты («/»).

Так, например, с https://example.com/archive/Январь ему пришлось извлечь «январь».

Это было бы очень просто, если бы в URL-адресах была только одна косая черта.

У него был огромный список из тысяч URL-адресов разной длины и с различным количеством косых черт.

В таких случаях хитрость заключается в том, чтобы найти позицию последнего появления косой черты в URL-адресе.

В этом уроке я покажу вам два способа сделать это:

  • Использование формулы Excel
  • Использование пользовательской функции (созданной через VBA)

Получение последней позиции символа с помощью формулы Excel

Когда у вас есть позиция последнего вхождения, вы можете просто извлечь что-нибудь справа от него, используя функцию ВПРАВО.

Вот формула, которая находит последнюю позицию косой черты и извлекает весь текст справа от нее.

Как работает эта формула?

Давайте разберем формулу и объясним, как работает каждая ее часть.

  • ЗАМЕНА (A2; ”/”,“”) — Эта часть формулы заменяет косую черту пустой строкой. Так, например, если вы хотите найти вхождение любой строки, кроме косой черты, используйте ее здесь.
  • LEN (A2) -LEN (ЗАМЕНА (A2; ”/”,“”)) — Эта часть сообщит вам, сколько косых черт в строке. Он просто вычитает длину строки без косой черты из длины строки с косой чертой.
  • ПОДСТАВИТЬ (A2, ”/”, ”@”, LEN (A2) -LEN (ПОДСТАВИТЬ (A2, ”/”, ””))) — Эта часть формулы заменит последнюю косую черту на @. Идея состоит в том, чтобы сделать этого персонажа уникальным. Вы можете использовать любой персонаж, какой захотите. Просто убедитесь, что он уникален и его еще нет в строке.
  • НАЙТИ («@», ПОДСТАВИТЬ (A2, «/», «@», LEN (A2) -LEN (ПОДСТАВИТЬ (A2, «/», »»))), 1) — Эта часть формулы даст вам позицию последней косой черты.
  • LEN (A2) -FIND («@», ПОДСТАВИТЬ (A2, «/», «@», LEN (A2) -LEN (ПОДСТАВИТЬ (A2, «/», »»))), 1) — Эта часть формулы сообщает нам, сколько символов стоит после последней косой черты.
  • = ПРАВО (A2; LEN (A2) -НАЙТИ («@», ПОДСТАВИТЬ (A2, «/», «@», LEN (A2) -LEN (ПОДСТАВИТЬ (A2, «/», »»))), 1 )) — Теперь это просто даст нам строку после последней косой черты.

Получение последней позиции символа с помощью пользовательской функции (VBA)

Вышеупомянутая формула прекрасна и работает как шарм, но она немного сложна.

Если вам удобно использовать VBA, вы можете использовать настраиваемую функцию (также называемую функцией, определяемой пользователем), созданную с помощью VBA. Это может упростить формулу и сэкономить время, если вам придется делать это часто.

Давайте воспользуемся тем же набором данных URL-адресов (как показано ниже):

Для этого случая я создал функцию с именем LastPosition, которая находит последнюю позицию указанного символа (в данном случае это косая черта).

Вот формула, которая сделает это:

Вы можете видеть, что это намного проще, чем тот, который мы использовали выше.

Вот как это работает:

  • LastPosition — наша настраиваемая функция — возвращает позицию косой черты. Эта функция принимает два аргумента — ссылку на ячейку с URL-адресом и символ, позицию которого нам нужно найти.
  • Затем функция ВПРАВО дает нам все символы после косой черты.

Вот код VBA, создавший эту функцию:

Чтобы эта функция работала, вам нужно поместить ее в редактор VB. После этого вы можете использовать эту функцию, как любую другую обычную функцию Excel.

Вот шаги, чтобы скопировать и вставить этот код в серверную часть VB:

Вот шаги, чтобы поместить этот код в редактор VB:

  1. Перейдите на вкладку Разработчик.
  2. Выберите вариант Visual Basic. Это откроет редактор VB в бэкэнде.
  3. На панели Project Explorer в редакторе VB щелкните правой кнопкой мыши любой объект книги, в которую вы хотите вставить код. Если вы не видите Project Explorer, перейдите на вкладку View и нажмите Project Explorer.
  4. Перейдите во вкладку «Вставить» и нажмите «Модуль». Это вставит объект модуля для вашей книги.
  5. Скопируйте и вставьте код в окно модуля.

Теперь формула будет доступна на всех листах книги.

Обратите внимание, что вам необходимо сохранить книгу в формате .XLSM, поскольку в ней есть макрос. Кроме того, если вы хотите, чтобы эта формула была доступна во всех используемых вами книгах, вы можете сохранить ее в личной книге макросов или создать на ее основе надстройку.

Вам также могут понравиться следующие руководства по Excel:

Поиск с конца строки, справа налево в Excel

Как найти первый символ с конца строки?

Поиск позиции последнего вхождения значения внутри ячейки Excel — довольно сложная задача.

Тем не менее, иногда ее необходимо решить, например, чтобы удалить или заменить это вхождение.

Так а в чем же проблема?

Все дело в том, что функции поиска позиции ПОИСК и НАЙТИ ищут только с начала ячейки, и у них нет параметра переключения на поиск с конца.

Процедура Найти и Заменить также не подойдет. Она ищет не с конца строки, а просто находит (и заменяет) все вхождения.

Ниже я покажу пару способов, как осуществить поиск с конца строки.

Обычная составная формула

Формула, похожая на ту, что ниже, рассматривается подробно в статье о том, как удалить последнее слово в ячейке Excel. Поиск пробела с конца строки как раз является необходимым в этом случае.

Формула ниже ищет пробел с конца ячейки A1:

Как она работает:

  • Фрагмент, обозначенный красным цветом, вычисляет количество пробелов в ячейке. Подробнее можно почитать в описании функции ПОДСТАВИТЬ.
  • Это количество является аргументом еще одной подстановки, где заменяется лишь последний пробел (выделено жирным)
  • Вместо пробела в его последнюю позицию вставляется достаточно редкий символ. В данном случае это иероглиф, который создается функцией СИМВОЛ. Но можно и прописать символ вручную. В формуле ниже это обратная косая черта:
    находит позицию этого символа. Поскольку он встречается в строке всего один раз и стоит на месте последнего пробела, это и позволяет нам сказать, что поиск произведен справа налево.

Если вам необходимо найти с конца строки какой-то другой символ или текстовый фрагмент, замените пробелы в этой формуле на него.

поиск с конца строки - формула

Примеры использования составной формулы для поиска с конца строки

Формулы массива для поиска символа с конца строки

Поиск слева направо с помощью функции ПОДСТАВИТЬ, описанный выше, имеет пару недостатков.

Первый — регистрозависимость этой функции, но это легко учесть, обернув нужные фрагменты функциями изменения регистра.

А второй уже серьезнее — формула не очень универсальна, т.к. использует замену на символ, который может оказаться в строке, и тогда она выдаст неверное значение.

От обоих проблем избавят формулы массива. Они обе создают массивы значений, внутри которых функция выбирает последнее.

С помощью МАКС

Формула ниже находит позицию символа «а» в любом регистре.

Механика ее работы пошагово:

    измеряет длину ячейки в символах

  1. ДВССЫЛ создает из текстового представления длины ссылку на диапазон строк с 1 по строку, равную этой длине
  2. Функция СТРОКА возвращает массив чисел, соответствующих этим длинам, соответственно, , обрабатывая этот массив, возвращает для каждого числа символ, стоящий на этой позиции в строке
  3. Текстовое сравнение с символом «а» возвращает булевый массив (значения ИСТИНА или ЛОЖЬ)
  4. Этот массив умножается на повторно созданный массив чисел (пункты 1:3). ЛОЖЬ эквивалентна нулю, а ИСТИНА — единице, поэтому для всех символов, не равных «а», в результирующем числовом массиве будут нули, а для равных — их позиции
  5. Функция МАКС возвращает наибольшее число в этом массиве.

С помощью ПОИСКПОЗ

Чуть более хитрая механика делает формулу короче, вместе с тем существенно быстрее, а задействует функцию ПОИСКПОЗ:

Здесь алгоритм такой:

  1. Как и в предыдущем варианте, с помощью тех же функций ДЛСТР, СТРОКА, ДВССЫЛ, ПСТР и текстового сравнения создается булевый массив;
  2. Но на этом этапе единица делится на него. ЛОЖЬ эквивалентна нулю и выдается ошибка деления на ноль. ИСТИНА возвращает единицу.
  3. Функция ПОИСКПОЗ с последним параметром «1» при поиске 2 (на месте 2 может быть любое число больше 1) возвращает позицию последнего наибольшего числа, меньшее, чем 2. Т.е. последней единицы, которой и соответствует последний найденный в строке символ.

Смотрите также по теме:

Предыдущая статья о формулах массива:

Учимся формулам массива 3/4:

Часто сталкиваетесь с этой или похожими задачами при работе в Excel?
Сотни инструментов надстройки для Excel !SEMTools помогут вам упростить их решение и сэкономят ваше время!

  • Что делает функция ПОИСК?
  • Синтаксис
  • Форматирование
  • Поиск символа в ячейке
  • Извлечь первое слово
  • Другие примеры использования
  • Функция ПОИСК в формуле массива
Функция поиск - таблица с примерами
Функция ПОИСК в Excel – примеры

Что делает функция ПОИСК?

Эта функция аналогична функции НАЙТИ и так же ищет подстроку в строке. Когда искомое найдено, отображается его позиция в тексте в виде числа.

Отличие от функции НАЙТИ в том, что ПОИСК не принимает в расчет регистр текста. Как искомого, так и того, в котором мы ищем. Также она поддерживает подстановочные операторы.

У обеих функций есть процедура-аналог Найти и Заменить – как у процедуры, у нее есть свои преимущества и недостатки.

Синтаксис

=ПОИСК(ИскомыйТекст;СтрокаВКоторойИщем;[СтартоваяПозиция])
  • ИскомыйТекст — символ или сочетание, которое ищем
  • СтрокаВКоторойИщем — ячейка, текстовое значение или любое возвращаемое другой функцией выражение.
  • Стартовая позиция — опциональный параметр, при отсутствии поиск происходит с первого символа

Если текст содержит более одного вхождения, возвращается позиция первого.
Третий (опциональный) параметр используется для поиска с определенной позиции в тексте и по умолчанию равен 1.

Если искомое не найдено в тексте, функция возвращает ошибку #ЗНАЧ.

Форматирование

При поиске дат функция ПОИСК, как и все текстовые функции, воспринимает их как числа, поэтому для корректного поиска может понадобиться функция ТЕКСТ.

При этом логические значения ИСТИНА и ЛОЖЬ конвертируются в текст, соответствующий их написанию.

Поиск символа в ячейке

Наиболее простой пример использования функции – осуществление поиска определенного символа в ячейке.

Логика проста – если поиск позиции символа не возвращает ошибку, значит, символ в ячейке присутствует:

=НЕ(ЕОШ(ПОИСК(паттерн;текст)))
поиск символа в ячейке - пример таблицы
Поиск символа в ячейке формулой ПОИСК

Извлечь первое слово

В этом простейшем примере извлекаем первое слово из ячейки с помощью комбинации — функция ЛЕВСИМВ + функция ПОИСК. Поскольку пробел — регистронезависимый символ, для этого случая можно использовать и функцию НАЙТИ.

Функция поиск в формуле извлечения текста до пробела
Определяем номер позиции первого пробела и возвращаем символы до этой позиции

Таблица выше была использована для извлечения имени из строки с именем и фамилией.

  1. ПОИСК возвращает позицию пробела между именем и фамилией.
  2. Длина имени вычисляется как позиция пробела минус 1.
  3. Функция ЛЕВСИМВ извлекает имя на основе его длины.

Другие примеры использования

Найти первую цифру в ячейке:

=МИН(ЕСЛИОШИБКА(ПОИСК({0:9:8:7:6:5:4:3:2:1};A1);1000))

Найти первую цифру в ячейке и вернуть все, что перед ней:

=ЛЕВСИМВ(A1,МИН(ЕСЛИОШИБКА(ПОИСК({0:9:8:7:6:5:4:3:2:1};A1);1000))-1)

Узнать, содержит ли ячейка латиницу. Формула вернет «ИСТИНА» или «ЛОЖЬ»:

=СЧЁТ(ПОИСК({"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

Найти кириллицу в тексте аналогичным путем:

=СЧЁТ(ПОИСК({"а":"б":"в":"г":"д":"е":"ё":"ж":"з":"и":"й":"к":"л":"м":"н":"о":"п":"р":"с":"т":"у":"ф":"х":"ц":"ч":"ш":"щ":"ъ":"ы":"ь":"э":"ю":"я"};A1))>0

Функция ПОИСК в формуле массива

Примеры выше, где буквы перечислены явно в строковом массиве, занимает довольно много места. Буквы при этом идут подряд, что наводит на мысль, что их можно как-то иначе выразить как диапазон.

И действительно, это возможно с помощью комбинации с функциями СТРОКА и ПОИСК:

{=СЧЁТ(ПОИСК(СИМВОЛ(СТРОКА(65:90));A1))>0}

Отличие этой формулы массива от предыдущих — ее нужно вводить без фигурных скобок, они появятся при вводе формулы сочетанием Ctrl+Shift+Enter (вместо обычного Enter). В формуле выше, где явно прописаны все буквы, фигурные скобки вводятся вручную — это явное указание строкового массива.

Что происходит в этой формуле?

  • Функция СТРОКА с численным аргументом “65:90” возвращает массив чисел с 65 по 90 включительно. Как раз в этом диапазоне в таблице ASCII находятся все символы латиницы;
  • Функция СИМВОЛ возвращает для каждого числового значения в этом массиве его символ, таким образом создавая массив латинских символов;
  • Функция ПОИСК производит поиск каждого из этих символов в строке и возвращает либо число, либо ошибку, таким образом создавая массив чисел и ошибок
  • Функция СЧЁТ считает числовые значения в полученном массиве. Если результат больше нуля, значит, хотя бы один символ латиницы был найден. Если нет (все поиски вернули ошибку), значит, не был

Аналогичная формула для кириллицы:

{=СЧЁТ(ПОИСК(СИМВОЛ(СТРОКА(192:223));A1))>0}

Подробнее о поиске и извлечении кириллицы и латиницы в Excel можно почитать тут:

Найти латиницу или кириллицу в тексте

Есть еще множество комбинаций функции ПОИСК с другими функциями Excel, смотрите разделы:
Функция ИЛИ
Функция И
Функция ЗНАЧЕН
Удалить первое слово в ячейке Excel


Смотрите также по теме:

ОБНАРУЖИТЬ (функционал надстройки !SEMTools)

Регулярные выражения в Excel

Найти определенные символы в Excel

Найти слова в ячейках

Найти числа в текстовых ячейках

Понравилась статья? Поддержите ее автора!
Набор инструментов !SEMTools поможет решить множество задач без ввода сложных формул и сэкономит ваше время. И вам полезно, и автору приятно!

Like this post? Please share to your friends:
  • Excel поиск позиции на другом листе
  • Excel поиск позиции в списке
  • Excel поиск позиции в массиве excel
  • Excel поиск подстроки в ячейке
  • Excel поиск повторяющихся ячеек