В последних нескольких статьях мы обсуждали различные текстовые функции. Сегодня наше внимание сосредоточено на ПРАВСИМВ (RIGHT в английской версии), которая предназначена для возврата указанного количества символов из крайней правой части текстовой строки. Как и другие функции для работы с текстом, ПРАВСИМВ очень проста и понятна. Тем не менее, у нее есть несколько неочевидных применений, которые могут оказаться полезными в вашей работе.

Синтаксис.

ПРАВСИМВ возвращает указанное количество символов от конца текста.

Правила написания:

ПРАВСИМВ(текст; [число_знаков])

Где:

  • Текст  (обязательно) - текст, из которого вы хотите извлечь символы.
  • число_знаков  (необязательно) - количество символов для извлечения, начиная с самого правого символа.
    • Если аргумент опущен, возвращается один последний символ (по умолчанию).
    • Когда число знаков для извлечения больше, чем общее количество символов в ячейке, возвращается весь текст.
    • Если введено отрицательное число, формула возвращает ошибку #ЗНАЧ!.

Например, чтобы извлечь последние 6 символов из ячейки A2, запишите:

=ПРАВСИМВ(A2; 6)

Результат может выглядеть примерно так:

Важное замечание! ПРАВСИМВ всегда возвращает текст, даже если исходное значение является числом. Чтобы заставить формулу выводить число, используйте ее в сочетании с ЗНАЧЕН, как показано в этом примере .

В реальных таблицах ПРАВСИМВ редко используется в одиночку. В большинстве случаев вы будете использовать ее вместе с другими функциями Excel в составе более сложных формул. Об этом и поговорим далее.

Как получить подстроку после определенного символа.

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

ПРАВСИМВ( текст; ДЛСТР( текст ) - ПОИСК( символ ; текст ))

Скажем, ячейка A2 содержит имя и фамилию, разделенные пробелом, и вы хотите перенести фамилию в другую ячейку. Просто используйте приведенную выше общую формулу:

=ПРАВСИМВ(A2;ДЛСТР(A2)-ПОИСК(" ";A2))

Формула даст следующий результат:

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

=ПРАВСИМВ(A2;ДЛСТР(A2)-ПОИСК("-";A2))

Результат будет выглядеть примерно так:

Как извлечь подстроку после последнего вхождения разделителя

При работе со сложными текстовыми выражениями, которые содержат несколько вхождений одного и того же разделителя, вам часто может потребоваться получить текст справа от последнего появления разделителя. Чтобы упростить понимание, взгляните на следующие исходные данные и желаемый результат:
рис4

Как вы можете видеть на скриншоте выше, столбец A содержит список ошибок. Ваша цель - получить описание ошибки, которое идет после последнего двоеточия. Дополнительная сложность заключается в том, что исходные значения могут содержать разное количество разделителей, например, A3 содержит 3 двоеточия, а A5 - только одно.

Ключом к поиску решения является определение позиции последнего разделителя (последнее вхождение двоеточия в этом примере). Для этого вам нужно будет выполнить несколько несложных операций:

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

Чтобы убедиться, что формула работает правильно, вы можете ввести ее в отдельную ячейку, и результатом будет 2, то есть количество двоеточий в ячейке A2.

  1. Замените последний разделитель на какой-нибудь уникальный символ. Чтобы извлечь текст, который идет после последнего разделителя, нам нужно каким-то образом «пометить» это последнее вхождение разделителя. Для этого давайте заменим последнее вхождение двоеточия символом, который нигде не встречается в исходных значениях, например, знаком доллара ($).

Если вы знакомы с синтаксисом функции ПОДСТАВИТЬ, вы можете помнить, что у нее есть 4-й необязательный аргумент (номер вхождения), который позволяет заменять только конкретное появление указанного символа. И поскольку мы уже вычислили количество разделителей, просто впишите рассмотренное выше выражение в четвертый аргумент функции ПОДСТАВИТЬ:

=ПОДСТАВИТЬ(A2;":";"$";ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;":";"")))

Если вы поместите эту формулу в отдельную ячейку, она вернет:          ERROR: 432 $ Connection timed out

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

ПОИСК("$"; ПОДСТАВИТЬ(A2;":";"$";ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;":";"")))))

В этом примере формула возвращает 10, что является позицией $ в измененном тексте.

  1. Получаем подстроку справа от последнего разделителя. Теперь, когда вы знаете позицию последнего разделителя, все, что вам нужно сделать, это вычесть это число из общей длины строки и использовать ПРАВСИМВ, чтобы вернуть это количество символов из конца исходного текста:

ПРАВСИМВ(A2;ДЛСТР(A2)-ПОИСК("$"; ПОДСТАВИТЬ(A2;":";"$";ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;":";"")))))

Если вы работаете с большим набором данных, где разные ячейки могут содержать различные разделители, вы можете заключить приведенную выше формулу в функцию ЕСЛИОШИБКА, чтобы предотвратить возможные сообщения об ошибках:

=ЕСЛИОШИБКА(ПРАВСИМВ(A2;ДЛСТР(A2)-ПОИСК("$"; ПОДСТАВИТЬ(A2;":";"$";ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;":";""))))); A2)

Как показано на скриншоте ниже, формула работает отлично:

Замечание. В случае, если ячейка не содержит ни одного вхождения указанного разделителя, будет возвращена исходная строка целиком.

Как удалить первые N символов из ячейки

Помимо извлечения отрезка из конца строки, ПРАВСИМВ пригодится в ситуациях, когда вы хотите удалить определенное количество символов из её начала.

В наборе данных, использованном в предыдущем примере, вы можете удалить слово «ERROR», которое появляется в начале, и оставить только номер ошибки и описание. Для этого вычтите количество удаляемых символов из общей длины текста и передайте это число в  аргумент количество_знаков:

ПРАВСИМВ( текст; ДЛСТР (текст) - число_символов_для_удаления )

В этом примере мы удаляем первые 6 символов (5 букв и двоеточие) из содержимого A2, поэтому наша формула выглядит следующим образом:

=ПРАВСИМВ(A2; ДЛСТР(A2)-6)

Может ли функция Excel ПРАВСИМВ вернуть число?

Как упоминалось в начале этого руководства, ПРАВСИМВ в Excel всегда возвращает текст, даже если исходное значение является числом. Но что, если вы работаете с числовым набором данных и хотите, чтобы результат тоже был числовым? Простой обходной путь - вложить формулу ПРАВСИМВ в функцию ЗНАЧЕН, которая специально разработана для преобразования текста, состоящего из цифр, в число.

Например, чтобы извлечь последние 6 символов (почтовый индекс) из значения A2 и преобразовать их в число, используйте эту формулу:

=ЗНАЧЕН(ПРАВСИМВ(A2; 6))

На рисунке ниже показан результат. Обратите внимание на числа с выравниванием по правому краю в столбце B, в отличие от текстовых значений, которые выровнены по левому краю в столбце A:

Почему ПРАВСИМВ не работает с датами?

Потому что она предназначена для работы с текстовыми значениями, тогда как даты на самом деле являются числами во внутренней системе Excel. Формула ПРАВСИМВ не может получить отдельную часть даты — день, месяц или год. Если вы попытаетесь это сделать, все, что вы получите, - это несколько последних цифр числа, представляющего дату.

Предположим, у вас есть дата 9 августа 2020 года в ячейке A1. Если вы попытаетесь извлечь год с помощью формулы ПРАВСИМВ(A1,4), результатом будет 4052, что является последними четырьмя цифрами числа 44052, представляющего 9 августа 2020года в системе Excel.

«Итак, как мне получить определенную часть даты?», - спросите вы меня. Используя одно из следующих выражений:

  • Функция ДЕНЬ для извлечения дня: = ДЕНЬ(A1)
  • Функция МЕСЯЦ, чтобы получить месяц: = МЕСЯЦ(A1)
  • ГОД, чтобы вытащить год: = ГОД(A1)

На скриншоте показаны результаты:

Если ваши даты записаны в виде текста, что часто бывает при экспорте данных из других программ, то ничто не мешает вам использовать ПРАВСИМВ для извлечения последних нескольких символов, которые представляют определенную часть даты:

Теперь наша попытка извлечь год из даты вполне удачна.

Почему не работает? Причины и решения.

Это может быть связано с одной из следующих причин:

  1. В исходных данных есть один или несколько концевых пробелов. Чтобы быстро удалить лишние пробелы в ячейках, используйте функцию СЖПРОБЕЛЫ.
  2. Аргумент число_знаков меньше нуля. Конечно, вряд ли вам захочется специально добавлять отрицательное число в формулу, но если этот аргумент вычисляется какой-то формулой Excel, и вы получаете ошибку #ЗНАЧ!, то обязательно проверьте вложенные выражения на наличие ошибок.
  3. Исходное значение - дата. Если вы внимательно следовали этому руководству, вы уже знаете, почему формула ПРАВСИМВ не может работать с датами. 

Вот как вы можете использовать ПРАВСИМВ в Excel.  Благодарю вас за чтение и надеюсь увидеть вас в нашем блоге.

Как удалить пробелы в ячейках Excel - Вы узнаете, как с помощью формул удалять начальные и конечные пробелы в ячейке, лишние интервалы между словами, избавляться от неразрывных пробелов и непечатаемых символов. В чем самая большая проблема с…
Функция СЖПРОБЕЛЫ — как пользоваться и примеры - Вы узнаете несколько быстрых и простых способов, чтобы удалить начальные, конечные и лишние пробелы между словами, а также почему функция Excel СЖПРОБЕЛЫ (TRIM в английской версии)  не работает и как…
Функция ЛЕВСИМВ в Excel. Примеры использования и советы. - В руководстве показано, как использовать функцию ЛЕВСИМВ (LEFT) в Excel, чтобы получить подстроку из начала текстовой строки, извлечь текст перед определенным символом, заставить формулу возвращать число и многое другое. Среди…
Как использовать функцию ПСТР в Excel? - ПСТР - одна из текстовых функций, которые Microsoft Excel предоставляет для управления текстовыми строками. На самом базовом уровне она используется для извлечения подстроки из середины текста.  В этом руководстве мы обсудим…
5 примеров с функцией ДЛСТР в Excel. - Вы ищете формулу Excel для подсчета символов в ячейке? Если да, то вы, безусловно, попали на нужную страницу. В этом коротком руководстве вы узнаете, как использовать функцию ДЛСТР (LEN в английской версии)…
Как быстро сосчитать количество знаков в ячейке Excel - В руководстве объясняется, как считать символы в Excel. Вы изучите формулы, позволяющие получить общее количество символов в диапазоне и подсчитывать только определенные символы в одной или нескольких ячейках. В нашем предыдущем…
Как в Excel разделить текст из одной ячейки в несколько - В руководстве объясняется, как разделить ячейки в Excel с помощью формул и стандартных инструментов. Вы узнаете, как разделить текст запятой, пробелом или любым другим разделителем, а также как разбить строки на…
Как преобразовать текст в число в Excel — 8 способов. - В этом  руководстве показано множество различных способов преобразования текста в число в Excel: опция проверки ошибок в числах, формулы, математические операции, специальная вставка и многое другое. Иногда значения в ваших…