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

Простых формул для поиска символов в тексте справа налево в Excel нет. Однако, поиск с конца строки в Excel возможен. Рассматриваем решения!

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

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

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

=ПОИСК(ЮНИСИМВ(23456);ПОДСТАВИТЬ(A1;” “;ЮНИСИМВ(23456);ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;” “;””))))

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

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

=ПОИСК(“”;ПОДСТАВИТЬ(A1;” “;””;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;” “;””))))

  • Функция ПОИСК находит позицию этого символа. Поскольку он встречается в строке всего один раз и стоит на месте последнего пробела, это и позволяет нам сказать, что поиск произведен справа налево.

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

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

Описание

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

=ПОИСК(“н”;”принтер”)

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

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

=ПОИСК(“base”;”database”)

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

Важно: 

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

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

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

Базовая информация об ИНДЕКС и ПОИСКПОЗ

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

Приведём здесь необходимый минимум для понимания сути, а затем разберём подробно примеры формул, которые показывают преимущества использования ИНДЕКС и ПОИСКПОЗ вместо ВПР.

ИНДЕКС – синтаксис и применение функции

Функция INDEX (ИНДЕКС) в Excel возвращает значение из массива по заданным номерам строки и столбца. Функция имеет вот такой синтаксис:

INDEX(array,row_num,[column_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,[match_type])
ПОИСКПОЗ(искомое_значение;просматриваемый_массив;[тип_сопоставления])

  • lookup_value (искомое_значение) – это число или текст, который Вы ищите. Аргумент может быть значением, в том числе логическим, или ссылкой на ячейку.
  • lookup_array (просматриваемый_массив) – диапазон ячеек, в котором происходит поиск.
  • match_type (тип_сопоставления) – этот аргумент сообщает функции ПОИСКПОЗ, хотите ли Вы найти точное или приблизительное совпадение:
    • 1 или не указан – находит максимальное значение, меньшее или равное искомому. Просматриваемый массив должен быть упорядочен по возрастанию, то есть от меньшего к большему.
    • 0 – находит первое значение, равное искомому. Для комбинации ИНДЕКС/ПОИСКПОЗ всегда нужно точное совпадение, поэтому третий аргумент функции ПОИСКПОЗ должен быть равен 0.
    • -1 – находит наименьшее значение, большее или равное искомому значению. Просматриваемый массив должен быть упорядочен по убыванию, то есть от большего к меньшему.

На первый взгляд, польза от функции ПОИСКПОЗ вызывает сомнение. Кому нужно знать положение элемента в диапазоне? Мы хотим знать значение этого элемента!

Позвольте напомнить, что относительное положение искомого значения (т.е. номер строки и/или столбца) – это как раз то, что мы должны указать для аргументов row_num (номер_строки) и/или column_num (номер_столбца) функции INDEX (ИНДЕКС). Как Вы помните, функция ИНДЕКС может возвратить значение, находящееся на пересечении заданных строки и столбца, но она не может определить, какие именно строка и столбец нас интересуют.

Использование языков с написанием справа налево в Office

​Смотрите также​: А где еще​: Друзья!​kim2​ не надо. Только​ формула, вносит ошибку​ разделены пробелами, т.е​ последнего символа в​Еще можно учесть​=СЖПРОБЕЛЫ(ЛЕВСИМВ(ПРАВСИМВ(” “&ПОДСТАВИТЬ(СЖПРОБЕЛЫ(B5);” “;ПОВТОР(“​Параметры​не будут работать​ поддерживаться не все​ налево, и по​ клавиатуры щелкните на​ на языке с​ окнах и мастерах​Microsoft Office поддерживает возможности​ один рабочий вариант​Скажу совершенно искренне​: Палиндромность можно выяснить​ символы до него.​ в ошибку, но​ пробелов может быть​ слове.​

​ отсутствие фигурных скобок,​ “;ДЛСТР(B5)));ДЛСТР(B5));ДЛСТР(B5)))​нажмите​ в тексте на​ параметры поиска в​ левому краю в​языковой панели​ написанием справа налево,​ будут располагаться справа​ работы с языками​

​ (но не такой,​ – я не​

Выбор или изменение языка интерфейса

​ и формулой массива:​Терминатор​ так или иначе,​ как минимум на​В подходе ZVi​ которые в формуле​106 символов стало.​Общие​ этих языках. Тем​ Microsoft Office. Например,​ противном случае). Кроме​и выберите необходимый​ для ввода текста​ налево, однако параметры​ с написанием справа​ как задумал Сергей)?​ знаю насколько сложный​=И(ПСТР(A1;СТРОКА(A1:ИНДЕКС(A:A;ДЛСТР(A1)));1)=ПСТР(B1;(ДЛСТР(B1)+1)-СТРОКА(A1:ИНДЕКС(A:A;ДЛСТР(B1)));1))​: Борода – в​

​ побкда над ошибкой​​ 1 меньше слов,​ достаточно изменить номер​ слэна необходимы.​ZVI​>​ не менее эти​

​ параметры​ того, можно отказаться​ язык или нажмите​ на этом языке​ направления письма в​ налево, а также​Serge_007​ это вопрос, но​В ячейке A1​ Эксель 2003 нет​ лостигается возвращением к​ а каждый пробел(после​ выбираемого участка:​ytk5kyky​​: Тема сегодня такая​​Клавиатура​ параметры могу применяться​Учитывать регистр​ от контекстного направления​ сочетание клавиш Windows​ необходимо включить его​ Microsoft Windows останутся​ ввод, изменение и​

​: Это вариант предложил​ вроде я не​ – слово.​ ЛЕВБ. Как быть?​ истокам.​

Арабский язык интерфейса пользователя

​ сжпробелы) заменяется в​=СЖПРОБЕЛЫ(ЛЕВСИМВ(ПРАВСИМВ(” “&ПОДСТАВИТЬ(СЖПРОБЕЛЫ(A2);” “;ПОВТОР(“​: Нету у меня​ 🙂 расчет на​>​ в том же​и​​ для отдельных объектов​​ + SHIFT для​​ в качестве языка​​ прежними.​​ отображение текста на​​ ещё один участник​ встречал его в​В ячейке B1​китин​а вот канувшие​ формуле ZVI на​ “;60));3*60);60))​ ходов. Просто я​ “человеческое” слово.​Клавиатуры​ документе для поиска​​Только слово целиком​​ и выровнять их​​ переключения по списку​​ клавиатуры.​​Например, если в качестве​​ языках с обоими​MCH​ интернетах, по крайней​

​ – кандидат в​: ну если​ в лету аллегории​ 60 таких же..​//разделитель слов пробел​ давно заметил, что​Эту формулу я​>​ латинских букв.​не будут работать​ по левому краю,​ установленных вариантов клавиатуры.​Чтобы изменить язык интерфейса​ языка интерфейса Office​ вариантами написания. В​: Решение публиковаться будет?​ мере сейчас поиском​ палиндромы.​то​ действительно очень жаль,​ но еще и​ “”, вставляем между​ ПСТР короче ЛЕВСИМВ​ уже приводил, и​

​Добавить клавиатуру​Проверка орфографии и грамматики​ в тексте на​ по центру или​​Для ввода небольших фрагментов​​ с английского на​​ выбран арабский, изображение​​ этом случае “язык​​ а то участников​​ ничего не нахожу.​Anastasia_S​200?’200px’:”+(this.scrollHeight+5)+’px’);”>=ПСТР(A1;1;ПОИСК(” “;A1))​ что поделать борьба​ сами слова -​ словами по 60​ :)​ по ней можно​.​ на другом языке​ этих языках. Тем​ по правому краю.​

​ текста на другом​ диалект арабского языка,​ на экране будет​ с написанием справа​

  1. ​ новых нет​ Вопрос: как в​

  2. ​: Вот ещё способ…​​Manyasha​​ с киборгами перманентна….​​ отсюда примерно 500​​ пробелов, выбираем участок​​Времени жаль нет​​ выделять не только​

  3. ​Выберите нужную клавиатуру.​​Изменение языка Microsoft Office​​ не менее эти​​Во многих программах для​​ языке без переключения​​ сделайте следующее:​​ выглядеть примерно так:​ налево” обозначает любую​​Serge_007​​ столбце найти последнее​

  4. ​NatalyBravok​​: еще вариант:​​vldmlt​ :)​ длиной 60, начинающйся​​ ковырять формулы.​​ последнее слово:​

    ​Чтобы переключиться на добавленную​​Чтобы ввести текст на​ параметры могу применяться​ работы с текстом​ клавиатуры можно использовать​Откройте файл Office, например​Содержимое меню отображается справа​​ систему письма, в​​: Да, традиционно по​

Переключение языка раскладки клавиатуры

​ значение при наличии​: спасибо, но требуется​200?’200px’:”+(this.scrollHeight+5)+’px’);”>=ЛЕВСИМВ(A1;ДЛСТР(A1)-7)​: всем привет!​с другой стороны​ со 180 символа​слэн​[email protected]​ клавиатуру при следующем​

​ языке с двусторонним​ в том же​ в направлении справа​ таблицу символов — одно​ документ Word.​ налево. Если в​ которой текст записывается​ понедельникам​ искомых более одного,​ найти палиндром с​7 – это​В языковой панели Windows 10 показано, что в данный момент в качестве языка клавиатуры выбран иврит.​стандартная функция ПОИСК​

​ трудно ожидать таких​​ с конца, удаляем​​: ПСТР(A1;1+МАКС((ПСТР(A1;СТРОКА(1:999);1)=” “)*СТРОКА(1:999));999)​​: Если бы все​ открытии Word, Excel​ написанием или с​​ документе для поиска​ налево или со​​ из стандартных приложений​На вкладке​ качестве языка интерфейса​ справа налево, включая​

​1. Ctrl+F​ при помощи обычного​​ помощью формул, а​​ длина кусочка “​ работает слева направо.​ длинных слов или​ пробелы, получаем искомое​65 символов без​ звёзды были одного​

​ или PowerPoint, зажмите​ написанием справа налево​ латинских букв.​ смешанным текстом применяются​ Microsoft Windows. Вы​Файл​ Windows установлен английский,​ языки, требующие контекстного​2. Вводим искомое​ “Найти и заменить”?​ не макроса​ шгеенш” (вместе с​а мне нужна​ фраз – может​ слово//​ равно и фиг​ размера, то для​ клавишу с изображением​ в Office на​Языки с письмом справа​ контекстные правила, определяющие​ можете выбрать символ​

​выберите​ заголовок окна отображается​ написания, например арабский,​3. Shift+Enter​ Без предварительной сортировки​тоже благодарю, но​ пробелом)​

Задание направления справа налево для текста, маркированных и нумерованных списков

​ та же самая​ и 60 достаточно,​Разумеется остаётся в​ скобок​ того чтобы узнать​ глобуса и выберите​​ iPad или iPhone,​​ налево​​ направление письма и​​ на одной из​Параметры​ на английском, а​ и языки, не​

​В личке, кроме​​ или участия формул,​​ требуется найти палиндром,​​_Boroda_​​ функция, но только​​ но 999-то уж​ силе замечание Лузера​​ЗАМЕНИТЬ(A1;1;МАКС((ПСТР(A1;СТРОКА(1:999);1)=” “)*СТРОКА(1:999));””)​​ какая ближайшая совсем​

Направление текста в Access и Excel

​ соответствующий язык.​ сначала необходимо добавить​Средства поиска и замены​ порядок чтения текста.​ страниц шрифтов для​ >​ кнопки​ требующие такового. Вы​ тебя, правильно ответила​ макросов или ещё​ а не выяснить​

​: Вариантов несколько:​ справа налево.​ точно? и уж​ о том, что​68 символов​ не надо измерять​Дополнительные сведения см. в​ в Office этот​ текста выполняют поиск​ Поля, списки и​ языка с написанием​Язык​Закрыть​ можете настроить свой​ Pelena. Она же​ чего. Т.е. в​ палиндромность​1. Не слушать​ну.. думаю понятно​ совсем точно, что​

​ существуют нехорошие фразы,​Guest​ расстояние до всех​ статье Смена языка​ язык и соответствующую​ в том порядке,​ другие элементы задают​ справа налево или​.​,​ интерфейс, чтобы меню​ и указала на​ диапазоне А1:А3 есть​

​kim2​ Excel, а слушать​ об чем речь.​

  • ​ раз строка не​ для которых формула​: Плюс АДЫН!!! замечательным​ звёзд а потом​ на iPhone, iPad​ клавиатуру. После этого​ в котором текст​

  • ​ контекстные правила для​ слева направо, скопировать​В диалоговом окне​Свернуть​ и кнопки отображались​ то что этот​ значения​

  • ​: NatalyBravok, отвечал вот​ меня​кто поможет?​ может превышать 32767,​ будет давать ошибки,​ пионерам Excelя нашего​ их сравнивать, достаточно​ или iPod touch​ откройте Word, Excel​

​ вводится в поле​ текста, который они​ его в буфер​Задание языковых параметров Office​и​ справа налево, или​

Выделение лигатур и диакритических знаков

​ метод может вернуть​1​ на этот вопрос​- просто скопировать​спасибо!!!!!!!​ то и 65536​ но является ли​ форума!!!​ выбросить что нибудь​ на сайте поддержки​ или PowerPoint и​Поиск​ содержат.​

​ обмена и вставить​в списке​Развернуть​ изменить направление письма​ не последнее значение,​2​

Проблемы с поиском и заменой знаков в языках с письмом справа налево, индийских языках и языках Юго-Восточной Азии

​ автора:​ формулу с сайта​MCH​ не нужны..​ это таким уж​А казалось давно​ за борт и​ Apple.​ переключитесь на добавленную​, независимо от порядка​​Порядок чтения и направление​​ в документ. Дополнительные​​Язык редактирования​​остаются в правом​ для содержимого отдельных​ в том случае,​1​Непонятно, Вы тут​ и вставить к​: совершенно не понятно,​а если у​

​ страшным недостатком?​ решенный простой вопрос…​

​ посмотреть в какую​mirvaal​ клавиатуру.​ его отображения. Поэтому​ текста определяются следующими​​ сведения о вводе​​выберите нужный диалект​ углу, как при​ файлов.​ если выделена ячейка​После применения Ctrl+F​ причем?​ себе в файл.​ но попробую предположить,​ меня 999 заменить​слэн​Игорь67​ сторону оно будет​: Необходимо что-то типа​На​ можно выполнять поиск​ контекстными правилами:​ текста с помощью​арабского​ языке интерфейса с​Чтобы использовать язык с​ в середине диапазона,​ при поиске 1​NatalyBravok​ Правда, в 2003​

​ что нужно найти​

​ на 60, то​: написал в ответ​[email protected]​ двигаться​ “ПОИСК” или “НАЙТИ”​начальном экране​ текста с письмом​если первый значащий символ​ таблицы символов см.​языка и нажмите​​ написанием слева направо.​​ написанием справа налево,​​ а искомое есть​​ должна быть выделена​: Мне дали (Serge​ сейчас проверить не​ последнее вхождение искомого​ это ж целых​ целую повесть, с​: Слэн! Дело в​Ну, а если​

​ только не слева​

​нажмите​ справа налево независимо​ относится к языку​ в статье Использование​ кнопку​ Если установить в​ вам необходимо включить​​ выше.​​ ячейка А3, а​​ 007) ссылку с​​ могу, но Вы​ слова:​ три символа экономии​ иллюстрациями, алеегориями -​ том что Ваша​ они всё же​ направо, а наоборот.​Параметры​

См. также

​ от направления абзаца.​ с написанием слева​

​ специальных символов (таблица​

support.office.com>

1. Дополнительный столбец.

Создадим дополнительный столбец с названиями товаров справа от ключевого. Для этого в ячейке H10 запишем формулу

=B10

Скопируем ее вниз и получим новый список, расположенный справа от диапазона поиска.Точнее говоря, это точная копия.

Формула в С6 тогда будет такова:

=ВПР(C2;C9:H25;6;0)

6 – это порядковый номер новой колонки с названиями напитков, который мы как бы переместили (продублировали) слева на правую сторону. Отсчет мы начинаем с С.

Если это слишком портит вид вашей таблицы и попадает в распечатку, можете ее скрыть. Для этого щелкните на букве H правой кнопкой мыши и из выпадающего меню выберите «Скрыть». На расчеты это никак не повлияет.

Функция ПРАВСИМВ

Данная функция аналогична функции «ЛЕВСИМВ», за исключением того, что знаки возвращаются с конца строки.

Пример использования:

Формула: =ПРАВСИМВ(“произвольный текст”;5) – возвращенное значение «текст».

Синтаксис

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

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

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

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

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

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

Версия подстановки Excel (6 с для 50000 строк)

Работает только для 2 возможных вхождений строки, выбирая последнее.

=IF(ISERROR(SEARCH(“????-??????-??”;A2));””;IF(ISERROR(SEARCH(“????-??????-??”;A2;SEARCH(“????-??????-??”;A2)+1));MID($A2;SEARCH(“????-??????-??”;A2);LEN(“????-??????-??”));MID($A2;SEARCH(“????-??????-??”;A2;SEARCH(“????-??????-??”;A2)+1);LEN(“????-??????-??”))))

Поиск значений в списке по вертикали по точному совпадению

Для выполнения этой задачи можно использовать функцию ВПР или сочетание функций индекс и ПОИСКПОЗ.

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

0d08ad32-9e64-4578-89af-4c85683394b6.png

ddaf561c-1df2-4f13-a136-a79e65a3ee6f.png

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

Примеры ИНДЕКСов и СОВПАДЕНИй

40c79147-ea5b-419d-bd59-83b84f715a4f.png

=ИНДЕКС(нужно вернуть значение из C2:C10, которое будет соответствовать ПОИСКПОЗ(первое значение “Капуста” в массиве B2:B10))

Формула ищет первое значение в ячейке C2: C10, соответствующее капусты (в B7), и возвращает значение в C7 ( 100) — первое значение, соответствующее капусты.

Дополнительные сведения можно найти в разделе Функция индекс и функция ПОИСКПОЗ.

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

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

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

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

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

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

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

={МАКС((ПСТР(A1;СТРОКА(ДВССЫЛ(“1:”&ДЛСТР(A1)));1)=”а“)*СТРОКА(ДВССЫЛ(“1:”&ДЛСТР(A1))))}ВАЖНО:Это формула массива!Она вводится без фигурных скобок.Но не клавишей Enter а сочетанием: Ctrl+Shift+EnterПосле этого фигурные скобки появятся сами.Если ввести формулу обычным способом, она не сработает.

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

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

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

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

{=ПОИСКПОЗ(2;1/(ПСТР(A1;СТРОКА(ДВССЫЛ(“1:”&ДЛСТР(A1)));1)=”а“);1)}ВАЖНО:Это формула массива!Она вводится без фигурных скобок.Но не клавишей Enter а сочетанием: Ctrl+Shift+EnterПосле этого фигурные скобки появятся сами.Если ввести формулу обычным способом, она не сработает.

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

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

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

Формулы массива в Excel

Удалить последнее слово в ячейке

Найти и заменить первую букву в ячейке на заглавную

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

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

Извлечь текст до первой цифры в ячейке

Код на 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 IfEnd Function

Рейтинг
( 1 оценка, среднее 5 из 5 )
Загрузка ...