Заказать макрос
Разрабатываем макросы на заказ. Любой сложности. Быстро и качественно.
Подробнее...

Вернуть текст до найденного слова или символа

Функция НАЧАЛОСТРОКИ возвращает текст с начала строки до заданного текста или символа.

Описание функции

Функция полезна, когда необходимо вернуть символы от начала строки. В отличие от функции ЛЕВСИМВЛ задается не количество символов, а строка, до которой необходимо вернуть текст.

Функция =НАЧАЛОСТРОКИ(ТЕКСТ; НАЙТИ; [Старт]; [Регистр]) имеет 4 аргумента:

  • ТЕКСТ - Исходный текст (или ссылка на ячейку), в котором необходимо найти начало строки.
  • НАЙТИ - Текст, до которого будет возвращаться начало строки
  • [Старт] - Необязательный параметр. Позиция внутри исходного текста, с которой начинается поиск текста. По умолчанию параметр равен 1.
  • [Регистр] - Необязательный аргумент, указывающий необходимость учета регистра. По умолчанию равен 1 - регистр учитывается. Укажите значение 0 если не хотите учитывать регистр при сравнении.

Пример 1

Найти текст до слова СТОП. Обратите внимание не важно в какой части текста находится заданное слово.

Найти текст с начала строки

Без применения данной функции, пришлось бы сооружать вот такую формулу: =ЛЕВСИМВ(B15;НАЙТИ("СТОП";B15)-1)

Пример 2

Еще один вариант вернуть первое слово в тексте - в качестве параметра НАЙТИ указать пробел.

Найти первое слово в тексте

Пример 3

Можно начинать поиск с заданной позиции (аргумент Старт). Может понадобиться в случае если стоп-слово встречается не один раз.

Функция НАЧАЛОСТРОКИ

Пример 4

В предыдущих примерах регистр искомого текста учитывался. Для того заглавные и строчные буквы НЕ учитывались при поиске, установите параметр Регистр = 0.

Поиск начала строки без учета регистра

Код на VBA

Function НАЧАЛОСТРОКИ(ByVal ТЕКСТ As String, ByVal НАЙТИ As String, _
                    Optional ByVal Старт As Long = 1, Optional ByVal Регистр As Long = 1) As String
    Dim nInStr As Long
    If Регистр = 1 Then
        nInStr = InStr(Старт, ТЕКСТ, НАЙТИ)
    Else
        nInStr = InStr(Старт, ТЕКСТ, НАЙТИ, vbTextCompare)
    End If
 
    If nInStr = 0 Then
        НАЧАЛОСТРОКИ = ТЕКСТ
    Else
        НАЧАЛОСТРОКИ = Left(ТЕКСТ, nInStr - 1)
    End If
End Function
Надстройка
VBA-Excel
Надстройка для Excel содержит большой набор полезных функций, с помощью которых вы значительно сократите время и увеличите скорость работы с программой.

Комментарии:

comments powered by Disqus