Заказать макрос
Разрабатываем макросы на заказ. Любой сложности. Быстро и качественно.
Подробнее...
Готовые решения » Надстройка VBA-Excel » Поиск с конца строки

Поиск с конца строки в Excel

Функция КОНЕЦСТРОКИ из надстройки поможет быстро вернуть конец строки после заданного текста.

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

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

Вот этот набор функций, не очень то очевидно, согласитесь:

 =ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ("Заданный текст";A1;1)-ДЛСТР("Заданный текст"))

Для удобства в надстройку VBA-Excel добавлена функция КОНЕЦСТРОКИ. Она выполняет поиск заданного текста с конца строки и возвращает текст от искомой позиции до конца строки. И интерфейс у нее намного понятнее:

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

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

Пример 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
    If Регистр = 1 Then
        КОНЕЦСТРОКИ = Right(ТЕКСТ, Len(ТЕКСТ) - InStr(Старт, ТЕКСТ, НАЙТИ) - Len(НАЙТИ) + 1)
    Else
        КОНЕЦСТРОКИ = Right(ТЕКСТ, Len(ТЕКСТ) - InStr(Старт, ТЕКСТ, НАЙТИ, vbTextCompare) - Len(НАЙТИ) + 1)
    End If
End Function
Надстройка
VBA-Excel
Надстройка для Excel содержит большой набор полезных функций, с помощью которых вы значительно сократите время и увеличите скорость работы с программой.

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

comments powered by Disqus