Excel оставить символы слева

ЛЕВСИМВ, ЛЕВБ (функции ЛЕВСИМВ, ЛЕВБ)

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Еще…Меньше

В этой статье описаны синтаксис и использование функций ЛЕВСИМВ и ЛЕВБ в Microsoft Excel.

Описание

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

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

Важно: 

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

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

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

Синтаксис

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

ЛЕВБ(текст;[количество_байтов])

Аргументы этих функций описаны ниже.

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

  • Количество_знаков    Необязательный. Количество символов, извлекаемых функцией ЛЕВСИМВ.

    • «Количество_знаков» должно быть больше нуля или равно ему.

    • Если «количество_знаков» превышает длину текста, функция ЛЕВСИМВ возвращает весь текст.

    • Если значение «количество_знаков» опущено, оно считается равным 1.

  • Количество_байт     Необязательный. Количество символов, извлекаемых функцией ЛЕВБ.

Пример

Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу Enter. При необходимости измените ширину столбцов, чтобы видеть все данные.

Данные

Цена продажи

Швеция

Формула

Описание

Результат

=ЛЕВСИМВ(A2;4)

Первые четыре символа первой строки

Продажа

=ЛЕВСИМВ(A3)

Первый символ второй строки

Ш

Нужна дополнительная помощь?

Skip to content

Функция ЛЕВСИМВ в Excel. Примеры использования и советы.

В руководстве показано, как использовать функцию ЛЕВСИМВ (LEFT) в Excel, чтобы получить подстроку из начала текстовой строки, извлечь текст перед определенным символом, заставить формулу возвращать число и многое другое.

Среди множества различных функций, которые Microsoft Excel предоставляет для работы с текстовыми данными, ЛЕВСИМВ — одна из наиболее широко применяемых. Как следует из названия, она позволяет извлекать определенное количество знаков, начиная с левой стороны текста. Однако она способна на гораздо большее, чем такая простая операция. В этом руководстве вы найдете несколько базовых формул для понимания синтаксиса, а затем я покажу вам несколько способов, с помощью которых вы можете использовать ЛЕВСИМВ далеко за пределами ее базового применения.

  • Правила синтаксиса.
  • Как получить подстроку слева от определенного символа?
  • Удаляем последние N символов.
  • Как заставить ЛЕВСИМВ вернуть число, а не текст.
  • Почему не работает?

Cинтаксис.

Функция ЛЕВСИМВ в Excel возвращает указанное количество символов (подстроку) от начала содержимого ячейки.

Синтаксис следующий:

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

Где:

  • Текст  (обязательно) — это текст, из которого вы хотите извлечь подстроку. Обычно предоставляется как ссылка на ячейку, в которой он записан.
  • Второй аргумент  (необязательно) — количество знаков для извлечения, начиная слева.
    • Если параметр опущен, то по умолчанию подразумевается 1, то есть возвращается 1 знак.
    • Если введенное значение больше общей длины ячейки, формула вернет всё ее содержимое.

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

=ЛЕВСИМВ(A2; 6)

На следующем скриншоте показан результат:

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

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

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

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

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

Предположим, что полное имя находится в ячейке A2, позиция пробела возвращается по этой простой формуле: ПОИСК(» «; A2)). А теперь вы вставляете это выражение в ЛЕВСИМВ:

=ЛЕВСИМВ(A2; ПОИСК(» «; A2))

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

=ЛЕВСИМВ(A2; ПОИСК(» «; A2)-1)

Таким же образом вы можете извлечь коды стран из столбца телефонных номеров. Единственное отличие состоит в том, что вам теперь нужно узнать позицию первого дефиса («-«), а не пробела:

=ЛЕВСИМВ(A2; ПОИСК(«-«; A2)-1)

Думаю, вы поняли, что можете брать эту универсальную формулу, чтобы получить подстроку, которая предшествует любому другому знаку:

ЛЕВСИМВ( строка ; ПОИСК( символ ; строка ) — 1)

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

Вы уже знаете, отрезать кусочек от начала текстовой строки. Но иногда вы можете захотеть сделать что-то другое — удалить определенное количество символов из конца строки и перенести оставшееся в другую ячейку. Для этого можно также применять функцию ЛЕВСИМВ в сочетании с ДЛСТР , например:

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

Это работает с такой логикой: ДЛСТР получает общее количество символов в ячейке, затем вы вычитаете количество ненужных знаков из общей длины, а ЛЕВСИМВ возвращает оставшееся.

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

=ЛЕВСИМВ(A2; ДЛСТР(A2)-11)

Как показано на скриншоте, формула успешно отсекает слово «продукты» (8 букв, разделитель и 2 пробела) из текстовых значений в столбце A.

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

Как заставить ЛЕВСИМВ возвращать число.

Как вы уже знаете, ЛЕВСИМВ в Эксель всегда возвращает текст, даже если вы извлекаете несколько первых цифр из ячейки. Для вас это означает, что вы не сможете использовать эти результаты в вычислениях или в других функциях Excel, которые работают с числами.

Итак, как заставить ЛЕВСИМВ выводить числовое значение, а не текстовую строку, состоящую из цифр? Просто заключив его в функцию ЗНАЧЕН (VALUE), которая предназначена для преобразования текста, состоящего из цифр, в число.

Например, чтобы извлечь символы перед разделителем “-” из A2 и преобразовать результат в число, можно сделать так:

=ЗНАЧЕН(ЛЕВСИМВ(A2;ПОИСК(«-«;A2;1)-1))

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

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

Это лишь некоторые из множества возможных вариантов использования ЛЕВСИМВ в Excel. 

Дополнительные примеры формул ЛЕВСИМВ можно найти на следующих ресурсах:

  • Разделить строку запятой, двоеточием, косой чертой, тире или другим разделителем
  • Как разбить текстовую строку вида «число + текст» по столбцам 
  • Подсчитайте количество символов до или после данного символа

Не работает ЛЕВСИМВ — причины и решения

Если ЛЕВСИМВ не работает на ваших листах должным образом, это, скорее всего, связано с одной из причин, которые мы перечислим ниже.

1. Аргумент «количество знаков» меньше нуля

Если ваша формула возвращает ошибку #ЗНАЧ!, то первое, что вам нужно проверить, — это значение аргумента количество_знаков. Если вы видите отрицательное число, просто удалите знак минус, и ошибка исчезнет (конечно, очень маловероятно, что кто-то намеренно поставит отрицательное число, но человек может ошибиться :)

Чаще всего ошибка #ЗНАЧ! возникает, когда этот аргумент получен в результате вычислений, а не записан вручную. В этом случае скопируйте это вычисление в другую ячейку или выберите его в строке формул и нажмите F9, чтобы увидеть результат ее работы. Если значение меньше 0, проверьте на наличие ошибок.

Чтобы лучше проиллюстрировать эту мысль, возьмем формулу, которую мы записали в первом примере для извлечения телефонных кодов страны:

ЛЕВСИМВ(A2; ПОИСК(«-«; A2)-1)

Как вы помните, функция ПОИСК в наших примерах вычисляет позицию первого дефиса в исходной строке, из которой мы затем вычитаем 1, чтобы удалить дефис из окончательного результата. Если я случайно заменю -1, скажем, на -11, Эксель выдаст ошибку #ЗНАЧ!, потому что нельзя извлечь отрицательное количество букв и цифр:

2. Начальные пробелы в исходном тексте

Если вы скопировали свои данные из Интернета или экспортировали из другого внешнего источника, довольно часто такие неприятные сюрпризы попадаются в самом начале текста. И вы вряд ли заметите, что они там есть, пока что-то не пойдет не так. Следующее изображение иллюстрирует проблему:

Чтобы избавиться от ведущих пробелов на листах, воспользуйтесь СЖПРОБЕЛЫ (TRIM).

3. ЛЕВСИМВ не работает с датами.

Если вы попытаетесь использовать ЛЕВСИМВ для получения отдельной части даты (например, дня, месяца или года), в большинстве случаев вы получите только первые несколько цифр числа, представляющего эту дату. Дело в том, что в Microsoft Excel все даты хранятся как числа, представляющие количество дней с 1 января 1900 года. То, что вы видите в ячейке, это просто визуальное представление даты. Ее отображение можно легко изменить, применив другой формат.

Например, если у вас есть дата 15 июля 2020 года в ячейке A1 и вы пытаетесь извлечь день с помощью выражения ЛЕВСИМВ(A1;2). Результатом будет 44, то есть первые 2 цифры числа 44027, которое представляет 15 июля 2020г. во внутренней системе Эксель.

Чтобы извлечь определенную часть даты, возьмите одну из следующих функций:  ДЕНЬ(),  МЕСЯЦ() или  ГОД().

Если же ваши даты вводятся в виде текстовых строк, то ЛЕВСИМВ будет работать без проблем, как показано в правой части скриншота:

Вот как можно использовать функцию ЛЕВСИМВ в Excel. 

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

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

Функция ЛЕВСИМВ в Excel используется для получения части текста и возвращает заданное количество символов текстовой строки, при этом отсчет символов начинается слева.

Как вырезать часть текста из строки функцией ЛЕВСИМВ в Excel?

Пример 1. В таблице Excel содержатся имена переменных вместе с текстом, определяющим их тип данных. Необходимо выделить только названия переменных и записать их в отдельный столбец.

Исходная таблица данных:

Исходная таблица.

Для выделения первого символа, которым является искомое название переменной, используем формулу:

ЛЕВСИМВ.

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

первый символ.

Как видно на рисунке с помощью функции ЛЕВСИМВ получилось вытащить левую часть текста из каждой ячейки по одному (первому) символу.



Как вытащить часть текста из ячейки в Excel используя функцию ЛЕВСИМВ?

Пример 2. В таблицу Excel подтягиваются данные из другого программного продукта. Одно из полей данных получило ошибку. Для обработки ошибки необходимо выделить ее код и описание из строки.

Исходные данные:

Пример 2.

Выделим код ошибки с помощью следующей формулы:

код ошибки.

Описание:

  • ЛЕВСИМВ(B5;НАЙТИ(«3»;B5)+1) – функция, выделяющая часть текстовой строки слева, количество символов в которой соответствуют порядковому номеру символа «3» (функция НАЙТИ выполняет поиск порядкового номера этого символа и возвращает соответствующее значение). Единица (+1) добавлена для выделения всего кода ошибки.
  • 2 – количество символов, которые вернет функция ПРАВСИМВ, работающая аналогично рассматриваемой ЛЕВСИМВ (отличие – возвращает символы справа, а не слева строки).

В результате получим:

ЛЕВСИМВ и НАЙТИ.

Выделим часть текста ошибки:

В данном случае удобнее использовать ПРАВСИМВ, которая является, по сути, зеркальным отражением ЛЕВСИМВ. Для определения второго аргумента используется запись ДЛСТР(B5)-НАЙТИ(«:»;B5)-1, определяющая позицию символа «u» в слове «unknown» (единица вычтена для удаления пробела).

В результате получим:

В результате.

Округление чисел текстовыми функциями в текстовой строке

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

Форма для округления числовых значений имеет следующий вид:

Форма.

В ячейке B3 введена следующая сложная формула:

Логика формулы.

Логика работы:

  1. Первая функция ЕСЛИ проверяет с помощью формулы ЕПУСТО, заполнена ли ячейка, которая должна содержать значение, которое требуется округлить.
  2. Если число введено, запись ЧЗНАЧ(ПРАВСИМВ(ЛЕВСИМВ(B2;НАЙТИ(«,»;B2)+1)) возвращает числовое значение первого символа после запятой и сравнивает полученное значение с числом 5.
  3. Если полученное значение больше 5, будет возвращен результат выполнения функции ЛЕВСИМВ(B2+1;НАЙТИ(«,»;B2)-1), то есть целой части числа +1 по правилам округления.
  4. Если <5, то будет возвращен результат работы функции ЛЕВСИМВ(B2;НАЙТИ(«,»;B2)-1)), то есть просто целая часть исходного числа.

Примечание: данный алгоритм нельзя назвать гибким и он имеет некоторые недостатки (например, не учтен вариант ввода сразу целого числа). Он приведен в качестве примера использования функции ЛЕВСИМВ. Для расчетов лучше использовать встроенную функцию ОКРГУГЛ и подобные ей.

Функция ЛЕВСИМВ в Excel и особенности ее использования

Функция ЛЕВСИМВ используется наряду с прочими функциями для работы с текстовыми строками в Excel (ПРАВСИМВ, СИМВОЛ, СЦЕПИТЬ, ДЛСТР и прочими) и имеет следующую синтаксическую запись:

=ЛЕВСИМВ(текст;[число_знаков])

Описание аргументов:

  • текст – ссылка на ячейку, содержащую текст, или текстовая строка, в которой требуется выделить требуемое количество символов слева. Аргумент обязателен для заполнения.
  • [число_знаков] – необязательный для заполнения аргумент; числовое значение, характеризующее количество символов, которые требуется выделить из текстовой строки.

Примечания 1:

  1. Если необязательный аргумента [число_знаков] явно не указан, по умолчанию будет возвращен первый символ строки. Например, функция =ЛЕВСИМВ(«текст») вернет значение «т».
  2. Числовое значение, переданное в качестве необязательного аргумента, должно быть взято из диапазона неотрицательных чисел, то есть должно быть равным нулю или больше нуля. В противном случае будет возвращен код ошибки #ЗНАЧ!.
  3. Если в качестве аргумента [число_знаков] будет переданы текстовые данные, функция ЛЕВСИМВ вернет код ошибки #ЗНАЧ!.
  4. Если число, переданное в качестве необязательного аргумента, превышает количество знаков в текстовой строке, рассматриваемая функция вернет весь текст целиком.
  5. Excel выполняет автоматическое преобразование типов данных там, где это возможно. Например, рассмотрим некоторые возможные варианты записи функции ЛЕВСИМВ и результаты ее выполнения:
  • ЛЕВСИМВ(«текст»;200%) вернет значение «те» (преобразование процентов в числовое значение);
  • при аргументах: («текст»;ИСТИНА) вернет «т» (логическое ИСТИНА эквивалентно числовому значению 1);
  • при аргументах: («текст»;ЛОЖЬ) вернет пустое значение «», поскольку логическое ЛОЖЬ эквивалентно числовому 0 (нуль);
  • при аргументах: («текст»;15/7) вернет значение «те».

Примечание 2: в Excel также существует схожая по принципу работы функция ЛЕВБ, возвращающая определенное количество символов текстовой строки слева на основе определенного количества байтов. Если по умолчанию используется язык с поддержкой двухбайтовой кодировки, для получения первого символа строки требуется в качестве аргумента указать число 2, а для получения последующих второго, третьего и прочих символов необходимо указывать соответствующие числа, кратные двум. Для языков с однобайтовой кодировкой функции ЛЕВСИМВ и ЛЕВБ возвращают идентичные результаты.

Содержание

  1. ЛЕВСИМВ, ЛЕВБ (функции ЛЕВСИМВ, ЛЕВБ)
  2. Описание
  3. Синтаксис
  4. Пример
  5. Основные текстовые функции в Excel ПСТР, ЛЕВСИМВ и ПРАВСИМВ
  6. Примеры основных текстовых функций в Excel с описанием
  7. Примеры использования функции ЛЕВСИМВ в Excel работа с текстом
  8. Как вырезать часть текста из строки функцией ЛЕВСИМВ в Excel?
  9. Как вытащить часть текста из ячейки в Excel используя функцию ЛЕВСИМВ?
  10. Округление чисел текстовыми функциями в текстовой строке
  11. Функция ЛЕВСИМВ в Excel и особенности ее использования
  12. Как отрезать (удалить) лишний текст слева или справа в ячейке «Эксель».
  13. Рассмотрим их применение.
  14. Как отрезать (удалить) лишний текст слева или справа в ячейке «Эксель».: 24 комментария

ЛЕВСИМВ, ЛЕВБ (функции ЛЕВСИМВ, ЛЕВБ)

В этой статье описаны синтаксис и использование функций ЛЕВСИМВ и ЛЕВБ в Microsoft Excel.

Описание

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

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

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

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

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

Синтаксис

Аргументы этих функций описаны ниже.

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

Количество_знаков Необязательный. Количество символов, извлекаемых функцией ЛЕВСИМВ.

«Количество_знаков» должно быть больше нуля или равно ему.

Если «количество_знаков» превышает длину текста, функция ЛЕВСИМВ возвращает весь текст.

Если значение «количество_знаков» опущено, оно считается равным 1.

Количество_байт Необязательный. Количество символов, извлекаемых функцией ЛЕВБ.

Пример

Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу Enter. При необходимости измените ширину столбцов, чтобы видеть все данные.

Источник

Основные текстовые функции в Excel ПСТР, ЛЕВСИМВ и ПРАВСИМВ

Одна из самых важных задач при редактировании текстовых строк в Excel – это отделение части строки для получения фрагмента текста.

Примеры основных текстовых функций в Excel с описанием

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

  • преобразование территориального кода в почтовый код;
  • удаление кода страны или кода оператора сотовой связи в номерах телефонов
  • выборка фрагмента кода сотрудника или должности из номера картотеки в базе данных кадрового отдела;
  • и похожие другие задачи…

Умение быстро решать подобного рода базовые задачи в Excel пригодиться каждому офисному сотруднику.

На рисунке примеров показано, как легко с помощью текстовых функций ЛЕВСИМВ, ПРАВСИМВ и ПСТР реализуются решения выше описанных задач:

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

  1. Текст – исходные данные. Поддерживает и другие типы значений кроме текстовых: число, логическое значение. Не поддерживает значение ошибок, а дату воспринимает как числовое значение.
  2. Количество_знаков – количество символов, взятых от начала, которые следует оставить в фрагменте текста при отделения его от строки. Другими словами, длина вырезанного фрагмента текста с левой стороны исходной строки.

В примере функция =ЛЕВСИМВ(A2 ;5) отделяет 5 первых чисел из текста в ячейке A2.

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

В данном примере с помощью текстовой функции ПРАВСИМВ отделяется правая часть номеров телефонов сотрудников фирмы. Это 9 последних знаков в конце: =ПРАВСИМВ(A6;9).

Следующая текстовая функция ПСТР более продвинутая. Она позволяет получить фрагмент текста из середины исходной строки. Функция ПСТР требует заполнить 3 аргумента:

  1. Текст – исходные данные (текстовое либо числовое значение).
  2. Начальная_позиция – порядковый номер символа от начала строки с которого следует начать отделение фрагмента текста.
  3. Количество_знаков – количество символов, взятых из середины текста в исходных данных.

В описанном примере функция =ПСТР(A10;4;1) – отделяет только одно числовое значение начинающиеся от 4-го символа с начала исходной строки.

Источник

Примеры использования функции ЛЕВСИМВ в Excel работа с текстом

Функция ЛЕВСИМВ в Excel используется для получения части текста и возвращает заданное количество символов текстовой строки, при этом отсчет символов начинается слева.

Как вырезать часть текста из строки функцией ЛЕВСИМВ в Excel?

Пример 1. В таблице Excel содержатся имена переменных вместе с текстом, определяющим их тип данных. Необходимо выделить только названия переменных и записать их в отдельный столбец.

Исходная таблица данных:

Для выделения первого символа, которым является искомое название переменной, используем формулу:

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

Как видно на рисунке с помощью функции ЛЕВСИМВ получилось вытащить левую часть текста из каждой ячейки по одному (первому) символу.

Как вытащить часть текста из ячейки в Excel используя функцию ЛЕВСИМВ?

Пример 2. В таблицу Excel подтягиваются данные из другого программного продукта. Одно из полей данных получило ошибку. Для обработки ошибки необходимо выделить ее код и описание из строки.

Выделим код ошибки с помощью следующей формулы:

  • ЛЕВСИМВ(B5;НАЙТИ(«3»;B5)+1) – функция, выделяющая часть текстовой строки слева, количество символов в которой соответствуют порядковому номеру символа «3» (функция НАЙТИ выполняет поиск порядкового номера этого символа и возвращает соответствующее значение). Единица (+1) добавлена для выделения всего кода ошибки.
  • 2 – количество символов, которые вернет функция ПРАВСИМВ, работающая аналогично рассматриваемой ЛЕВСИМВ (отличие – возвращает символы справа, а не слева строки).

В результате получим:

Выделим часть текста ошибки:

В данном случае удобнее использовать ПРАВСИМВ, которая является, по сути, зеркальным отражением ЛЕВСИМВ. Для определения второго аргумента используется запись ДЛСТР(B5)-НАЙТИ(«:»;B5)-1, определяющая позицию символа «u» в слове «unknown» (единица вычтена для удаления пробела).

В результате получим:

Округление чисел текстовыми функциями в текстовой строке

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

Форма для округления числовых значений имеет следующий вид:

В ячейке B3 введена следующая сложная формула:

=5,ЛЕВСИМВ(A2+1,НАЙТИ(«.»,A2)-1),ЛЕВСИМВ(A2,НАЙТИ(«.»,A2)-1)),»Число не введено»)’ >

  1. Первая функция ЕСЛИ проверяет с помощью формулы ЕПУСТО, заполнена ли ячейка, которая должна содержать значение, которое требуется округлить.
  2. Если число введено, запись ЧЗНАЧ(ПРАВСИМВ(ЛЕВСИМВ(B2;НАЙТИ(«,»;B2)+1)) возвращает числовое значение первого символа после запятой и сравнивает полученное значение с числом 5.
  3. Если полученное значение больше 5, будет возвращен результат выполнения функции ЛЕВСИМВ(B2+1;НАЙТИ(«,»;B2)-1), то есть целой части числа +1 по правилам округления.
  4. Если Примечание: данный алгоритм нельзя назвать гибким и он имеет некоторые недостатки (например, не учтен вариант ввода сразу целого числа). Он приведен в качестве примера использования функции ЛЕВСИМВ. Для расчетов лучше использовать встроенную функцию ОКРГУГЛ и подобные ей.

Функция ЛЕВСИМВ в Excel и особенности ее использования

Функция ЛЕВСИМВ используется наряду с прочими функциями для работы с текстовыми строками в Excel (ПРАВСИМВ, СИМВОЛ, СЦЕПИТЬ, ДЛСТР и прочими) и имеет следующую синтаксическую запись:

  • текст – ссылка на ячейку, содержащую текст, или текстовая строка, в которой требуется выделить требуемое количество символов слева. Аргумент обязателен для заполнения.
  • [число_знаков] – необязательный для заполнения аргумент; числовое значение, характеризующее количество символов, которые требуется выделить из текстовой строки.
  1. Если необязательный аргумента [число_знаков] явно не указан, по умолчанию будет возвращен первый символ строки. Например, функция =ЛЕВСИМВ(«текст») вернет значение «т».
  2. Числовое значение, переданное в качестве необязательного аргумента, должно быть взято из диапазона неотрицательных чисел, то есть должно быть равным нулю или больше нуля. В противном случае будет возвращен код ошибки #ЗНАЧ!.
  3. Если в качестве аргумента [число_знаков] будет переданы текстовые данные, функция ЛЕВСИМВ вернет код ошибки #ЗНАЧ!.
  4. Если число, переданное в качестве необязательного аргумента, превышает количество знаков в текстовой строке, рассматриваемая функция вернет весь текст целиком.
  5. Excel выполняет автоматическое преобразование типов данных там, где это возможно. Например, рассмотрим некоторые возможные варианты записи функции ЛЕВСИМВ и результаты ее выполнения:
  • ЛЕВСИМВ(«текст»;200%) вернет значение «те» (преобразование процентов в числовое значение);
  • при аргументах: («текст»;ИСТИНА) вернет «т» (логическое ИСТИНА эквивалентно числовому значению 1);
  • при аргументах: («текст»;ЛОЖЬ) вернет пустое значение «», поскольку логическое ЛОЖЬ эквивалентно числовому 0 (нуль);
  • при аргументах: («текст»;15/7) вернет значение «те».

Примечание 2: в Excel также существует схожая по принципу работы функция ЛЕВБ, возвращающая определенное количество символов текстовой строки слева на основе определенного количества байтов. Если по умолчанию используется язык с поддержкой двухбайтовой кодировки, для получения первого символа строки требуется в качестве аргумента указать число 2, а для получения последующих второго, третьего и прочих символов необходимо указывать соответствующие числа, кратные двум. Для языков с однобайтовой кодировкой функции ЛЕВСИМВ и ЛЕВБ возвращают идентичные результаты.

Источник

Как отрезать (удалить) лишний текст слева или справа в ячейке «Эксель».

Бывают ситуации, когда необходимо отрезать/ удалить строго определенное количество символов в тексте справа или слева. Например, когда вы имеете список адресов, и вначале каждого адреса стоит шестизначный индекс. Нужно убрать почтовые индексы из списка, но через замену их не уберешь, так как они имеют совершенно разные значения и не находятся опцией замены.

Функции, которая отрезает лишнее количество символов в ячейке, найти не удается, но существует система из двух функций, которые можно применить. Это система из функции ЛЕВСИМВ (или ПРАВСИМВ) и функции ДЛСТР (длина строки).

Рассмотрим их применение.

Вначале находим количество символов в тексте при помощи функции ДЛСТР. Для этого запускаем менеджер функций, выбираем ДЛСТР, указываем ячейку с текстом. Функция ДЛСТР посчитает количество символов.

Зная длину лишнего текста — 6 знаков в индексе, вычитаем их из общего числа символов посчитанных функцией ДЛСТР и получаем то количество символов, которое должно остаться в тексте, когда удалим индекс.

Полученное значение – количество оставляемых в тексте знаков, вписываем в функцию ЛЕВСИМВ или ПРАВСИМВ. Если нужно удалить знаки справа, то используем ЛЕВСИМВ, если слева, то ПРАВСИМВ. Нажимаем «Enter». Функция ЛЕВСИМВ или ПРАВСИМВ присваивает ячейке нужное нам количество символов из текста в новую ячейку, исключая ненужный нам индекс.

Для уменьшения количества ячеек с расчетами эти функции можно записать в систему следующего вида:

ПРАВСИМВ(…*¹;(ДЛСТР(…*¹)-6)).

Где …*¹- адрес ячейки, из которой берем текст.

Как отрезать (удалить) лишний текст слева или справа в ячейке «Эксель».: 24 комментария

Отличная статья. Помогла отнять лишние знаки из диапазона значений с различной длинной текста.
Например: у меня были значения «100.00» «95.00» 15.00″ «5.00» и т.д.
Решил вопрос формулой: =ЛЕВСИМВ(A1;(ДЛСТР(A1)-3))

готовая формула только подставить строки и кол-во символов)
спасибо!

Нужна помощь. Как удалить в каждой строчке все символы ПОСЛЕ указанного знака/знаков?

Добрый день. По аналогии с удалением слов описанном в статье «Копировать, убрать/удалить первое слово или несколько первых слов в ячейке Excel » только вместо пробелов подставить знак(и), о котором вы писали. ссылка — http://ruexcel.ru/slova/

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

Здравствуйте!
Есть колонка в Екселе с текстовыми значениями типа 00001, 00001А, 00624/1, 00682А, 01082А, 00240-1 и т.п. Требуется во всех значениях убрать впереди все нули. Но только впереди. Не подскажете, как это сделать? Спасибо.

Добрый день!
Большая таблица, в одном из столбцов указаны даты: 1995, 2006г., 1915, 1934г., 1946г., 2017, 2015 и т.д. Как убрать после цифр года символ «г.» во всех ячейках столбца, чтобы остались одни цифры года автоматически?
Благодарю заранее.

Добрый день.
Выделите ячейки, в которых нужно убрать лишние символы.
Нажмите ctrl+H
В поле «Найти:» введите «г.», в поле «Заменить…» не вводите ничего.
Нажмите «заменить все»

большое спасибо. очень помогли! Просто и быстро)

Здравствуйте!
Есть колонка в Excel с текстовыми значениями типа 38/18, 35/35, 32/25 и т.п. Требуется во всех значениях убрать впереди цифры и дробь. Точно также, только убрать сзади. Не подскажете, как это сделать? Спасибо.

Добрый день.
Если текст в ячейке H3, то:
=ЛЕВСИМВ(H3; (ПОИСК(«/»;H3)-1))
или
=ПРАВСИМВ(H3;(ДЛСТР(H3)-ПОИСК(«/»;H3)))
зависит от того, какую часть текста (левую или правую) нужно оставить в ячейке.

Здравствуйте. Подскажите, как из строки формата:
Вмк. У240кв. 20-70. 30м3. #39720. 15.40
поместить в отдельную ячейку цифру после символа #.

=ПРАВСИМВ(B2073;(ДЛСТР(B2073)-ПОИСК(«#»;B2073))), где B2073 — ячейка содержащая «Вмк. У240кв. 20-70. 30м3. #39720. 15.40»

Добрый день! Подскажите как текст в одной ячейке: Иванов Иван Иванович разбить на три ячейки: 1. Иванов 2. Иван 3. Иванович

Добрый день, подскажите, пожалуйста, как сократить количество текста в ячейках столбца на 15% с сохранением логического смысла?

Здравствуйте! У меня в столбике, в каждой строке, к примеру, по 15 символов (к примеру, 20.01.2020 17.45) а нужно сократить до 10 (чтобы осталась только дата) , но не в соседний столбец перенеся, как подразумевает функция ЛЕВСИМВ, а просто сократить в том же, не подскажете, как это сделать?

Здравствуйте!
Есть столбец в Екселе со значениями типа 000010531, 000401325, 002000045, 000104573, т.п. Количество нулей разное. Требуется во всех значениях убрать спереди все нули, но только впереди. Не подскажете, как это сделать? Спасибо.

Источник

  • Что делает ЛЕВСИМВ?
  • Синтаксис
  • Форматирование
  • Примеры
    • Пример 1 – извлечь первое слово
    • Пример 2 – извлечь кроме последнего символа
    • Пример 3 – извлечь текст до первой цифры (формула массива)
ЛЕВСИМВ - простейшие примеры
Примеры использования функции ЛЕВСИМВ
Раздел функций Текстовые
Название на английском LEFT
Волатильность Не волатильная
Похожие функции ПРАВСИМВ, ПСТР

Что делает ЛЕВСИМВ?

Возвращает первые N символов текста слева.

Синтаксис

=ЛЕВСИМВ(Текст;[Количество Символов])

Второй аргумент, число символов для извлечения, опционален и по умолчанию (если его не указывать) равен 1, т.е. результатом формулы будет первый символ.

Если второй аргумент равен или превышает длину строки, возвращается весь исходный текст ячейки.

Если он равен нулю – возвращается пустая строка.

Если указывается отрицательное число, возвращается ошибка #ЗНАЧ.

Форматирование

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

Поэтому для корректного текстового извлечения части символов из дат в числовом формате может понадобиться функция ТЕКСТ (см. пример на картинке выше).

Примеры

Рассмотрим примеры использования функции ЛЕВСИМВ на практике.

Пример 1 – извлечь первое слово

В этом простейшем примере извлекаем первое слово в ячейке с помощью комбинации функций ЛЕВСИМВ и НАЙТИ.

Определяем номер позиции первого пробела и возвращаем символы до этой позиции

Таблица выше была использована для извлечения имени из строки с именем и фамилией. Функция НАЙТИ используется для определения положения пробела между именем и фамилией. Следовательно, длина имени – это позиция пробела минус один символ.
Функция ЛЕВСИМВ извлекает имя на основе его длины.

А как извлечь фамилию (второе слово)? Ответ на этот вопрос смотрите в описании функции ПРАВСИМВ.

Пример 2 – извлечь кроме последнего символа

В комбинации ЛЕВСИМВ с функцией ДЛСТР извлекаем из строк переменной длины все, кроме последнего знака.

Вычисляем длину строки, вычитаем из нее 1 и возвращаем соответствующее количество символов функцией ЛЕВСИМВ

Пример 3 – извлечь текст до первой цифры (формула массива)

В каталоге освещения название коллекции всегда представлено текстовым обозначением. Артикул конкретного товара при этом всегда начинается с цифр. Задача – извлечь из названия конкретного товара его коллекцию без артикула.

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

Формула заимствует механику из первого примера, но является формулой массива и выглядит следующим образом:

Так будет выглядеть формула для ячейки A1.

=ЛЕВСИМВ(A1,МИН(ЕСЛИОШИБКА(ПОИСК({0:9:8:7:6:5:4:3:2:1},A1),1000))-2)

При этом вводится сочетанием Ctrl + Shift + Enter как любая формула массива.

Как работает формула:

  1. Функция ПОИСК ищет одновременно 10 цифр, перечисленных в массиве, и возвращает массив позиций
  2. Поскольку часть цифр при поиске возвращают ошибку, используется функция ЕСЛИОШИБКА, чтобы для таких значений вернуть заведомо наибольшее число (в данном случае 1000)
  3. Функция МИН возвращает наименьшее из чисел – это и будет позиция первой цифры в строке
  4. Поскольку перед цифрами также всегда присутствует пробел, вычитается 2 символа, а не 1. Можно перестраховаться на случай отсутствия пробелов – оставить 1 и убрать пробелы функцией СЖПРОБЕЛЫ.
  5. Функция ЛЕВСИМВ возвращает текст до вычисленной таким образом позиции последнего знака, идущего перед первой цифрой и пробелом перед ней.

Понравилась статья? Поддержите ее автора!
Набор инструментов !SEMTools поможет решить множество задач без ввода сложных формул и сэкономит ваше время. И вам полезно, и автору приятно!

Бывают ситуации, когда необходимо отрезать/ удалить строго определенное количество символов в тексте справа или слева. Например, когда вы имеете список адресов, и вначале каждого адреса стоит шестизначный индекс.  Нужно убрать почтовые индексы из списка, но через замену их не уберешь, так как они имеют совершенно разные значения и не находятся опцией замены.

Удаление текста справа или слеваФункции, которая отрезает лишнее количество символов в ячейке, найти не удается, но существует система из двух функций, которые можно применить. Это система из функции ЛЕВСИМВ (или ПРАВСИМВ) и функции ДЛСТР (длина строки).

Рассмотрим их применение.

    Вначале находим количество символов в тексте при помощи функции ДЛСТР. Для этого запускаем менеджер функций, выбираем ДЛСТР, указываем ячейку с текстом. Функция ДЛСТР посчитает количество символов.

    Зная длину лишнего текста — 6 знаков в индексе, вычитаем их из общего числа символов посчитанных функцией ДЛСТР и получаем то количество символов, которое должно остаться в тексте, когда удалим индекс.

    Полученное значение – количество оставляемых в тексте знаков, вписываем в функцию ЛЕВСИМВ или ПРАВСИМВ. Если нужно удалить знаки справа, то используем ЛЕВСИМВ, если слева, то ПРАВСИМВ. Нажимаем «Enter». Функция ЛЕВСИМВ или ПРАВСИМВ присваивает ячейке нужное нам количество символов из текста в новую ячейку, исключая ненужный нам индекс.

    Для уменьшения количества ячеек с расчетами эти функции можно записать в систему следующего вида:

    ПРАВСИМВ(…*¹;(ДЛСТР(…*¹)-6)).

    Где …*¹- адрес ячейки, из которой берем текст.

    На чтение 1 мин

    Функция ЛЕВСИМВ (LEFT) используется в Excel для извлечения текста из строки с левой стороны.

    Содержание

    1. Что возвращает функция
    2. Синтаксис
    3. Аргументы функции
    4. Дополнительная информация
    5. Примеры использования функции ЛЕВСИМВ в Excel

    Что возвращает функция

    Возвращает заданное количество символов из текстовой строки, начиная отсчет слева.

    Telegram Logo Больше лайфхаков в нашем Telegram Подписаться

    Синтаксис

    =LEFT(text, [num_chars]) — английская версия

    =ЛЕВСИМВ(текст;[число_знаков]) — русская версия

    Аргументы функции

    • text (текст) — текстовая строка из которой вы хотите извлечь необходимое количество букв;
    • [num_chars] ([число_знаков]) — (не обязательно) количество букв, которое вы хотите извлечь из заданной текстовой строки. Если этот аргумент оставить пустым, то функция по умолчанию извлечет один символ.

    Дополнительная информация

    • Аргумент num_chars (число_знаков) должен быть больше или равен нулю;
    • Если аргумент num_chars (число_знаков) больше чем длина всей текстовой строки, из которой вы хотите извлечь данные, то функция вернет текстовую строку целиком;
    • Пробелы считаются за символы;
    • Для того чтобы убрать лишние пробелы из строки — используйте функцию СЖПРОБЕЛЫ;
    • Функция также работает не только с текстом, но и с числовыми значениями, указанными в текстовом формате.

    Примеры использования функции ЛЕВСИМВ в Excel

    Функция ЛЕВСИМВ в Excel

    ЛЕВСИМВ, ЛЕВБ (функции ЛЕВСИМВ, ЛЕВБ)

    В этой статье описаны синтаксис формулы и использование функций ЛЕВСИМВ и ЛЕВБ в Microsoft Excel.

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

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

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

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

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

    Аргументы этих функций описаны ниже.

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

    Число_знаков Необязательный. Количество символов, извлекаемых функцией ЛЕВСИМВ.

    «Число_знаков» должно быть больше нуля или равно ему.

    Если «число_знаков» превышает длину текста, функция ЛЕВСИМВ возвращает весь текст.

    Если значение «число_знаков» опущено, оно считается равным 1.

    Число_байтов Необязательный. Количество символов, извлекаемых функцией ЛЕВБ.

    Пример 1: ЛЕВСИМВ

    Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.

    Как отрезать (удалить) лишний текст слева или справа в ячейке «Эксель».

    Бывают ситуации, когда необходимо отрезать/ удалить строго определенное количество символов в тексте справа или слева. Например, когда вы имеете список адресов, и вначале каждого адреса стоит шестизначный индекс. Нужно убрать почтовые индексы из списка, но через замену их не уберешь, так как они имеют совершенно разные значения и не находятся опцией замены.

    Функции, которая отрезает лишнее количество символов в ячейке, найти не удается, но существует система из двух функций, которые можно применить. Это система из функции ЛЕВСИМВ (или ПРАВСИМВ) и функции ДЛСТР (длина строки).

    Рассмотрим их применение.

    Вначале находим количество символов в тексте при помощи функции ДЛСТР. Для этого запускаем менеджер функций, выбираем ДЛСТР, указываем ячейку с текстом. Функция ДЛСТР посчитает количество символов.

    Зная длину лишнего текста — 6 знаков в индексе, вычитаем их из общего числа символов посчитанных функцией ДЛСТР и получаем то количество символов, которое должно остаться в тексте, когда удалим индекс.

    Полученное значение – количество оставляемых в тексте знаков, вписываем в функцию ЛЕВСИМВ или ПРАВСИМВ. Если нужно удалить знаки справа, то используем ЛЕВСИМВ, если слева, то ПРАВСИМВ. Нажимаем «Enter». Функция ЛЕВСИМВ или ПРАВСИМВ присваивает ячейке нужное нам количество символов из текста в новую ячейку, исключая ненужный нам индекс.

    Для уменьшения количества ячеек с расчетами эти функции можно записать в систему следующего вида:

    ПРАВСИМВ(…*¹;(ДЛСТР(…*¹)-6)).

    Где …*¹- адрес ячейки, из которой берем текст.

    Трансформация первой буквы из строчной в заглавную в Microsoft Excel

    Во многих случаях требуется, чтобы первая буква в ячейке таблицы была заглавной (прописной). Если пользователь изначально ошибочно везде вписал строчные буквы или скопировал в Excel данные из другого источника, в котором все слова начинались с маленькой буквы, то можно потратить очень большое количество сил и времени, чтобы привести внешний вид таблицы в желаемое состояние. Но, возможно у Эксель имеются специальные инструменты, с помощью которых можно эту процедуру автоматизировать? Действительно, у программы есть функция для изменения строчных букв на прописные. Давайте рассмотрим, как она работает.

    Процедура трансформации первой буквы в заглавную

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

    Способ 1: замена первой буквы в ячейке на заглавную

    Для решения поставленной задачи используется основная функция ЗАМЕНИТЬ, а также вложенные функции первого и второго порядка ПРОПИСН и ЛЕВСИМВ.

    • Функция ЗАМЕНИТЬ осуществляет замену одного символа или части строки на другие, согласно указанным аргументам;
    • ПРОПИСН – делает буквы прописными, то есть, заглавными, что нам и требуется;
    • ЛЕВСИМВ – возвращает указанное количество знаков конкретного текста в ячейке.

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

    Общий шаблон данной операции будет выглядеть следующим образом:

    Но лучше все это рассмотреть на конкретном примере. Итак, мы имеем заполненную таблицу, в которой все слова пишутся с маленькой буквы. Нам предстоит первый символ в каждой ячейке с фамилиями сделать заглавным. Первая ячейка с фамилией имеет координаты B4.

      В любом свободном месте данного листа или на другом листе записываем следующую формулу:

    Чтобы произвести обработку данных и увидеть результат, жмем кнопку Enter на клавиатуре. Как видим, теперь в ячейке первое слово начинается с прописной буквы.

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

    После этого, выделяем исходные ячейки с фамилиями в таблице. Вызываем контекстное меню кликом правой кнопки мыши. В блоке «Параметры вставки» выбираем пункт «Значения», который представлен в виде иконки с цифрами.

    Как видим, после этого нужные нам данные были вставлены в исходные позиции таблицы. При этом, строчные буквы в первых словах ячеек были заменены на прописные. Теперь, чтобы не портить внешний вид листа, нужно удалить ячейки с формулами. Особенно важно удаление провести, если вы выполняли преобразование на одном листе. Выделяем указанный диапазон, кликаем правой кнопкой мыши и в контекстном меню останавливаем выбор на пункте «Удалить…».

  • В появившемся небольшом диалоговом окне устанавливаем переключатель в позицию «Строку». Жмем на кнопку «OK».
  • После этого, лишние данные будут очищены, и мы получим тот результат, который добивались: в каждой ячейке таблицы первое слово начинается с большой буквы.

    Способ 2: каждое слово с большой буквы

    Но бывают случаи, когда нужно сделать не только первое слово в ячейке, начинающимся с заглавной буквы, а вообще, каждое слово. Для этого тоже существует отдельная функция, причем, она намного проще предыдущей. Эта функция называется ПРОПНАЧ. Её синтаксис очень простой:

    На нашем примере её применение будет выглядеть следующим образом.

      Выделяем свободную область листа. Кликаем по значку «Вставить функцию».

    В открывшемся Мастере функций ищем «ПРОПНАЧ». Найдя это наименование, выделяем его и жмем на кнопку «OK».

    Открывается окно аргументов. Ставим курсор в поле «Текст». Выделяем первую ячейку с фамилией в исходной таблице. После того, как её адрес попал в поле окна аргументов, жмем на кнопку «OK».

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

    Потом нужно будет нажать кнопку Enter.

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

    После этого копируем результат при помощи контекстного меню.

    Вставляем данные через пункт «Значения» параметры вставки в исходную таблицу.

    Удаляем промежуточные значения через контекстное меню.

  • В новом окне подтверждаем удаление строк, путем установки переключателя в соответствующее положение. Жмем кнопку «OK».
  • После этого мы получим практически неизменную исходную таблицу, но только все слова в обработанных ячейках теперь будут прописаны с большой буквы.

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

    Отблагодарите автора, поделитесь статьей в социальных сетях.

    Как извлечь часть текста в Эксель

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

    Для получения части текста, в Эксель есть 3 функции:

    1. ЛЕВСИМВ(Строка; Количество_символов) – выводит заданное количество символов с левого края. Например, =ЛЕВСИМВ(А1;10) выведет 10 первых символов строки в ячейке А1 . Функция имеет 2 обязательных аргумента – Строка-источник и количество выводимых символов;

    Функция ЛЕВСИМВ в Эксель

    1. ПРАВСИМВ(Строка; Количество_символов) – функция схожа с предыдущей, она выводит заданное количество символов справа. То есть, =ПРАВСИМВ(А1;10) в результате выдаст 10 последних символов из строки А1 .

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

    1. ПСТР(Строка; Начальный_символ; Количество символов) – выбирает из текста нужное количество знаков, начиная с заданного. Например, =ПСТР(А1;5;3) выведет 3 символа начиная с 5-го (5-7 символы строки).

    Функция ПСТР в Эксель

    Все эти функции в подсчёте количества символов учитывают лишние пробелы, непечатаемые символы, поэтому рекомендую сначала очистить текст от лишних знаков.

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

    А следующий пост мы посвятим поиску нужного текста в строке. Заходите и читайте. Только хорошее владение функциями позволит вам эффективно выполнять задачи в Microsoft Excel!

    Если вы еще не прочли посты о написании формул и применении функций – обязательно это сделайте, без них изучение функций Excel будет сложнее и дольше!

    Примеры использования функции ЛЕВСИМВ в Excel работа с текстом

    Функция ЛЕВСИМВ в Excel используется для получения части текста и возвращает заданное количество символов текстовой строки, при этом отсчет символов начинается слева.

    Как вырезать часть текста из строки функцией ЛЕВСИМВ в Excel?

    Пример 1. В таблице Excel содержатся имена переменных вместе с текстом, определяющим их тип данных. Необходимо выделить только названия переменных и записать их в отдельный столбец.

    Исходная таблица данных:

    Для выделения первого символа, которым является искомое название переменной, используем формулу:

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

    Как видно на рисунке с помощью функции ЛЕВСИМВ получилось вытащить левую часть текста из каждой ячейки по одному (первому) символу.

    Как вытащить часть текста из ячейки в Excel используя функцию ЛЕВСИМВ?

    Пример 2. В таблицу Excel подтягиваются данные из другого программного продукта. Одно из полей данных получило ошибку. Для обработки ошибки необходимо выделить ее код и описание из строки.

    Выделим код ошибки с помощью следующей формулы:

    • ЛЕВСИМВ(B5;НАЙТИ(«3»;B5)+1) – функция, выделяющая часть текстовой строки слева, количество символов в которой соответствуют порядковому номеру символа «3» (функция НАЙТИ выполняет поиск порядкового номера этого символа и возвращает соответствующее значение). Единица (+1) добавлена для выделения всего кода ошибки.
    • 2 – количество символов, которые вернет функция ПРАВСИМВ, работающая аналогично рассматриваемой ЛЕВСИМВ (отличие – возвращает символы справа, а не слева строки).

    В результате получим:

    Выделим часть текста ошибки:

    В данном случае удобнее использовать ПРАВСИМВ, которая является, по сути, зеркальным отражением ЛЕВСИМВ. Для определения второго аргумента используется запись ДЛСТР(B5)-НАЙТИ(«:»;B5)-1, определяющая позицию символа «u» в слове «unknown» (единица вычтена для удаления пробела).

    В результате получим:

    Округление чисел текстовыми функциями в текстовой строке

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

    Форма для округления числовых значений имеет следующий вид:

    В ячейке B3 введена следующая сложная формула:

    =5,ЛЕВСИМВ(A2+1,НАЙТИ(«.»,A2)-1),ЛЕВСИМВ(A2,НАЙТИ(«.»,A2)-1)),»Число не введено»)’ class=’formula’>

    1. Первая функция ЕСЛИ проверяет с помощью формулы ЕПУСТО, заполнена ли ячейка, которая должна содержать значение, которое требуется округлить.
    2. Если число введено, запись ЧЗНАЧ(ПРАВСИМВ(ЛЕВСИМВ(B2;НАЙТИ(«,»;B2)+1)) возвращает числовое значение первого символа после запятой и сравнивает полученное значение с числом 5.
    3. Если полученное значение больше 5, будет возвращен результат выполнения функции ЛЕВСИМВ(B2+1;НАЙТИ(«,»;B2)-1), то есть целой части числа +1 по правилам округления.
    4. Если <5, то будет возвращен результат работы функции ЛЕВСИМВ(B2;НАЙТИ(«,»;B2)-1)), то есть просто целая часть исходного числа.

    Примечание: данный алгоритм нельзя назвать гибким и он имеет некоторые недостатки (например, не учтен вариант ввода сразу целого числа). Он приведен в качестве примера использования функции ЛЕВСИМВ. Для расчетов лучше использовать встроенную функцию ОКРГУГЛ и подобные ей.

    Функция ЛЕВСИМВ в Excel и особенности ее использования

    Функция ЛЕВСИМВ используется наряду с прочими функциями для работы с текстовыми строками в Excel (ПРАВСИМВ, СИМВОЛ, СЦЕПИТЬ, ДЛСТР и прочими) и имеет следующую синтаксическую запись:

    • текст – ссылка на ячейку, содержащую текст, или текстовая строка, в которой требуется выделить требуемое количество символов слева. Аргумент обязателен для заполнения.
    • [число_знаков] – необязательный для заполнения аргумент; числовое значение, характеризующее количество символов, которые требуется выделить из текстовой строки.
    1. Если необязательный аргумента [число_знаков] явно не указан, по умолчанию будет возвращен первый символ строки. Например, функция =ЛЕВСИМВ(«текст») вернет значение «т».
    2. Числовое значение, переданное в качестве необязательного аргумента, должно быть взято из диапазона неотрицательных чисел, то есть должно быть равным нулю или больше нуля. В противном случае будет возвращен код ошибки #ЗНАЧ!.
    3. Если в качестве аргумента [число_знаков] будет переданы текстовые данные, функция ЛЕВСИМВ вернет код ошибки #ЗНАЧ!.
    4. Если число, переданное в качестве необязательного аргумента, превышает количество знаков в текстовой строке, рассматриваемая функция вернет весь текст целиком.
    5. Excel выполняет автоматическое преобразование типов данных там, где это возможно. Например, рассмотрим некоторые возможные варианты записи функции ЛЕВСИМВ и результаты ее выполнения:
    • ЛЕВСИМВ(«текст»;200%) вернет значение «те» (преобразование процентов в числовое значение);
    • при аргументах: («текст»;ИСТИНА) вернет «т» (логическое ИСТИНА эквивалентно числовому значению 1);
    • при аргументах: («текст»;ЛОЖЬ) вернет пустое значение «», поскольку логическое ЛОЖЬ эквивалентно числовому 0 (нуль);
    • при аргументах: («текст»;15/7) вернет значение «те».

    Примечание 2: в Excel также существует схожая по принципу работы функция ЛЕВБ, возвращающая определенное количество символов текстовой строки слева на основе определенного количества байтов. Если по умолчанию используется язык с поддержкой двухбайтовой кодировки, для получения первого символа строки требуется в качестве аргумента указать число 2, а для получения последующих второго, третьего и прочих символов необходимо указывать соответствующие числа, кратные двум. Для языков с однобайтовой кодировкой функции ЛЕВСИМВ и ЛЕВБ возвращают идентичные результаты.

    На чтение 12 мин. Просмотров 18.2k.

    VBA Instr

    Функция VBA InStr является одной из наиболее часто используемых функций в VBA. Он используется для нахождения текста внутри строки и действительно отлично справляется с работой.

    Тем не менее, она часто используется, чтобы помочь извлечь часть строки, и эту задачу она выполняет плохо.

    Если вы обнаружили, что извлечение текста в VBA является болезненным процессом, тогда читайте дальше. Эта статья покажет вам более простой и лучший способ, используя три реальных примера!

    Содержание

    1. Краткое руководство к статье
    2. Краткая справка
    3. Введение
    4. Когда VBA InStr, Left, Right и Mid полезны
    5. Работа со строками различной длины
    6. Использование функции VBA InStr с Mid
    7. Функция Split
    8. Пример 1: Получение части имени файла
    9. Пример 2: диапазон IP-адресов
    10. Пример 3. Проверьте правильность имени файла
    11. Заключение

    Краткое руководство к статье

    В следующей таблице приведено краткое руководство к тому, что рассматривается в этой статье.

    Строка Тип Задача Как
    1234ABC334 Фиксированный размер Оставить слева 4 символа Left(s,4)
    1234ABC334 Фиксированный размер Оставить
    справа 3
    символа
    Right(s,3)
    1234ABC334 Фиксированный размер Оставить 5, 6, 7 символы Mid(s,5,3)
    «Иван
    Петрович
    Сидоров»
    Переменный
    размер
    Оставить имя Split(s,» «)(0)
    «Иван
    Петрович
    Сидоров»
    Переменный
    размер
    Оставить
    отчество
    Split(s,» «)(1)
    «Иван
    Петрович
    Сидоров»
    Переменный
    размер
    Оставить
    фамилию
    Split(s,» «)(2)
    «Иван
    Петрович
    Сидоров»
    Переменный
    размер
    Оставить
    фамилию
    Dim v As
    Variant
    v = Split(s, » «)
    lastname= v(UBound(v))

    Краткая справка

    Чтобы узнать больше об элементах, упомянутых в статье, перейдите по следующим ссылкам:

    • Если вы хотите узнать больше о функциях InStr или InStrRev, пожалуйста, прочитайте Поиск в строке.
    • Если вы хотите узнать больше о функциях Mid, Left или Right, посмотрите раздел Извлечение части строки.
    • Для получения дополнительной информации о функции Split проверьте Строка в массив, используя Split.
    • Оператор Like включен в Сравнение строк с шаблоном

    Я использую Debug.Print в моих примерах. Он печатает значения в Immediate Window, которое вы можете просмотреть, нажав Ctrl + G (или выберите View-> Immediate Window)

    Введение

    В этой статье я собираюсь показать вам лучший способ извлечения символов из строки, чем использование функции VBA InStr с Left, Right или Mid.

    Эта статья разбита следующим образом:

    • Раздел 1: Как извлечь из строк фиксированного размера.
    • Раздел 2: Как извлечь из строк переменного размера.
    • Раздел 3: Как извлечь из строки переменного размера, используя функцию Split.
    • Разделы с 4 по 6: некоторые примеры из реальной жизни.

    Когда VBA InStr, Left, Right и Mid полезны

    Если вы хотите проверить, содержит ли строка значение, InStr подходит для этой работы. Если вы хотите сделать простое извлечение, то отлично подойдут Left, Right и Mid.

    Использование InStr для проверки, содержит ли строка текст

    В следующем примере мы проверяем, содержит ли ФИО «Петрович». Если возвращаемое значение InStr больше нуля, то строка содержит значение, которое мы проверяем.

    ' Проверьте, содержит ли строка Петрович
        If InStr("Иван Петрович Сидоров", "Петрович") > 0 Then
            Debug.Print "Найдено"
        End If
    

    Извлечение с Left, Right и Mid

    Функция Left используется для получения символов слева от строки.
    Функция Right используется для получения символов справа от строки.
    Функция Mid используется для середины строки. Она такая же, как
    Left, за исключением того, что вы даете ему стартовую позицию.

    Sub IzvlechTekst()
    
        Dim s As String: s = "ABCD-7789.WXYZ"
    
        Debug.Print Left(s, 2) ' Печатает AB
        Debug.Print Left(s, 4) ' Печатает ABCD
    
        Debug.Print Right(s, 2) ' Печатает YZ
        Debug.Print Right(s, 4) ' Печатает WXYZ
    
        Debug.Print Mid(s, 1, 2) ' Печатает AB
        Debug.Print Mid(s, 6, 4) ' Печатает 7789
    
    End Sub
    

    VBA Left, Right and Mid

    Эти три функции работают нормально, если требуемый текст всегда одинакового размера и в одном и том же месте. Для других сценариев они требуют использования InStr, чтобы найти определенную позицию в строке. Это усложняет их использование.

    Используйте Left, Right или Mid, когда символы всегда будут в одной и той же позиции.

    Работа со строками различной длины

    Многие из строк, с которыми вы имеет дело, разной длины. Простой пример — когда у вас есть дело со списком имен. Длина строки и требуемая часть (например, имя) могут каждый раз отличаться. Например:

    Brooke Hilt
    Pamela Jurado
    Zack Kinzel
    Eddy Wormley
    Kaitlyn Rainer
    Jacque Trickett
    Kandra Stanbery
    Margo Hoppes
    Berenice Meier
    Garrett Hyre

    (Если вам нужен случайный список имен, попробуйте этот генератор случайных имен)

    Использование функции VBA InStr с Left

    В следующем примере мы собираемся получить имя из строки. В этой строке первое имя — это имя перед первым пробелом.

    Мы используем функцию VBA InStr, чтобы получить позицию первого пробела. Мы хотим получить все символы до пробела. Мы вычитаем одну из позиции, так как это дает нам позицию последней буквы имени.

    Sub PoluchitImya()
    
        Dim s As String, lPosition As Long
    
        s = "John Henry Smith"
        ' Печатает John
        lPosition = InStr(s, " ") - 1
        Debug.Print Left(s, lPosition)
    
        s = "Lorraine Huggard"
        ' Печатает Lorraine
        lPosition = InStr(s, " ") - 1
        Debug.Print Left(s, lPosition)
    
    End Sub
    

    Давайте посмотрим на первый пример в приведенном выше коде. Первый пробел находится в позиции 5. Мы вычтем 1, что дает нам позицию 4. Это позиция последней буквы John, т.е.

    VBA InStr and Left

    Затем мы даем 4 функции Left, и она возвращает первые четыре символа, например, «John»

    Мы можем выполнить ту же задачу в одной строке, передав возвращаемое значение из InStr в функцию Left.

     Dim s As String
        s = "John Henry Smith"
    
        ' Печатает John
        Debug.Print Left(s, InStr(s, " ") - 1)
    

    Использование функции VBA InStr с Right

    В этом примере мы получим последнее слово в строке, то есть Smith. Мы можем использовать функцию InStrRev. Это то же самое, что InStr, за исключением того, что поиск выполняется с конца строки.

    Важно отметить, что InStrRev дает нам позицию с начала строки. Поэтому нам нужно использовать его немного иначе, чем мы использовали InStr и Left.

    Sub PoluchitFamiliyu()
    
        Dim s As String: s = "John,Henry,Smith"
        Dim Position As Long, Length As Long
    
        Position = InStrRev(s, ",")
        Length = Len(s)
    
        ' Печатает Smith
        Debug.Print Right(s, Length - Position)
    
        ' Альтернативный метод. Печатает Smith - делает в одну строку
        Debug.Print Right(s, Len(s) - InStrRev(s, ","))
    
    End Sub
    

    Как работает приведенный выше пример:

    • Мы получаем позицию последнего пробела, используя InStrRev: 11
    • Мы получаем длину строки: 16.
    • Вычитаем позицию из длины: 16-11 = 5
    • Мы даем 5 функции Right и возвращаем Smith

    VBA Instr and Right

    Использование функции VBA InStr с Mid

    В следующем примере мы получим «Henry» из строки. Слово, которое мы ищем, находится между первым и вторым пробелом.

    Мы будем использовать функцию Mid здесь.

    Sub PoluchitVtoroeImya()
    
        Dim s As String: s = "John Henry Smith"
    
        Dim firstChar As Long, secondChar As Long
        Dim count As Long
    
        ' Найти пробел плюс 1. Результат 6
        firstChar = InStr(s, " ") + 1
        ' Найти 2-й пробел. Результат 11
        secondChar = InStr(firstChar, s, " ")
        ' Получить число символов. Результат 5
        count = secondChar - firstChar
    
        ' Печатает Henry
        Debug.Print Mid(s, firstChar, count)
    
    End Sub
    

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

    VBA Instr and Mid

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

    Функция Split

    Мы можем использовать функцию Split для выполнения приведенных выше примеров. Функция Split разбивает строку на массив. Тогда мы можем легко получить доступ к каждому элементу.

    Давайте попробуем те же три примера еще раз, и на этот раз мы будем использовать Split.

      Dim s As String: s = "John Henry Smith"
    
        Debug.Print Split(s, " ")(0) ' John
        Debug.Print Split(s, " ")(1) ' Henry
        Debug.Print Split(s, " ")(2) ' Smith
    

    Ого! Какая разница с использованием Split. Как это работает:

    1. Функция Split разбивает строку везде, где есть пробел.
    2. Каждый элемент помещается в массив, начиная с нуля.
    3. Используя номер местоположения, мы можем получить доступ к элементу массива.  

    В следующей таблице показано, как может выглядеть массив после использования Split.

    Примечание: первая позиция в массиве равна нулю. Наличие нулевых массивов является стандартным в языках программирования.

    0 1 2
    John Henry Smith

    В приведенном выше коде мы разделяем строку каждый раз, когда ее используем. Мы также можем разделить строку один раз и сохранить ее в переменной массива. Тогда мы можем получить к нему доступ, когда захотим.

    Sub SplitName()
        Dim s As String: s = "John Henry Smith"
        Dim arr() As String
        arr = Split(s, " ")
    
        Debug.Print arr(0) ' John
        Debug.Print arr(1) ' Henry
        Debug.Print arr(2) ' Smith
    End Sub
    

    Если вы хотите узнать больше о массивах, я написал о них целую статью под названием «Полное руководство по использованию массивов в Excel VBA».

    В следующих разделах мы рассмотрим примеры из реальной жизни. Вы увидите преимущество использования Split вместо функции InStr.

    Пожалуйста, не стесняйтесь попробовать это сами. Это отличный способ учиться, и вы можете повеселиться, пытаясь понять их (или, может быть, только у меня так!)

    Пример 1: Получение части имени файла

    Представьте, что мы хотим извлечь числа из следующих имен файлов

    «VB_23476_Val.xls»
    «VV_987_Val.txt»
    «VZZA_12223_Val.doc»

    Это похоже на пример, где мы получаем второй элемент. Чтобы получить значения здесь, мы используем подчеркивание (то есть «_»), чтобы разбить строку. Смотрите пример кода ниже:

    Sub PoluchitNomer()
    
        ' Печатает 23476
        Debug.Print Split("VB_23476_Val.xls", "_")(1)
        ' Печатает 987
        Debug.Print Split("VV_987_Val.txt", "_")(1)
        ' Печатает 12223
        Debug.Print Split("ABBZA_12223_Val.doc", "_")(1)
    
    End Sub
    

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

    Sub ChitatNomera()
    
        Dim c As Range
        For Each c In Range("A1:A3")
            ' Разделите каждый элемент по мере его прочтения
            Debug.Print Split(c, "_")(1)
        Next c
    
    End Sub
    

    Пример 2: диапазон IP-адресов

    Пример здесь взят из вопроса на веб-сайте StackOverflow.

    У пользователя есть строка с IP-адресом в формате «BE-ABCDDD-DDS 172.16.23.3».

    Он хочет, чтобы IP в диапазоне от 172,16 до 172,31 был действительным. Так например:

    • «BE-ABCDDD-DDS 172.16.23.3» действителен
    • «BE-ABCDDD-DDS 172.25.23.3» действителен
    • «BE-ABCDDED-DDS 172.14.23.3» не действителен
    • «BE-ABCDDDZZ-DDS 172.32.23.3» не действителен

    Вот как бы я это сделал. Сначала я разбил строку по периодам. Число, которое мы ищем, находится между первым и вторым периодом. Поэтому это второй пункт. Когда мы разделяем строку, она помещается на первую позицию в массиве (помните, что массив начинается с нулевой позиции).

    Полученный массив будет выглядеть так:

    0 1 2 3
    BE-ABCDDD-DDS 172 31 23 3

    Код ниже показывает, как это сделать.

    Sub IPAdd()
    
        ' Проверьте номер, чтобы проверить разные IP-адреса
        Dim s1 As String: s1 = "BE-ABCDDD-DDS 172.31.23.3"
    
        ' Разбить строку, используя символ точки
        Dim num As Long
        num = Split(s1, ".")(1)
    
        ' Проверьте правильность номера
        Debug.Print num >= 16 And num <= 31
    
    End Sub
    

    Пример 3. Проверьте правильность имени файла

    В этом последнем примере мы хотим проверить правильность имени файла. Есть три правила.

    1. Должно заканчиваться на .pdf
    2. Он должен содержать АА
    3. Он должен содержать 1234 после А

    В следующих таблицах показаны некоторые допустимые и недействительные элементы:

    Имя файла Статус
    AA1234.pdf Действителен
    AA_ljgslf_1234.pdf Действителен
    AA1234.pdf1 Недействительно — не заканчивается на .pdf
    1234 AA.pdf Недействительно — АА не до 1234
    12_AA_1234_NM.pdf Действителен

    Сначала мы сделаем это, используя функции InStr и Right.

    Sub IspInstr()
    
        Dim f As String: f = "AA_1234_(5).pdf"
    
        ' Сначала найдите АА, так как 1234 должен идти после
        Dim lPos As Long: lPos = InStr(f, "AA")
        ' Ищите 1234 и убедитесь, что последние четыре символа - .pdf
        Debug.Print InStr(lPos, f, "1234") > 0 And Right(f, 4) = ".pdf"
    
    End Sub
    

    Этот код очень грязный. К счастью для нас, у VBA есть Сравнение с шаблоном. Мы можем проверить шаблон строки без необходимости искать элементы и позиции и т.д. Мы используем оператор Like в VBA для сопоставления с шаблоном. Пример ниже показывает, как это сделать.

    Sub IspSravnenie()
    
        Dim f As String: f = "AA_1234_(5).pdf"
    
        ' Определить шаблон
        Dim pattern As String: pattern = "*AA*1234*.pdf"
        ' Проверьте каждый элемент по шаблону
        Debug.Print f Like pattern   ' ИСТИНА
    
    End Sub
    

    В приведенном выше примере звездочка в шаблоне относится к любому количеству символов.

    Давайте разберем этот паттерн * AA * 1234 * .pdf

    *- любая группа символов
    AA — точные символы AА

    *- любая группа символов
    1234 — точные символы 1234

    *- любая группа символов
    .pdf — точные символы .pdf

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

    Sub IspSravnenieTest()
    
        ' Создать коллекцию имен файлов
        Dim coll As New Collection
        coll.Add "AA1234.pdf"
        coll.Add "AA_ljgslf_1234.pdf"
        coll.Add "AA1234.pdf1"
        coll.Add "1234 AA.pdf"
        coll.Add "12_AA_1234_NM.pdf"
    
        ' Определить шаблон
        Dim pattern As String: pattern = "*AA*1234*.pdf"
    
        ' Проверьте каждый элемент по шаблону
        Dim f As Variant
        For Each f In coll
            Debug.Print f Like pattern
        Next f
    
    End Sub
    

    На выходе:

    ИСТИНА
    ИСТИНА
    ЛОЖЬ
    ЛОЖЬ
    ИСТИНА

    Чтобы узнать больше о сопоставлении с шаблоном и ключевом слове Like, ознакомьтесь с этой публикацией.

    Заключение

    InStr и InStrRev действительно полезны только для простых задач, таких как проверка наличия текста в строке.

    Left, Right и Mid полезны, когда положение текста всегда одинаково.

    Функция Split — лучший способ извлечь переменную строку.

    При попытке проверить формат строки, которая не является фиксированной по размеру, ключевое слово Like (т.е. Сопоставление с образцом) обычно обеспечивает более простое решение.

    Понравилась статья? Поделить с друзьями:
  • Excel открывает расширение ods
  • Excel оставить последние цифры
  • Excel открывает пустую страницу
  • Excel оставить первую букву в ячейке
  • Excel открывает последние открытые документы