Cинтаксис.
Функция ПСТР возвращает указанное количество знаков, начиная с указанной вами позиции.
Функция Excel ПСТР имеет следующие аргументы:
Где текст — это исходная текстовая строка. Далее следует позиция первого символа, который вы хотите извлечь, и количество их для извлечения.
Все 3 аргумента обязательны.
Например, чтобы извлечь 6 знаков из A2, начиная с 17-го, используйте эту формулу:
Результат может выглядеть примерно так:
5 вещей, которые вы должны знать о функции Excel ПСТР
Как вы только что убедились, в использовании функции ПСТР в Excel нет ничего страшного. И помня следующие простые факты, вы избежите наиболее распространенных ошибок.
- Функция ПСТР всегда возвращает текстовую строку, даже если извлеченная подстрока содержит только цифры. Это может иметь большое значение, если вы хотите использовать результат формулы ПСТР в других вычислениях. Чтобы преобразовать цифры в число, применяйте ПСТР в сочетании с функцией ЗНАЧЕН (VALUE в английской версии), как показано в этом примере. (ссылка на последний раздел).
- Когда начальная позиция больше, чем общая длина исходного текста, формула Excel ПСТР возвращает пустое значение («»).
- Если начальная позиция меньше 1, формула ПСТР возвращает ошибку #ЗНАЧ!.
- Когда третий аргумент меньше 0 (отрицательное число), формула ПСТР возвращает ошибку #ЗНАЧ!. Если количество знаков для извлечения равно 0, выводится пустая строка (пустая ячейка).
- В случае, если сумма начальной позиции и количества знаков превышает общую длину исходного текста, функция ПСТР в Excel возвращает подстроку начиная с начальной позиции и до последнего символа.
При решении реальных задач в Excel вам чаще всего потребуется использовать ПСТР в сочетании с другими функциями, как показано в следующих примерах.
Базовая информация об ИНДЕКС и ПОИСКПОЗ
Так как задача этого учебника – показать возможности функций ИНДЕКС и ПОИСКПОЗ для реализации вертикального поиска в Excel, мы не будем задерживаться на их синтаксисе и применении.
Приведём здесь необходимый минимум для понимания сути, а затем разберём подробно примеры формул, которые показывают преимущества использования ИНДЕКС и ПОИСКПОЗ вместо ВПР.
ИНДЕКС – синтаксис и применение функции
Функция INDEX (ИНДЕКС) в Excel возвращает значение из массива по заданным номерам строки и столбца. Функция имеет вот такой синтаксис:
INDEX(array,row_num,)ИНДЕКС(массив;номер_строки;)
Каждый аргумент имеет очень простое объяснение:
- array (массив) – это диапазон ячеек, из которого необходимо извлечь значение.
- row_num (номер_строки) – это номер строки в массиве, из которой нужно извлечь значение. Если не указан, то обязательно требуется аргумент column_num (номер_столбца).
- column_num (номер_столбца) – это номер столбца в массиве, из которого нужно извлечь значение. Если не указан, то обязательно требуется аргумент row_num (номер_строки)
Если указаны оба аргумента, то функция ИНДЕКС возвращает значение из ячейки, находящейся на пересечении указанных строки и столбца.
Вот простейший пример функции INDEX (ИНДЕКС):
=INDEX(A1:C10,2,3)=ИНДЕКС(A1:C10;2;3)
Формула выполняет поиск в диапазоне A1:C10 и возвращает значение ячейки во 2-й строке и 3-м столбце, то есть из ячейки C2.
Очень просто, правда? Однако, на практике Вы далеко не всегда знаете, какие строка и столбец Вам нужны, и поэтому требуется помощь функции ПОИСКПОЗ.
ПОИСКПОЗ – синтаксис и применение функции
Функция MATCH (ПОИСКПОЗ) в Excel ищет указанное значение в диапазоне ячеек и возвращает относительную позицию этого значения в диапазоне.
Например, если в диапазоне B1:B3 содержатся значения New-York, Paris, London, тогда следующая формула возвратит цифру 3, поскольку «London» – это третий элемент в списке.
=MATCH(“London”,B1:B3,0)=ПОИСКПОЗ(“London”;B1:B3;0)
Функция MATCH (ПОИСКПОЗ) имеет вот такой синтаксис:
MATCH(lookup_value,lookup_array,)ПОИСКПОЗ(искомое_значение;просматриваемый_массив;)
- lookup_value (искомое_значение) – это число или текст, который Вы ищите. Аргумент может быть значением, в том числе логическим, или ссылкой на ячейку.
- lookup_array (просматриваемый_массив) – диапазон ячеек, в котором происходит поиск.
-
match_type (тип_сопоставления) – этот аргумент сообщает функции ПОИСКПОЗ, хотите ли Вы найти точное или приблизительное совпадение:
- 1 или не указан – находит максимальное значение, меньшее или равное искомому. Просматриваемый массив должен быть упорядочен по возрастанию, то есть от меньшего к большему.
- – находит первое значение, равное искомому. Для комбинации ИНДЕКС/ПОИСКПОЗ всегда нужно точное совпадение, поэтому третий аргумент функции ПОИСКПОЗ должен быть равен .
- -1 – находит наименьшее значение, большее или равное искомому значению. Просматриваемый массив должен быть упорядочен по убыванию, то есть от большего к меньшему.
На первый взгляд, польза от функции ПОИСКПОЗ вызывает сомнение. Кому нужно знать положение элемента в диапазоне? Мы хотим знать значение этого элемента!
Позвольте напомнить, что относительное положение искомого значения (т.е. номер строки и/или столбца) – это как раз то, что мы должны указать для аргументов row_num (номер_строки) и/или column_num (номер_столбца) функции INDEX (ИНДЕКС). Как Вы помните, функция ИНДЕКС может возвратить значение, находящееся на пересечении заданных строки и столбца, но она не может определить, какие именно строка и столбец нас интересуют.
Как вырезать часть текста ячейки в Excel?
Пример 2. В столбце таблицы хранятся текстовые записи с наименованием и маркой товаров. Разделить имеющиеся строки на подстроки с наименованием и маркой соответственно и записать полученные значения в соответствующие столбцы таблицы.
Вид таблицы данных:
Для заполнения столбца «Наименование» используем следующую формулу:
Функция НАЙТИ возвращает номер позиции символа пробела « » в просматриваемой строке, который принимается в качестве аргумента число_знаков функции ПСТР. В результате расчетов получим:
Для заполнения столбца «Марка» используем следующую формулу массива:
Функция НАЙТИ возвращает позицию символа пробела. К полученному числу прибавляется единица для нахождения позиции первого символа названия марки продукта. Итоговое значение используется в качестве аргумента начальная_позиция функции ПСТР. Для упрощения, вместо поиска номера последней позиции (например, с помощью функции ДЛСТР) указано число 100, которое в данном примере гарантированно превышает количество знаков в изначальной строке.
В результате расчетов получим:
Почему ИНДЕКС/ПОИСКПОЗ лучше, чем ВПР?
Решая, какую формулу использовать для вертикального поиска, большинство гуру Excel считают, что ИНДЕКС/ПОИСКПОЗ намного лучше, чем ВПР. Однако, многие пользователи Excel по-прежнему прибегают к использованию ВПР, т.к. эта функция гораздо проще. Так происходит, потому что очень немногие люди до конца понимают все преимущества перехода с ВПР на связку ИНДЕКС и ПОИСКПОЗ, а тратить время на изучение более сложной формулы никто не хочет.
Далее я попробую изложить главные преимущества использования ПОИСКПОЗ и ИНДЕКС в Excel, а Вы решите – остаться с ВПР или переключиться на ИНДЕКС/ПОИСКПОЗ.
4 главных преимущества использования ПОИСКПОЗ/ИНДЕКС в Excel:
1. Поиск справа налево. Как известно любому грамотному пользователю Excel, ВПР не может смотреть влево, а это значит, что искомое значение должно обязательно находиться в крайнем левом столбце исследуемого диапазона. В случае с ПОИСКПОЗ/ИНДЕКС, столбец поиска может быть, как в левой, так и в правой части диапазона поиска. Пример: Как находить значения, которые находятся слева покажет эту возможность в действии.
2. Безопасное добавление или удаление столбцов. Формулы с функцией ВПР перестают работать или возвращают ошибочные значения, если удалить или добавить столбец в таблицу поиска. Для функции ВПР любой вставленный или удалённый столбец изменит результат формулы, поскольку синтаксис ВПР требует указывать весь диапазон и конкретный номер столбца, из которого нужно извлечь данные.
Например, если у Вас есть таблица A1:C10, и требуется извлечь данные из столбца B, то нужно задать значение 2 для аргумента col_index_num (номер_столбца) функции ВПР, вот так:
=VLOOKUP(“lookup value”,A1:C10,2)=ВПР(“lookup value”;A1:C10;2)
Если позднее Вы вставите новый столбец между столбцами A и B, то значение аргумента придется изменить с 2 на 3, иначе формула возвратит результат из только что вставленного столбца.
Используя ПОИСКПОЗ/ИНДЕКС, Вы можете удалять или добавлять столбцы к исследуемому диапазону, не искажая результат, так как определен непосредственно столбец, содержащий нужное значение. Действительно, это большое преимущество, особенно когда работать приходится с большими объёмами данных. Вы можете добавлять и удалять столбцы, не беспокоясь о том, что нужно будет исправлять каждую используемую функцию ВПР.
3. Нет ограничения на размер искомого значения. Используя ВПР, помните об ограничении на длину искомого значения в 255 символов, иначе рискуете получить ошибку #VALUE! (#ЗНАЧ!). Итак, если таблица содержит длинные строки, единственное действующее решение – это использовать ИНДЕКС/ПОИСКПОЗ.
Предположим, Вы используете вот такую формулу с ВПР, которая ищет в ячейках от B5 до D10 значение, указанное в ячейке A2:
=VLOOKUP(A2,B5:D10,3,FALSE)=ВПР(A2;B5:D10;3;ЛОЖЬ)
Формула не будет работать, если значение в ячейке A2 длиннее 255 символов. Вместо неё Вам нужно использовать аналогичную формулу ИНДЕКС/ПОИСКПОЗ:
=INDEX(D5:D10,MATCH(TRUE,INDEX(B5:B10=A2,0),0))=ИНДЕКС(D5:D10;ПОИСКПОЗ(ИСТИНА;ИНДЕКС(B5:B10=A2;0);0))
4. Более высокая скорость работы. Если Вы работаете с небольшими таблицами, то разница в быстродействии Excel будет, скорее всего, не заметная, особенно в последних версиях. Если же Вы работаете с большими таблицами, которые содержат тысячи строк и сотни формул поиска, Excel будет работать значительно быстрее, при использовании ПОИСКПОЗ и ИНДЕКС вместо ВПР. В целом, такая замена увеличивает скорость работы Excel на 13%.
Влияние ВПР на производительность Excel особенно заметно, если рабочая книга содержит сотни сложных формул массива, таких как ВПР+СУММ. Дело в том, что проверка каждого значения в массиве требует отдельного вызова функции ВПР. Поэтому, чем больше значений содержит массив и чем больше формул массива содержит Ваша таблица, тем медленнее работает Excel.
С другой стороны, формула с функциями ПОИСКПОЗ и ИНДЕКС просто совершает поиск и возвращает результат, выполняя аналогичную работу заметно быстрее.
Как извлечь текст из ячейки с помощью Ultimate Suite для Excel
Как вы только что видели, Microsoft Excel предоставляет множество различных функций для работы с текстовыми строками. Если вы не уверены, какая функция лучше всего подходит для ваших нужд, передайте задание нашему Ultimate Suite for Excel. Имея эти инструменты в своем арсенале Excel, вы просто переходите к Данные об аблебитах вкладка > Текст группу и нажмите Извлечь:
Теперь вы выбираете исходные ячейки и любые сложные строки, которые они содержат, извлечение подстроки сводится к этим двум простым действиям:
- Укажите, сколько символов вы хотите получить из начала, конца или середины строки; или выберите извлечение всего текста до или после заданного символа.
- Нажмите Вставить результаты. Сделанный!
Например, чтобы получить доменные имена из списка адресов электронной почты, выберите Все после текста переключатель и введите @ в поле рядом с ним. Чтобы извлечь имена пользователей, выберите Все перед текстом переключатель, как показано на скриншоте ниже.
И через мгновение вы получите следующие результаты:
Помимо скорости и простоты, инструмент Извлечь текст имеет дополнительную ценность — он поможет вам изучить формулы Excel в целом и функции работы с подстроками в частности. Как? Установив флажок «Вставить как формулу» в нижней части панели, вы гарантируете, что результаты выводятся в виде формул, а не значений.
В этом примере, если вы выберете ячейки B2 и C2, вы увидите следующие формулы соответственно:
- Чтобы извлечь имя пользователя:
=ЕСЛИОШИБКА(СЛЕВА(A2,ПОИСК(«@»,A2)-1),»»)
- Чтобы извлечь домен:
=ЕСЛИОШИБКА(ПРАВО(A2, ДЛСТР(A2)- ПОИСК(«@»,A2) — ДЛСТР(«@») + 1),»»)
Сколько времени у вас ушло бы на то, чтобы вычислить эти формулы самостоятельно?
Поскольку результаты представляют собой формулы, извлеченные подстроки будут обновляться автоматически, как только в исходные строки будут внесены какие-либо изменения. Когда в ваш набор данных добавляются новые записи, вы можете копировать формулы в другие ячейки, как обычно, без необходимости заново запускать инструмент «Извлечь текст».
Если вам интересно попробовать это, а также многие другие полезные функции, включенные в Ultimate Suite for Excel, вы можете загрузить ознакомительную версию.
Как вырезать часть текста ячейки в Excel?
Пример 2. В столбце таблицы хранятся текстовые записи с наименованием и маркой товаров. Разделить имеющиеся строки на подстроки с наименованием и маркой соответственно и записать полученные значения в соответствующие столбцы таблицы.
Вид таблицы данных:
Для заполнения столбца «Наименование» используем следующую формулу:
Функция НАЙТИ возвращает номер позиции символа пробела « » в просматриваемой строке, который принимается в качестве аргумента число_знаков функции ПСТР. В результате расчетов получим:
Для заполнения столбца «Марка» используем следующую формулу массива:
Функция НАЙТИ возвращает позицию символа пробела. К полученному числу прибавляется единица для нахождения позиции первого символа названия марки продукта. Итоговое значение используется в качестве аргумента начальная_позиция функции ПСТР. Для упрощения, вместо поиска номера последней позиции (например, с помощью функции ДЛСТР) указано число 100, которое в данном примере гарантированно превышает количество знаков в изначальной строке.
В результате расчетов получим:
Текстовые функции в Эксель
Все функции, предназначенные для работы с текстом, находятся в ведении раѷделе мастера Их очень много. Мы же выберем из них те, которые чаще всего используются для решения прикладных задач:
- БАТТЕКСТ (Значение). Функция, необходимая для преобразования числа числового формата в текстовый. Это полезно, использовать. С помощью этой функции можно конвертировать данные из одного типа в другой.
- ДЛСТР(Значение). Эта функция позволяет определить содержание и то, сколько символов находится в ней. Возвращает число, содержащее количественные показатели, которые измеряются в этом ряду.
- ЗАМЕНИТЬ(Старый текст, Начальная позиция, числовые знаки, новый текст). С помощью этой функции можно заменить один текст на другой, в качестве ориентира с использованием количества знаков с позиции, которая указана пользователем.
- ЗНАЧЕН(Текст). Эта функция зернистости представляет собой противоположную первичную первичную механическую обработку.
- ЛЕВСИМВ(Строка, Количество знаков). С помощью этой функции можно получить заданное пользователем количество символов строки, определяющее человека. При этом в учете берутся те знаки, которые находятся слева.
- ПРАВСИМВ(Строка, Количество знаков). Принцип этой работы аналогичен, только с ее помощью можно вернуть количество знаков квадрата. То есть, узнать, какая часть строки будет с самым последним символом.
- НАЙТИ(текст для поиска, текст, в кто ищем, начальная позиция). С помощью этой функции можно получить информацию о том, где находится текст, заданный польземзе. Этот оператор может быть использован, только если зарегистрироваться для нас необходимо. Если же нет разницы, какие буквы используются: большие или маленькие, то есть аналогичная функция — поиск Также следует отметить, что эта функция будет возвращаться исключительно к первому вхождению, все последующие уже не берутся в учете. Для этой смеси другие функции.
- ПОДСТАВИТЬ (текст, старый текст, новый текст, позиция). Это очень интересная функция. В чем-то она схожа на оператора ЗАМЕНИТЬ, но имеет более широкий функционал. Если пользователь не использовал последний аргумент, то произошла замена всех вхождений в те Таким образом, это позволяет автоматизировать опцию Excel «Заменить все».
- ПОДСТРОКА(Текст, разделитель, номер). С помощью этой функции можно получить страницу, которая была разделена с помощью разделителя.
- ПСТР (Текст, Начальная позиция, Количество знаков). Это одна из самых главных функций, которую мы сегодня будем разбирать очень подробно. Она в чем-то имеет переходный принцип на левсимв, только дает возможность начать поиск подстроки не с самого начала, а с завоеванием позиции.
- СЦЕПИТЬ (Текст1, Текст2…). Это функция, позволяющая противостоять нескольким строкам следует некой заменой оператору &. Максимальное количество строк, которые можно соединять между собой – 30.
Многие функции схож. Поэтому, когда вы изучите одну из них, будет очень легко выучить возможность. А когда они перейдут на практику, то они будут выучены автоматически. Давайте опишем реальный пример, как можно использовать текстовые функции.
Пример использования текстовых функций в Эксель
Давайте опишем несколько практических применений текстовых функций. Для наглядности, мы представим работу функции ПОДСТРОКА и которую нужно решить. Первая колонка этой таблицы – полная строка. Второе – значение, которое нам необходимо найти в первой колонке. В следующем столбце числовой формулы, с помощью которого это можно сделать.
Функция может ссылаться на ячейку во всех аргументах. Например, номер подстроки может быть убит по старшему адресу. В таком случае формула будет иметь следующий вид.
А в этом появлении мы попробуем разбить номер телефона на несколько частей.
Недостаток ПОДСТРОКА функции определяется в том, что требуется наличие разделителя, поэтому можно только отделять слова от друга или цифры в номере телефона.
Если нужно отделить одно слово от другого, можно использовать разделитель в виде пробела. В таком случае необходимо открыть кавычку, поставить пробел, а затем закрыть кавычку в обоснование.
Точное или приближенное совпадение в функции ВПР
И, наконец, давайте рассмотрим поподробнее последний аргумент, который указывается для функции ВПР
– range_lookup
(интервальный_просмотр). Как уже упоминалось в начале урока, этот аргумент очень важен. Вы можете получить абсолютно разные результаты в одной и той же формуле при его значении TRUE
(ПРАВДА) или FALSE
(ЛОЖЬ).
Для начала давайте выясним, что в Microsoft Excel понимается под точным и приближенным совпадением.
- Если аргумент range_lookup
FALSE
(ЛОЖЬ), формула ищет точное совпадение, т.е. точно такое же значение, что задано в аргументе lookup_value
(искомое_значение). Если в первом столбце диапазона table_array
(таблица) встречается два или более значений, совпадающих с аргументом lookup_value
(искомое_значение), то выбрано будет первое из них. Если совпадения не найдены, функция сообщит об ошибке #N/A
(#Н/Д).Например, следующая формула сообщит об ошибке #N/A
(#Н/Д), если в диапазоне A2:A15 нет значения 4
:VLOOKUP(4,A2:B15,2,FALSE)
=ВПР(4;A2:B15;2;ЛОЖЬ) - Если аргумент range_lookup
(интервальный_просмотр) равен TRUE
(ИСТИНА), формула ищет приблизительное совпадение. Точнее, сначала функция ВПР
ищет точное совпадение, а если такое не найдено, выбирает приблизительное. Приблизительное совпадение – это наибольшее значение, не превышающее заданного в аргументе lookup_value
(искомое_значение).
Если аргумент range_lookup
(интервальный_просмотр) равен TRUE
(ИСТИНА) или не указан, то значения в первом столбце диапазона должны быть отсортированы по возрастанию, то есть от меньшего к большему. Иначе функция ВПР
может вернуть ошибочный результат.
Чтобы лучше понять важность выбора TRUE
(ИСТИНА) или FALSE
(ЛОЖЬ), давайте разберём ещё несколько формул с функцией ВПР
и посмотрим на результаты
Пример 1: Поиск точного совпадения при помощи ВПР
Как Вы помните, для поиска точного совпадения, четвёртый аргумент функции ВПР
должен иметь значение FALSE
(ЛОЖЬ).
Давайте вновь обратимся к таблице из самого первого примера и выясним, какое животное может передвигаться со скоростью 50
миль в час. Я верю, что вот такая формула не вызовет у Вас затруднений:
VLOOKUP(50,$A$2:$B$15,2,FALSE)
=ВПР(50;$A$2:$B$15;2;ЛОЖЬ)
Обратите внимание, что наш диапазон поиска (столбец A) содержит два значения 50
– в ячейках A5
и A6. Формула возвращает значение из ячейки B5
Почему? Потому что при поиске точного совпадения функция ВПР
использует первое найденное значение, совпадающее с искомым.
Пример 2: Используем ВПР для поиска приблизительного совпадения
Когда Вы используете функцию ВПР
для поиска приблизительного совпадения, т.е. когда аргумент range_lookup
(интервальный_просмотр) равен TRUE
(ИСТИНА) или пропущен, первое, что Вы должны сделать, – выполнить сортировку диапазона по первому столбцу в порядке возрастания.
Это очень важно, поскольку функция ВПР
возвращает следующее наибольшее значение после заданного, а затем поиск останавливается. Если Вы пренебрежете правильной сортировкой, дело закончится тем, что Вы получите очень странные результаты или сообщение об ошибке #N/A
(#Н/Д)
Вот теперь можно использовать одну из следующих формул:
VLOOKUP(69,$A$2:$B$15,2,TRUE) или =VLOOKUP(69,$A$2:$B$15,2)
=ВПР(69;$A$2:$B$15;2;ИСТИНА) или =ВПР(69;$A$2:$B$15;2)
Как видите, я хочу выяснить, у какого из животных скорость ближе всего к 69
милям в час. И вот какой результат мне вернула функция ВПР
:
Как видите, формула возвратила результат Антилопа
(Antelope), скорость которой 61
миля в час, хотя в списке есть также Гепард
(Cheetah), который бежит со скоростью 70
миль в час, а 70 ближе к 69, чем 61, не так ли? Почему так происходит? Потому что функция ВПР
при поиске приблизительного совпадения возвращает наибольшее значение, не превышающее искомое.
Надеюсь, эти примеры пролили немного света на работу с функцией ВПР
в Excel, и Вы больше не смотрите на неё, как на чужака. Теперь не помешает кратко повторить ключевые моменты изученного нами материала, чтобы лучше закрепить его в памяти.
Как сравнить два столбца в Excel по строкам
Сравнивая два столбца с данными часто необходимо сравнивать данные в каждой отдельной строке на совпадения или различия. Сделать такой анализ мы можем с помощью функции ЕСЛИ . Рассмотрим как это работает на примерах ниже.
Пример 1. Как сравнить два столбца на совпадения и различия в одной строке
Для того, чтобы сравнить данные в каждой строке двух столбцов в Excel напишем простую формулу ЕСЛИ . Вставлять формулу следует в каждую строку в соседнем столбце, рядом с таблицей, в которой размещены основные данные. Создав формулу для первой строки таблицы, мы сможем ее протянуть/скопировать на остальные строки.
Для того чтобы проверить, содержат ли два столбца одной строки одинаковые данные нам потребуется формула:
Формула, определяющая различия между данными двух столбцов в одной строке будет выглядеть так:
Мы можем уместить проверку на совпадения и различия между двумя столбцами в одной строке в одной формуле:
Пример результата вычислений может выглядеть так:
Для того чтобы сравнить данные в двух столбцах одной строки с учетом регистра следует использовать формулу:
Как найти подстроку в Excel
В ситуациях, когда вы не хотите извлекать подстроку, а хотите найти только ячейки, содержащие ее, вы используете функцию ПОИСК или НАЙТИ, как показано в приведенных выше примерах, но выполняете поиск внутри функции ЕСНИМ. Если ячейка содержит подстроку, функция поиска возвращает позицию первого символа, и если ISNUMBER получает любое число, она возвращает TRUE. Если подстрока не найдена, поиск приводит к ошибке, заставляя ISNUMBER возвращать FALSE.
IНОМЕР(ПОИСК(«подстрока«, клетка))
Предположим, у вас есть список британских почтовых индексов в столбце A, и вы хотите найти те, которые содержат подстроку «1ZZ». Чтобы это сделать, используйте эту формулу:
=ISNUMBER(ПОИСК(«1zz», A2))
Результаты будут выглядеть примерно так:
Если вы хотите вернуть собственное сообщение вместо логических значений ИСТИНА и ЛОЖЬ, вложите приведенную выше формулу в функцию ЕСЛИ:
=ЕСЛИ(IЧИСЛО(ПОИСК(«1zz», A2)), «Да», «»)
Если ячейка содержит подстроку, формула возвращает «Да», в противном случае — пустую строку («»):
Как вы помните, функция ПОИСК в Excel нечувствительна к регистру, поэтому вы используете ее, когда регистр символов не имеет значения. Чтобы ваша формула различала прописные и строчные буквы, выберите функцию НАЙТИ с учетом регистра.
Дополнительные сведения о том, как найти текст и числа в Excel, см. в разделе Если ячейка содержит примеры формул.
Функция ПОДСТАВИТЬ
Данная функция заменяет в тексте вхождения указанной подстроки на новый текст, чем схожа с функцией «ЗАМЕНИТЬ», но между ними имеется принципиальное отличие. Если функция «ЗАМЕНИТЬ» меняет текст, указанный посимвольно вручную, то функция «ПОДСТАВИТЬ» автоматически находит вхождения указанной строки и меняет их.
Синтаксис: ПОДСТАВИТЬ(текст; старый_текст; новый_текст; )
- текст – строка или ссылка на ячейку, содержащую текст;
- старый_текст – подстрока из первого аргумента, которую необходимо заменить;
- новый_текст – строка для подмены старого текста;
- номер_вхождения – необязательный аргумент. Принимает целое число, указывающее порядковый номер вхождения старый_текст, которое подлежит замене, все остальные вхождения затронуты не будут. Если оставить аргумент пустым, то будут заменены все вхождения.
Пример использования:
Строка в ячейке A1 содержит текст, в котором имеются 2 подстроки «старый». Нам необходимо подставить на место первого вхождения строку «новый». В результате часть текста «…старый-старый…», заменяется на «…новый-старый…».
Если ли бы последний аргумент был опущен, то результатом бы стала строка «строка, содержащая новый-новый текст».
5 thoughts on “ «ВПР» по частичному совпадению ”
На форуме SQL.ru мне подсказали еще одно очень изящное решение этой задачи, посмотреть его можно здесь: http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&t > Спасибо большое, Казанский (автор совета)!
Игорь, спасибо Вам огромное за эту «бронебойную» формулу. Весь интернет «перелопатила» в поиске решения своей задачи и только Вы мне помогли на 100%. Всё работает как часики. Удачи Вам, успешной работы и ещё больше таких гениальных решений.
Ольга, спасибо большое за Ваш комментарий! Справедливости ради надо сказать, что идея этой формулы не моя, а обнаружил я ее на сайте Exceljet
Игорь, добрый день! Формула прекрасная, но есть ли какая-нибудь ее вариация, которая может находить и подставлять несколько значений сразу? Например, в строке указаны два производителя холодильников, LG и Samsung Можно ли вывести их в ячейку через запятую?
Добрый день, Артём! Спасибо за ваш комментарий и прошу прощения за медленный ответ. Вопрос интересный, но с ходу у меня на него ответа, увы, нет, а по времени довольно сильно ограничен. Если будет свободное время, попробую поломать голову на эту тему
Рассмотрим использование функции ЕСЛИ в Excel в том случае, если в ячейке находится текст.
Будьте особо внимательны в том случае, если для вас важен регистр, в котором записаны ваши текстовые значения. Функция ЕСЛИ не проверяет регистр – это делают функции, которые вы в ней используете. Поясним на примере.
Как в экселе найти нужное слово по ячейкам
Для отображения адресов тех ячеек, которые содержат то, что вы пытаетесь отыскать, следует придерживаться следующих шагов:
- Если вы являетесь пользователем программы 2010 года, стоит перейти к меню, после чего кликнуть по «Правке», и затем «Найти».
- Далее откроется окошко, в котором предстоит пропечатать искомую фразу.
- Программа предыдущей версии располагает данной кнопкой в меню под названием «Главная», расположенная на панели редактирования.
- Подобного же результата возможно достигать в любой из версий, одновременно воспользовавшись кнопками Ctrl, а также, F.
- В поле следует пропечатать фразу, искомые слова либо цифры.
- Нажав «Найти все», вы запустите поиск по абсолютно всему файлу. Кликнув «Далее», программа по одной клеточке, располагающихся под курсором-ячейкой файла, будет их выделять.
- Стоит подождать, пока процесс завершится. При этом чем объемнее документ, тем больше времени уйдет на поиск.
- Возникнет список результатов: имена и адреса клеточек, которые содержат в себе совпадения с указанным значением либо фразой.
- Кликнув на любую строчку, будет выделена соответствующая ячейка.
- С целью удобства, можно «растягивать» окно. Таким образом в нем будет виднеться больше строк.
- Для сортировки данных, необходимо кликать на названиях столбиков над найденными результатами. Нажав на «Лист», строки будут выстроены по алфавиту зависимо от наименования листа, а выбрав «Значения» — расположатся в зависимости от значения. К слову, данные столбики тоже можно «растянуть».
Поисковые параметры
Возможно задавать собственные условия. К примеру, осуществлять поиск на основании нескольких знаков. Вот каким образом отыскать слово, которое вы не помните полностью:
- Следует ввести лишь частичку надписи. Можно даже одну из букв – будут обозначены все участки, где она имеется.
- Применяйте значки «звездочка», а аткже, знак вопроса. Они способны заместить пропущенные символы.
- Вопросом обозначается одна недостающая позиция. Если, например, вы пропечатаете «А????», будут отображены ячейки, которые содержат слово из пяти символов, которое начинается с «А».
- Благодаря звездочке, замещается любое количество знаков. Для поиска всех значений, содержащих корень «раст», следует начать искать согласно ключу «раст*».
Кроме того, вы можете посещать настройки:
- В окошке поиска следует кликнуть «Параметры».
- В разделах просмотра и области поиска, необходимо будет указать, где именно и на основании каких критериев нужно отыскивать совпадения. Можно подобрать формулы, различные примечания либо значения.
- Для различия системой строчных и прописных букв, нужно выставить галочку в поле под названием «Учитывать регистр».
- Отметив пункт «Ячейка полностью», результаты отобразятся в виде клеток, содержащих исключительно заданную поисковую фразу, и ничего кроме нее.
Настройки форматирования ячеек
Для поиска значений с конкретной заливкой либо начертанием, следует применить настройки. Итак, если слово выглядит иначе, нежели остальной текст, нужно выполнить следующее:
- В окошке поиска следует кликнуть по параметрам и нажать клавишу «Формат». Будет открыто меню, содержащее несколько вкладок.
- Можно указывать тот или иной шрифт, тип рамочки, окраску фона, а также, формат вводимых данных. Системой будут просмотрены те участки, которые соответствуют обозначенным критериям.
- Для взятия информации из текущей клеточки (выделенной на данный момент), следует кликнуть «Использовать формат данной ячейки». В таком случае программой будут найдены все значения, обладающие тем же размером и типом символов, той же окраской, а также, теми же границами и т.п.
Поиск позиции подстроки
Строковая функция VBA Instr
Функция VBA Instr возвращает начальную позицию подстроки в другой строке. Эта функция чувствительна к регистру. Синтаксис строковой функции VBA Instr:
Instr (, Строка, Подстрока, ), где:
- Начинать (По желанию) — указывает начальную позицию для функции для поиска. Если пусто, используется значение по умолчанию 1.
- Строка — исходный текст.
- Подстрока- Подстрока в исходном тексте, положение которой вы хотите найти.
- Сравнивать (По желанию)- Определяет тип сравнения, которое нужно сделать. Если пусто, используется двоичное сравнение.
—vbBinaryCompare — двоичное сравнение (верхний и нижний регистры считаются разными)-vbTextCompare — Сравнение текста (верхний и нижний регистр считаются одинаковыми)-vbDatabaseCompare — сравнение базы данных (этот параметр используется только в Microsoft Access и представляет собой сравнение на основе базы данных)
В следующем коде показано, как использовать функцию Instr String для определения первого вхождения подстроки «Th» в основной строке:
123456789101112 | Sub UsingTheInstrStringFunction ()Тусклое значение: одно как строкаУменьшить положение подстроки как целое числоvalueOne = «Это текст»positionofSubstring = InStr (1, valueOne, «Th»)Отладка. Печать позиции подстрокиКонец подписки |
Результат (выводится в окно Immediate Window):
Функция Instr вернула позицию первого вхождения подстроки «Th», которая равна 1
Обратите внимание, что эта функция включает пробелы в счетчике
Строковая функция VBA InstrRev
Функция VBA InstrRev возвращает начальную позицию подстроки в другой строке, но начинает отсчет позиции с конца строки. Эта функция чувствительна к регистру. Синтаксис строковой функции VBA InstrRev:
InstrRev (String, Substring, , ), где:
- Строка — исходный текст.
- Подстрока- Подстрока в исходном тексте, положение которой вы хотите найти.
- Начинать (По желанию) — указывает позицию для начала поиска. Если пусто, функция начинает поиск с последнего символа.
- Сравнивать (По желанию)- Определяет тип сравнения, которое нужно сделать. Если пусто, используется двоичное сравнение.
-vbBinaryCompare — двоичное сравнение (верхний и нижний регистры считаются разными)-vbTextCompare — Сравнение текста (верхний и нижний регистр считаются одинаковыми)-vbDatabaseCompare — сравнение базы данных (этот параметр используется только в Microsoft Access и представляет собой сравнение на основе базы данных)
В следующем коде показано, как использовать функцию InstrRev String для определения первого вхождения подстроки «Th» в основной строке, начиная с конца строки:
1234567891011 | Sub UsingTheInstrRevStringFunction ()Тусклое значение: одно как строкаУменьшить положение подстроки как целое числоvalueOne = «Это текст»positionofSubstring = InStrRev (valueOne, «Th»)Отладка. Печать позиции подстрокиКонец подписки |
Результат выводится в Немедленное окно:
Функция InstrRev вернула позицию первого вхождения подстроки «Th», но отсчет начинается с конца, равного 9
Обратите внимание, что эта функция включает пробелы в счетчике