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 Еще…Меньше
Чтобы просмотреть более подробные сведения о функции, щелкните ее название в первом столбце.
Примечание: Маркер версии обозначает версию Excel, в которой она впервые появилась. В более ранних версиях эта функция отсутствует. Например, маркер версии 2013 означает, что данная функция доступна в выпуске Excel 2013 и всех последующих версиях.
Функция |
Описание |
---|---|
Функция МАССИВВТЕКСТ |
Возвращает массив текстовых значений из любого указанного диапазона |
ASC |
Для языков с двухбайтовыми наборами знаков (например, катакана) преобразует полноширинные (двухбайтовые) знаки в полуширинные (однобайтовые). |
БАТТЕКСТ |
Преобразует число в текст, используя денежный формат ß (БАТ). |
СИМВОЛ |
Возвращает символ с заданным кодом. |
ПЕЧСИМВ |
Удаляет из текста все непечатаемые символы. |
КОДСИМВ |
Возвращает числовой код первого знака в текстовой строке. |
СЦЕП |
Объединяет текст из нескольких диапазонов или строк, но не добавляет разделитель или аргументы IgnoreEmpty. |
СЦЕПИТЬ |
Объединяет несколько текстовых элементов в один. |
DBCS |
Для языков с двухбайтовыми наборами знаков (например, катакана) преобразует полуширинные (однобайтовые) знаки в текстовой строке в полноширинные (двухбайтовые). |
РУБЛЬ |
Преобразует число в текст, используя денежный формат рубля. |
СОВПАД |
Проверяет идентичность двух текстовых значений. |
НАЙТИ, НАЙТИБ |
Ищет вхождения одного текстового значения в другом (с учетом регистра). |
ФИКСИРОВАННЫЙ |
Форматирует число и преобразует его в текст с заданным числом десятичных знаков. |
ЛЕВСИМВ, ЛЕВБ |
Возвращают крайние слева знаки текстового значения. |
ДЛСТР, ДЛИНБ |
Возвращают количество знаков в текстовой строке. |
СТРОЧН |
Преобразует все буквы текста в строчные. |
ПСТР, ПСТРБ |
Возвращают заданное число знаков из строки текста, начиная с указанной позиции. |
ЧЗНАЧ |
Преобразует текст в число независимо от языкового стандарта. |
PHONETIC |
Извлекает фонетические (фуригана) знаки из текстовой строки. |
ПРОПНАЧ |
Преобразует первую букву в каждом слове текста в прописную. |
ЗАМЕНИТЬ, ЗАМЕНИТЬБ |
Заменяют знаки в тексте. |
ПОВТОР |
Повторяет текст заданное число раз. |
ПРАВСИМВ, ПРАВБ |
Возвращают крайние справа знаки текстовой строки. |
ПОИСК, ПОИСКБ |
Ищут вхождения одного текстового значения в другом (без учета регистра). |
ПОДСТАВИТЬ |
Заменяет в текстовой строке старый текст новым. |
Т |
Преобразует аргументы в текст. |
ТЕКСТ |
Форматирует число и преобразует его в текст. |
Функция TEXTAFTER |
Возвращает текст, который происходит после заданного символа или строки |
Функция TEXTBEFORE |
Возвращает текст, который встречается перед заданным символом или строкой |
Функция TEXTJOIN |
Объединяет текст из нескольких диапазонов и (или) строк |
Функция TEXTSPLIT |
Разделение текстовых строк с помощью разделителей столбцов и строк |
СЖПРОБЕЛЫ |
Удаляет из текста пробелы. |
ЮНИСИМВ |
Возвращает символ Юникод, на который ссылается заданное числовое значение. |
UNICODE |
Возвращает число (кодовую страницу), которая соответствует первому символу текста. |
ПРОПИСН |
Преобразует все буквы текста в прописные. |
ЗНАЧЕН |
Преобразует текстовый аргумент в число. |
Функция ЗНАЧЕНИЕВТЕКСТ |
Возвращает текст из любого указанного значения |
Важно: Вычисляемые результаты формул и некоторые функции листа Excel могут несколько отличаться на компьютерах под управлением Windows с архитектурой x86 или x86-64 и компьютерах под управлением Windows RT с архитектурой ARM. Подробнее об этих различиях.
См. также
Функции Excel (по категориям)
Функции Excel (по алфавиту)
Нужна дополнительная помощь?
Excel предлагает большое количество функций, с помощью которых можно обрабатывать текст. Область применения текстовых функций не ограничивается исключительно текстом, они также могут быть использованы с ячейками, содержащими числа. В рамках данного урока мы на примерах рассмотрим 15 наиболее распространенных функций Excel из категории Текстовые.
Содержание
- СЦЕПИТЬ
- СТРОЧН
- ПРОПИСН
- ПРОПНАЧ
- ДЛСТР
- ЛЕВСИМВ и ПРАВСИМВ
- ПСТР
- СОВПАД
- СЖПРОБЕЛЫ
- ПОВТОР
- НАЙТИ
- ПОИСК
- ПОДСТАВИТЬ
- ЗАМЕНИТЬ
СЦЕПИТЬ
Для объединения содержимого ячеек в Excel, наряду с оператором конкатенации, можно использовать текстовую функцию СЦЕПИТЬ. Она последовательно объединяет значения указанных ячеек в одной строке.
СТРОЧН
Если в Excel необходимо сделать все буквы строчными, т.е. преобразовать их в нижний регистр, на помощь придет текстовая функция СТРОЧН. Она не заменяет знаки, не являющиеся буквами.
ПРОПИСН
Текстовая функция ПРОПИСН делает все буквы прописными, т.е. преобразует их в верхний регистр. Так же, как и СТРОЧН, не заменяет знаки, не являющиеся буквами.
ПРОПНАЧ
Текстовая функция ПРОПНАЧ делает прописной первую букву каждого слова, а все остальные преобразует в строчные.
Каждая первая буква, которая следует за знаком, отличным от буквы, также преобразуется в верхний регистр.
ДЛСТР
В Excel Вы можете подсчитать количество знаков, содержащихся в текстовой строке, для этого воспользуйтесь функцией ДЛСТР. Пробелы учитываются.
ЛЕВСИМВ и ПРАВСИМВ
Текстовые функции ЛЕВСИМВ и ПРАВСИМВ возвращают заданное количество символов, начиная с начала или с конца строки. Пробел считается за символ.
ПСТР
Текстовая функция ПСТР возвращает заданное количество символов, начиная с указанной позиции. Пробел считается за символ.
СОВПАД
Функция СОВПАД позволяет сравнить две текстовые строки в Excel. Если они в точности совпадают, то возвращается значение ИСТИНА, в противном случае – ЛОЖЬ. Данная текстовая функция учитывает регистр, но игнорирует различие в форматировании.
Если регистр для Вас не играет большой роли (так бывает в большинстве случаев), то можно применить формулу, просто проверяющую равенство двух ячеек.
СЖПРОБЕЛЫ
Удаляет из текста все лишние пробелы, кроме одиночных между словами.
В случаях, когда наличие лишнего пробела в конце или начале строки сложно отследить, данная функция становится просто незаменимой. На рисунке ниже видно, что содержимое ячеек А1 и B1 абсолютно одинаково, но это не так. В ячейке А1 мы намеренно поставили лишний пробел в конце слова Excel. В итоге функция СОВПАД возвратила нам значение ЛОЖЬ.
Применив функцию СЖПРОБЕЛЫ к значению ячейки А1, мы удалим из него все лишние пробелы и получим корректный результат:
Функцию СЖПРОБЕЛЫ полезно применять к данным, которые импортируются в рабочие листы Excel из внешних источников. Такие данные очень часто содержат лишние пробелы и различные непечатаемые символы. Чтобы удалить все непечатаемые символы из текста, необходимо воспользоваться функцией ПЕЧСИМВ.
ПОВТОР
Функция ПОВТОР повторяет текстовую строку указанное количество раз. Строка задается как первый аргумент функции, а количество повторов как второй.
НАЙТИ
Текстовая функция НАЙТИ находит вхождение одной строки в другую и возвращает положение первого символа искомой фразы относительно начала текста.
Данная функция чувствительна к регистру…
… и может начинать просмотр текста с указанной позиции. На рисунке ниже формула начинает просмотр с четвертого символа, т.е. c буквы «r«. Но даже в этом случае положение символа считается относительно начала просматриваемого текста.
ПОИСК
Текстовая функция ПОИСК очень похожа на функцию НАЙТИ, основное их различие заключается в том, что ПОИСК не чувствительна к регистру.
ПОДСТАВИТЬ
Заменяет определенный текст или символ на требуемое значение. В Excel текстовую функцию ПОДСТАВИТЬ применяют, когда заранее известно какой текст необходимо заменить, а не его местоположение.
Приведенная ниже формула заменяет все вхождения слова «Excel» на «Word»:
Заменяет только первое вхождение слова «Excel»:
Удаляет все пробелы из текстовой строки:
ЗАМЕНИТЬ
Заменяет символы, расположенные в заранее известном месте строки, на требуемое значение. В Excel текстовую функцию ЗАМЕНИТЬ применяют, когда известно где располагается текст, при этом сам он не важен.
Формула в примере ниже заменяет 4 символа, расположенные, начиная с седьмой позиции, на значение «2013». Применительно к нашему примеру, формула заменит «2010» на «2013».
Заменяет первые пять символов текстовой строки, т.е. слово «Excel», на «Word».
Вот и все! Мы познакомились с 15-ю текстовыми функциями Microsoft Excel и посмотрели их действие на простых примерах. Надеюсь, что данный урок пришелся Вам как раз кстати, и Вы получили от него хотя бы малость полезной информации. Всего доброго и успехов в изучении Excel!
Оцените качество статьи. Нам важно ваше мнение:
Для удобства работы с текстом в Excel существуют текстовые функции. Они облегчают обработку сразу сотен строк. Рассмотрим некоторые из них на примерах.
Примеры функции ТЕКСТ в Excel
Преобразует числа в текст. Синтаксис: значение (числовое или ссылка на ячейку с формулой, дающей в результате число); формат (для отображения числа в виде текста).
Самая полезная возможность функции ТЕКСТ – форматирование числовых данных для объединения с текстовыми данными. Без использования функции Excel «не понимает», как показывать числа, и преобразует их в базовый формат.
Покажем на примере. Допустим, нужно объединить текст в строках и числовые значения:
Использование амперсанда без функции ТЕКСТ дает «неадекватный» результат:
Excel вернул порядковый номер для даты и общий формат вместо денежного. Чтобы избежать подобного результата, применяется функция ТЕКСТ. Она форматирует значения по заданию пользователя.
Формула «для даты» теперь выглядит так:
Второй аргумент функции – формат. Где брать строку формата? Щелкаем правой кнопкой мыши по ячейке со значением. Нажимаем «Формат ячеек». В открывшемся окне выбираем «все форматы». Копируем нужный в строке «Тип». Вставляем скопированное значение в формулу.
Приведем еще пример, где может быть полезна данная функция. Добавим нули в начале числа. Если ввести вручную, Excel их удалит. Поэтому введем формулу:
Если нужно вернуть прежние числовые значения (без нулей), то используем оператор «—»:
Обратите внимание, что значения теперь отображаются в числовом формате.
Функция разделения текста в Excel
Отдельные текстовые функции и их комбинации позволяют распределить слова из одной ячейки в отдельные ячейки:
- ЛЕВСИМВ (текст; кол-во знаков) – отображает заданное число знаков с начала ячейки;
- ПРАВСИМВ (текст; кол-во знаков) – возвращает заданное количество знаков с конца ячейки;
- ПОИСК (искомый текст; диапазон для поиска; начальная позиция) – показывает позицию первого появления искомого знака или строки при просмотре слева направо
При разделении текста в строке учитывается положение каждого знака. Пробелы показывают начало или конец искомого имени.
Распределим с помощью функций имя, фамилию и отчество в разные столбцы.
В первой строке есть только имя и фамилия, разделенные пробелом. Формула для извлечения имени: =ЛЕВСИМВ(A2;ПОИСК(» «;A2;1)). Для определения второго аргумента функции ЛЕВСИМВ – количества знаков – используется функция ПОИСК. Она находит пробел в ячейке А2, начиная слева.
Формула для извлечения фамилии:
С помощью функции ПОИСК Excel определяет количество знаков для функции ПРАВСИМВ. Функция ДЛСТР «считает» общую длину текста. Затем отнимается количество знаков до первого пробела (найденное ПОИСКом).
Вторая строка содержит имя, отчество и фамилию. Для имени используем такую же формулу:
Формула для извлечения фамилии несколько иная: Это пять знаков справа. Вложенные функции ПОИСК ищут второй и третий пробелы в строке. ПОИСК(» «;A3;1) находит первый пробел слева (перед отчеством). К найденному результату добавляем единицу (+1). Получаем ту позицию, с которой будем искать второй пробел.
Часть формулы – ПОИСК(» «;A3;ПОИСК(» «;A3;1)+1) – находит второй пробел. Это будет конечная позиция отчества.
Далее из общей длины строки отнимается количество знаков с начала строки до второго пробела. Результат – число символов справа, которые нужно вернуть.
Формула «для отчества» строится по тем же принципам:
Функция объединения текста в Excel
Для объединения значений из нескольких ячеек в одну строку используется оператор амперсанд (&) или функция СЦЕПИТЬ.
Например, значения расположены в разных столбцах (ячейках):
Ставим курсор в ячейку, где будут находиться объединенные три значения. Вводим равно. Выбираем первую ячейку с текстом и нажимаем на клавиатуре &. Затем – знак пробела, заключенный в кавычки (“ “). Снова — &. И так последовательно соединяем ячейки с текстом и пробелы.
Получаем в одной ячейке объединенные значения:
Использование функции СЦЕПИТЬ:
С помощью кавычек в формуле можно добавить в конечное выражение любой знак или текст.
Функция ПОИСК текста в Excel
Функция ПОИСК возвращает начальную позицию искомого текста (без учета регистра). Например:
Функция ПОИСК вернула позицию 10, т.к. слово «Захар» начинается с десятого символа в строке. Где это может пригодиться?
Функция ПОИСК определяет положение знака в текстовой строке. А функция ПСТР возвращает текстовые значения (см. пример выше). Либо можно заменить найденный текст посредством функции ЗАМЕНИТЬ.
Скачать пример функции для работы с текстом в Excel
Читайте так же: как перевести число и сумму прописью.
Синтаксис функции ПОИСК:
- «искомый текст» — что нужно найти;
- «просматриваемый текст» — где искать;
- «начальная позиция» — с какой позиции начинать искать (по умолчанию – 1).
Если нужно учитывать регистр, используется функция НАЙТИ.
Содержание статьи (кликните для открытия/закрытия)
- Текстовые функции Microsoft Excel
- Задача 1. Объединение текстовых строк
- Задача 2. Разделение текстовых строк
- Задача 3. Укорачивание текстовых строк
Все знают, что табличный процессор Microsoft Excel предназначен для обработки числовой информации. Его функционал позволяет обрабатывать большие объемы вычисляемых данных. А ведь с его помощью можно обработать и текст. Это могут быть фамилии, имена, отчества сотрудников, почтовые адреса и много другой текстовой информации, записанной в ячейки таблиц.
Различные сервисы интернета позволяют осуществлять импорт данных в формате электронных таблиц и не всегда эти данные удобны для дальнейшей обработки. А если требуется скорректировать текст на сотнях строк, то без текстовых функций не обойтись. В этой статье я предлагаю вам ознакомиться с текстовыми функциями в Excel и разобраться на примерах с их использованием.
Текстовые функции Microsoft Excel
Сначала рассмотрим основные текстовые функции, которые использованы в примерах ниже. Excel использует русские названия функций в отличие от своего ближайшего аналога LibreOffice.Calc. Ниже приведен формат записи текстовой функции и ее действие.
СЦЕПИТЬ(текст1;[текст2];…) — соединяет несколько текстовых строк из разных ячеек в одну.
ЛЕВСИМВ(текст;[число_знаков]) — выводит первый символ или заданное число первых символов из текстовой строки.
НАЙТИ(искомый_текст;просматриваемый_текст;[нач_позиция]) — находит позицию начала вхождения искомого текста в заданной текстовой строке с учетом регистра.
ПОИСК(искомый_текст;просматриваемый_текст;[начальная_позиция]) — тоже самое, как и Найти, но без учета регистра.
ПСТР(текст;начальная_позиция;число_знаков) — выводит заданное число символов из строки текста, начиная с указанной позиции.
ДЛСТР(текст) — считает количество знаков в текстовой строке.
Задача 1. Объединение текстовых строк
Есть список сотрудников. Фамилии, имена и отчества разнесены в отдельные столбцы. Необходимо объединить данные в один столбец.
Решение. Задача достаточно простая и для ее реализации воспользуемся функцией СЦЕПИТЬ.
В ячейку D1 запишем формулу =СЦЕПИТЬ(A1;» «;B1;» «;C1). Можно воспользоваться мастером функций.
Далее скопируем ее на весь необходимый диапазон столбца D.
Если в функции указать только адреса ячеек, то текст склеится в одну длинную строку. Поэтому добавляем пробел в кавычках между адресами ячеек.
Посмотрите на рисунок ниже. Результат преобразования в столбце D.
Задача 2. Разделение текстовых строк
После импорта данных сотрудников их фамилии, имена и отчества оказались в одном столбце. Необходимо разделить данные по столбцам.
Решение. Задача сложнее предыдущей и для ее реализации понадобится несколько текстовых функций.
Для отделения фамилии сотрудника и запишем в ячейку B1 формулу
=ЛЕВСИМВ(A1;НАЙТИ(» «;A1))
В этой формуле количество выводимых знаков подсчитывается функцией Найти, которая определяет местонахождение первого пробела в строке.
Для записи имени в ячейку C1 запишем следующую формулу
=ПСТР(A1;НАЙТИ(» «;A1)+1;ПОИСК(» «;A1;НАЙТИ(» «;A1)+1)-НАЙТИ(» «;A1)-1)
Если посмотреть на синтаксис записи данной функции, то получаем:
- Выражение НАЙТИ(» «;A1)+1 отвечает поиск позиции первого пробела в текстовой строке. А чтобы получить позицию первой буквы имени, прибавляется единица.
- Для определения количества символов в имени используется конструкция посложнее ПОИСК(» «;A1;НАЙТИ(» «;A1)+1)-НАЙТИ(» «;A1)-1. Количество символов определяется как разность позиций пробелов, отделяющих имя. Чтобы исключить из числа найденных символов сами пробелы, в начальной позиции прибавляется единица, а потом из полученного результата вычитается единица.
Отчество получается в ячейке D1 по более сложной формуле
=ПСТР(A1;ПОИСК(» «;A1;НАЙТИ(» «;A1)+1)+1;ДЛСТР(A1)-ПОИСК(» «;A1;НАЙТИ(» «;A1)+1)+1)
Здесь количество знаков в отчестве определяется как разность общего количества символов (ДЛСТР) и позицией второго пробела.
В рассмотренных примерах функции ПОИСК и НАЙТИ выполняют одинаковые операции, так как разница в регистрах символов не учитывается. Возможно обойтись только одной из них.
Задача 3. Укорачивание текстовых строк
В список сотрудников внести изменения. Записать в одном столбце Фамилии и инициалы.
Решение. В зависимости от исходного состояния списка возможны два варианта.
1 вариант. Исходные данные содержатся в одном столбце. ФИО разделены одинарным пробелом.
Записываем следующую формулу
=СЦЕПИТЬ(ЛЕВСИМВ(A1;НАЙТИ(» «;A1));ПСТР(A1;НАЙТИ(» «;A1);2);».»;ПСТР(A1;НАЙТИ(» «;A1; НАЙТИ(» «;A1)+1);2);».»)
2 вариант. Исходные данные содержатся в разных столбцах.
Формула для преобразования
=СЦЕПИТЬ(A1;» «;ЛЕВСИМВ(B1);».»;ЛЕВСИМВ(C1);».»)
Друзья, если вы можете привести свои примеры использования текстовых функций в Excel, расскажите о них в комментариях. Рекомендую посмотреть статью о построении графиков функций в Excel. Понравилась статья, поделитесь с друзьями. Кнопочки социальных сетей внизу.
Дополнительные статьи по теме:
- Знакомство с таблицами в Excel
- Изменение строк и столбцов в Excel
- Работа с ячейками: объединение, изменение, защита…
- Ошибки в формулах: почему excel не считает
- Использования условий в формулах Excel
- Функция CЧЕТЕСЛИМН
- Построение графика функции в Microsoft Excel
- Все уроки по Microsoft Excel
Дорогой читатель! Вы посмотрели статью до конца.
Получили вы ответ на свой вопрос? Напишите в комментариях пару слов. Если ответа не нашли, укажите что искали или откройте содержание блога.
ОЧЕНЬ ВАЖНО! Оцени лайком или дизлайком статью!
Текстовые функции Excel в примерах
Смотрите также6016660078- (нуль); качестве примера использованияЛЕВСИМВ(B5;НАЙТИ(«3»;B5)+1) – функция, выделяющаяФункция ПОИСК определяет положение первого пробела (найденное правой кнопкой мыши выполняет функцию возврата начинается с символа, Каждый из них кнопкой мыши, выберите «Word». Строка задается как
СЦЕПИТЬ
возвращает заданное количествоExcel предлагает большое количествоПреобразования текстовых строкМанипулирования целыми строкамиРаботы с двухбайтовыми символамипри аргументах: («текст»;15/7) вернет функции ЛЕВСИМВ. Для часть текстовой строки знака в текстовой
СТРОЧН
ПОИСКом). по ячейке со числа, которое представляет который указан по определяется следующим образом: командуВот и все! Мы первый аргумент функции, символов, начиная с функций, с помощью
ПРОПИСН
Удаляет из текста лишниеПовторяет текст заданное числоВозвращает количество байтов в значение «те». расчетов лучше использовать слева, количество символов строке. А функцияВторая строка содержит имя, значением. Нажимаем «Формат собой вхождение первого
ПРОПНАЧ
счету, на новыйПод текстом подразумевается строкаФормат ячеек познакомились с 15-ю а количество повторов указанной позиции. Пробел
которых можно обрабатывать пробелы раз текстовой строкеПримечание 2: в Excel
ДЛСТР
встроенную функцию ОКРГУГЛ в которой соответствуют ПСТР возвращает текстовые отчество и фамилию. ячеек». В открывшемся символа находящегося в текст. Выглядит она
ЛЕВСИМВ и ПРАВСИМВ
или ссылка наи в диалоговом текстовыми функциями Microsoft как второй. считается за символ. текст. Область примененияСИМВОЛПОДСТАВИТЬДЛСТР
ПСТР
также существует схожая и подобные ей. порядковому номеру символа значения (см. пример Для имени используем окне выбираем «все
СОВПАД
подстроке необходимого текста. следующим образом: старый ячейку, содержащая необходимую окне Excel и посмотрелиТекстовая функцияФункция текстовых функций неCHARSUBSTITUTELEN по принципу работыФункция ЛЕВСИМВ используется наряду
«3» (функция НАЙТИ выше). Либо можно такую же формулу: форматы». Копируем нужный В том случае, текст; начальная позиция; информацию.
СЖПРОБЕЛЫ
Формат ячеек их действие наНАЙТИ
СОВПАД ограничивается исключительно текстом,601596016860080 функция ЛЕВБ, возвращающая с прочими функциями выполняет поиск порядкового заменить найденный текстФормула для извлечения фамилии в строке «Тип». если данные не количество знаков; новыйНачальная позицияна вкладке простых примерах. Надеюсь,находит вхождение однойпозволяет сравнить две они также могутПреобразования типов данных
Поиска и заменыМанипулирования целыми строками определенное количество символов для работы с номера этого символа посредством функции ЗАМЕНИТЬ. несколько иная: Это
Вставляем скопированное значение были обнаружены, вместо текст.отмечает номер символа,Число что данный урок строки в другую текстовые строки в быть использованы сОпределяет знак по заданномуЗаменяет в текстовой строкеВозвращает количество знаков в текстовой строки слева текстовыми строками в и возвращает соответствующееСкачать пример функции для
ПОВТОР
пять знаков справа. в формулу. числа происходит возвратРассмотрим по отдельности каждый с которого будетнастройте нужные параметры пришелся Вам как и возвращает положение
НАЙТИ
Excel. Если они ячейками, содержащими числа. коду старый текст новым текстовой строке на основе определенного Excel (ПРАВСИМВ, СИМВОЛ, значение). Единица (+1)
работы с текстом Вложенные функции ПОИСК
Приведем еще пример, где ошибки «#ЗНАЧ!». из аргументов данной выполняться возвращение строки. форматирования (см. здесь). раз кстати, и первого символа искомой в точности совпадают, В рамках данногоСОВПАДПОИСКДОЛЛСША**
ПОИСК
количества байтов. Если СЦЕПИТЬ, ДЛСТР и добавлена для выделения в Excel ищут второй и может быть полезнаВот ее форма в текстовой функции вКоличество знаковОдной из самых полезных Вы получили от
ПОДСТАВИТЬ
фразы относительно начала то возвращается значение урока мы наEXACTSEARCHUSDOLLAR по умолчанию используется прочими) и имеет всего кода ошибки.
Читайте так же: как третий пробелы в данная функция. Добавим
документе. Но без Excel:
представляет собой целое свойств функции ТЕКСТ()
ЗАМЕНИТЬ
него хотя бы текста. ИСТИНА, в противном примерах рассмотрим 156016560130- язык с поддержкой следующую синтаксическую запись:2 – количество символов,
перевести число и строке. ПОИСК(» «;A3;1) нули в начале конкретных аргументов: =НАЙТИ(искомыйСсылка на конкретную ячейку натуральное число, указывающее является возможность отображения малость полезной информации.
Данная функция чувствительна к случае – ЛОЖЬ. наиболее распространенных функцийМанипулирования целыми строками
Поиска и заменыПреобразования типов данных двухбайтовой кодировки, для=ЛЕВСИМВ(текст;[число_знаков]) которые вернет функция сумму прописью. находит первый пробел числа. Если ввести текст; текст для или строка, содержащая объем символов, который в текстовой строке Всего доброго и регистру… Данная текстовая функция
Excel из категории
office-guru.ru
Функция ТЕКСТ() в MS EXCEL
Проверяет идентичность двух текстовИщет вхождение одного текстаПреобразует число в текст, получения первого символаОписание аргументов: ПРАВСИМВ, работающая аналогичноСинтаксис функции ПОИСК: слева (перед отчеством). вручную, Excel их поиска; нач. позиция). занесенную ранее информацию, нужно вернуть, начиная чисел и дат успехов в изучении… и может начинать учитывает регистр, ноТекстовыеСТРОЧН в другой (без
используя денежный формат
строки требуется в
- текст – ссылка на рассматриваемой ЛЕВСИМВ (отличие«искомый текст» — что К найденному результату
- удалит. Поэтому введемТеперь рассмотрим по отдельности называется с начальной позиции. в нужном формате Excel! просмотр текста с игнорирует различие в.LOWER учета регистра)ЗАМЕНИТЬ
качестве аргумента указать ячейку, содержащую текст, – возвращает символы нужно найти; добавляем единицу (+1). формулу: все приведенные аргументы:Старый текст.
Как пример можно привести (см. подробнее обАвтор: Антон Андронов указанной позиции. На форматировании.Для объединения содержимого ячеек60160ПОИСКБ***REPLACE число 2, а или текстовая строка, справа, а не«просматриваемый текст» — где Получаем ту позицию,Если нужно вернуть прежниеНеобходимая строка представляет собойНачальной позицией следующую ситуацию. В отображении чисел, датФункция ТЕКСТ(), английская версия рисунке ниже формулаЕсли регистр для Вас
в Excel, нарядуПреобразования текстовых строкSEARCHB60167 для получения последующих в которой требуется слева строки). искать; с которой будем числовые значения (безИскомый текст.указывается номер символа, ячейке А1 находится
и времени). В TEXT(), преобразует число начинает просмотр с
excel2.ru
Примеры текстовых функций в Excel
не играет большой с оператором конкатенации,Делает все буквы в-Поиска и замены второго, третьего и выделить требуемое количествоВ результате получим:«начальная позиция» — с искать второй пробел. нулей), то используемДанные, среди которых происходит с которого должна
некоторый текст. Нужно файле примера приведен в текст и четвертого символа, т.е. роли (так бывает
«СЦЕПИТЬ»
можно использовать текстовую тексте строчнымиРаботы с двухбайтовыми символамиЗаменяет знаки в тексте прочих символов необходимо символов слева. АргументВыделим часть текста ошибки: какой позиции начинатьЧасть формулы – ПОИСК(« оператор «—»: поиск первого аргумента, производиться замена (нумерация вернуть два последних наглядный пример: с
- позволяет задать формат
- c буквы « в большинстве случаев),
функциюСЦЕПИТЬИщет вхождение одного текстаЗАМЕНИТЬБ*** указывать соответствующие числа,
«ПСТР»
обязателен для заполнения.В данном случае удобнее искать (по умолчанию «;A3;ПОИСК(» «;A3;1)+1) –Обратите внимание, что значения являются идет слева на слова, общая длина форматированием и без отображения с помощью
- r то можно применитьСЦЕПИТЬCONCATENATE
- в другой (безREPLACEB кратные двум. Для[число_знаков] – необязательный для
- использовать ПРАВСИМВ, которая – 1). находит второй пробел. теперь отображаются вТекстом для поиска. право).
символов у них форматирования. специальных строк форматирования,«. Но даже в формулу, просто проверяющую. Она последовательно объединяет60384 учета регистра)- языков с однобайтовой заполнения аргумент; числовое является, по сути,
«ПОДСТАВИТЬ»
Если нужно учитывать регистр, Это будет конечная числовом формате.Начальная позицияНовый текст 12. Символ, которыйВ файле примера приведено например, формула =ТЕКСТ(100;»0,00 этом случае положение равенство двух ячеек. значения указанных ячеекМанипулирования целыми строкамиПРАВБ***Работы с двухбайтовыми символами
кодировкой функции ЛЕВСИМВ значение, характеризующее количество зеркальным отражением ЛЕВСИМВ. используется функция НАЙТИ.
позиция отчества.
- не является обязательнымпредставляет собой строку, необходимо вернуть в также множество других
- р.») вернет текстовую символа считается относительноУдаляет из текста все в одной строке.Объединяет несколько текстовых элементов
- RIGHTBЗаменяет знаки в тексте и ЛЕВБ возвращают символов, которые требуется
- Для определения второгоФункция ЛЕВСИМВ в ExcelДалее из общей длиныОтдельные текстовые функции и элементом. По умолчанию которой заменяется занесенная конкретной фразе, числится форматов. строку 100,00 р., начала просматриваемого текста.
«ЗАМЕНИТЬ»
лишние пробелы, кромеЕсли в Excel необходимо в один-ЗНАЧЕН идентичные результаты. выделить из текстовой аргумента используется запись используется для получения строки отнимается количество их комбинации позволяют
она имеет значение, ранее информация, которая под порядковым номеромВ строки программы Microsoft
- а формула =ТЕКСТ(1;»#%»)Текстовая функция одиночных между словами. сделать все буквыТ
- Работы с двухбайтовыми символамиVALUEФункции для работы строки. ДЛСТР(B5)-НАЙТИ(«:»;B5)-1, определяющая позицию части текста и
- знаков с начала распределить слова из равное единице. задавалась 12. Office Exel можно вернет текст (неПОИСК
В случаях, когда наличие строчными, т.е. преобразоватьТВозвращает указанное количество символов60081 с текстом предназначеныПримечания 1: символа «u» в возвращает заданное количество строки до второго одной ячейки в
Автор: Ксения МедковаНачальной позициейВыполняет замену готового текста заносить любую информацию, число!) 100%. Этаочень похожа на лишнего пробела в их в нижний60178 с конца текстовойПреобразования типов данных для работы сЕсли необязательный аргумента [число_знаков] слове «unknown» (единица символов текстовой строки, пробела. Результат – отдельные ячейки:
- Для удобства работы си на необходимый в
- которая необходима пользователям функция полезна, если
«ДЛСТР»
функцию конце или начале регистр, на помощьПреобразования типов данных строкиПреобразует текстовый аргумент в любыми текстовыми строками. явно не указан, вычтена для удаления
«НАЙТИ»
при этом отсчет число символов справа,ЛЕВСИМВ (текст; кол-во знаков) текстом в ExcelКоличеством знаков. том месте, которое для успешного выполнения числа требуется отобразитьНАЙТИ строки сложно отследить, придет текстовая функция
Преобразует аргумент в текстПРАВСИМВ число Кроме того функции по умолчанию будет
пробела). символов начинается слева.
- которые нужно вернуть. – отображает заданное
- существуют текстовые функции.Теперь рассмотрим пример использования будет указано пользователем. поставленных задач. Чтобы
- в более удобном, основное их различие данная функция становитсяСТРОЧНТЕКСТ
RIGHT
fb.ru
Функции для работы с текстом в Excel
КОДСИМВ этой категории могут возвращен первый символВ результате получим:Пример 1. В таблицеФормула «для отчества» строится число знаков с
Примеры функции ТЕКСТ в Excel
Они облегчают обработку текстовой функции в Чем-то похожа на работать наиболее продуктивно, формате или если заключается в том, просто незаменимой. На. Она не заменяет
TEXT60164CODE работать и с строки. Например, функцияПример 3. Создать функцию Excel содержатся имена по тем же начала ячейки; сразу сотен строк.
Excel. В ячейке функцию под названием необходимо уметь разбираться требуется объединить числа
что рисунке ниже видно, знаки, не являющиеся
60096Извлечения символов из строк60169 числовыми значениями, то =ЛЕВСИМВ(«текст») вернет значение для округления дробных переменных вместе с принципам:
ПРАВСИМВ (текст; кол-во знаков) Рассмотрим некоторые из
А1 содержится строка «Заменить». Но о с данными в с текстом илиПОИСК что содержимое ячеек буквами.Преобразования типов данныхВозвращает указанное количество символовПреобразования типов данных есть обрабатывать числа «т».
чисел до ближайших текстом, определяющим ихДля объединения значений из – возвращает заданное них на примерах. со словом «старый». ней подробности будут строках. В этом
символами.не чувствительна к А1 и B1Текстовая функция
Форматирует число и преобразует с конца текстовойОпределяет числовой код первого
как текст и
Функция разделения текста в Excel
Числовое значение, переданное в целых значений с тип данных. Необходимо нескольких ячеек в количество знаков с
- Преобразует числа в текст. Оно начинается с представлены позже. Главное материале будут рассмотрены
- Синтаксис регистру. абсолютно одинаково, ноПРОПИСН
- его в текст строки знака в текстовой текст как числа. качестве необязательного аргумента, использованием формул для выделить только названия
одну строку используется конца ячейки; Синтаксис: значение (числовое 19-го символа и отличие данного варианта
примеры текстовых функцийТЕКСТ(значение; формат)Заменяет определенный текст или это не так.
делает все буквыФИКСИРОВАННЫЙПРОПИСН строкеСписок текстовых функций: должно быть взято работы с текстом. переменных и записать оператор амперсанд (&)ПОИСК (искомый текст; диапазон или ссылка на имеет длительность из
в том, что
в Excel.Значение. символ на требуемое В ячейке А1 прописными, т.е. преобразуетFIXEDUPPERЛЕВБ***Функция
из диапазона неотрицательныхФорма для округления числовых их в отдельный или функция СЦЕПИТЬ.
для поиска; начальная ячейку с формулой, шести идентичных единиц. он автоматически вычисляетЧтобы найти их в Численное значение или значение. В Excel мы намеренно поставили их в верхний6006260161LEFTBFunction чисел, то есть
значений имеет следующий столбец.Например, значения расположены в позиция) – показывает дающей в результате
Замена происходит на вхождения требуемой строки программе, проследуйте во ссылка на ячейку, текстовую функцию лишний пробел в регистр. Так же,
Преобразования типов данныхПреобразования текстовых строк-
Функция объединения текста в Excel
id должно быть равным вид:Исходная таблица данных: разных столбцах (ячейках):
позицию первого появления число); формат (для
слово «новый». и выполняет замену. вкладку под названием содержащую численное значение.ПОДСТАВИТЬ конце слова как иФорматирует число и преобразуетДелает все буквы вРаботы с двухбайтовыми символамиПодкатегория нулю или большеВ ячейке B3 введенаДля выделения первого символа,
Ставим курсор в ячейку, искомого знака или
отображения числа в
Стоит отметить, что даннаяВыглядит конкретная функция следующим «Формулы», откройте списокФормат.применяют, когда заранее
Функция ПОИСК текста в Excel
ExcelСТРОЧН его в текст тексте прописными
Возвращает указанное количество символовОписание нуля. В противном следующая сложная формула: которым является искомое где будут находиться
строки при просмотре виде текста). ситуация достаточно двоякая. образом: текст; старый и выберите «Текстовые». Текстовая строка определенного известно какой текст. В итоге функция
, не заменяет знаки, с заданным числомПРОПНАЧ
от начала текстовойASC*** случае будет возвращен
=5,ЛЕВСИМВ(A2+1,НАЙТИ(«.»,A2)-1),ЛЕВСИМВ(A2,НАЙТИ(«.»,A2)-1)),»Число не введено»)’
- название переменной, используем объединенные три значения.
- слева направоСамая полезная возможность функции
- С одной стороны, текст; новый текст;Данная функция дает пользователю вида (например, «Д.М.ГГГГ»
необходимо заменить, аСОВПАД
exceltable.com
Примеры использования функции ЛЕВСИМВ в Excel работа с текстом
не являющиеся буквами. десятичных знаковPROPER строкиASC код ошибки #ЗНАЧ!. class=’formula’>
Как вырезать часть текста из строки функцией ЛЕВСИМВ в Excel?
формулу: Вводим равно. ВыбираемПри разделении текста в ТЕКСТ – форматирование если пользователь будет номер вхождения. возможность объединять между для вывода числа не его местоположение.
возвратила нам значение
Текстовая функцияФ.ТЕКСТ60162ЛЕВСИМВ
-Если в качестве аргументаЛогика работы:Второй равен 1 по первую ячейку с строке учитывается положение числовых данных для
работать с небольшимРазберем каждый из аргументов: собой несколько строк. в формате датыПриведенная ниже формула заменяет ЛОЖЬ.ПРОПНАЧ
FORMULATEXT
Как вытащить часть текста из ячейки в Excel используя функцию ЛЕВСИМВ?
Преобразования текстовых строкLEFTРаботы с двухбайтовыми символами [число_знаков] будет переданыПервая функция ЕСЛИ проверяет умолчанию, поэтому функция текстом и нажимаем каждого знака. Пробелы объединения с текстовыми
количеством ячеек, то
Под текстом понимается ссылка Максимально допустимое для
или «# ##0,00″
- все вхождения словаПрименив функциюделает прописной первуюВозвращает текст формулыДелает прописной первую букву60163Преобразует полуширинные (однобайтовые) английские текстовые данные, функция с помощью формулы возвращает первый символ. на клавиатуре &. показывают начало или
- данными. Без использования данный вариант отлично на определенную ячейку соединения количество достигает для вывода в «Excel» на «Word»:СЖПРОБЕЛЫ
букву каждого слова,
** — недокументированная функция
в каждом словеИзвлечения символов из строк буквы в полноширинные ЛЕВСИМВ вернет код ЕПУСТО, заполнена ли Аналогично выделим названия Затем – знак конец искомого имени. функции Excel «не сработает. Но как или строка, которая
255. Обратите внимание
Округление чисел текстовыми функциями в текстовой строке
числовом формате сЗаменяет только первое вхождениек значению ячейки а все остальные Excel текста
Возвращает указанное количество символов (двухбайтовые) ошибки #ЗНАЧ!.
ячейка, которая должна переменных из других
пробела, заключенный вРаспределим с помощью функций
понимает», как показывать
- быть в ситуации, содержит эту самую на то, что разделителями разрядов и слова «Excel»: А1, мы удалим
- преобразует в строчные.*** — Функции подкатегорииПСТР от начала текстовойJIS***Если число, переданное в
- содержать значение, которое строк. В результате кавычки (“ “). имя, фамилию и числа, и преобразует когда предстоит выполнить информацию.
- проставлять пробелы здесь
двумя знаками послеУдаляет все пробелы из из него всеКаждая первая буква, котораяработы с двухбайтовыми символамиMID строки- качестве необязательного аргумента, требуется округлить. получим: Снова — &.
Функция ЛЕВСИМВ в Excel и особенности ее использования
отчество в разные их в базовый замену среди несколькихСтарый текст необходимо самостоятельно. В запятой. Правила форматирования текстовой строки: лишние пробелы и
следует за знаком,
(за исключением
- 60079НАЙТИ- превышает количество знаковЕсли число введено, записьКак видно на рисунке И так последовательно
- столбцы. формат. тысяч строк? В- исходный вариант теле «СЦЕПИТЬ» должен см. ниже.
Заменяет символы, расположенные в
- получим корректный результат: отличным от буквы,ASCИзвлечения символов из строкFINDРаботы с двухбайтовыми символами в текстовой строке,
- ЧЗНАЧ(ПРАВСИМВ(ЛЕВСИМВ(B2;НАЙТИ(«,»;B2)+1)) возвращает числовое с помощью функции соединяем ячейки сВ первой строке естьПокажем на примере. Допустим, таком случае стоит данных, хранящихся в содержаться минимум одинФорматов для отображения чисел заранее известном месте
- Функцию также преобразуется в,Извлекает определенное число знаков60172
- Преобразует однобайтовые английские буквы рассматриваемая функция вернет значение первого символа ЛЕВСИМВ получилось вытащить текстом и пробелы. только имя и
- нужно объединить текст обратиться к двум ячейке, которые должны аргумент. Рассмотрим пример в MS EXCEL строки, на требуемоеСЖПРОБЕЛЫ
- верхний регистр.JIS из строки текста,
- Поиска и замены или знаки катакана весь текст целиком. после запятой и
- левую часть текстаПолучаем в одной ячейке фамилия, разделенные пробелом. в строках и другим текстовым функциям
- быть заменены. ее записи и
много (например, см. значение. В Excelполезно применять кВ Excel Вы можетеи начиная с указаннойИщет вхождение одного текста (японское письмо) вExcel выполняет автоматическое преобразование сравнивает полученное значение из каждой ячейки объединенные значения: Формула для извлечения числовые значения: Excel, которые будутНовый текст действия: здесь), также имеются текстовую функцию данным, которые импортируются подсчитать количество знаков,PHONETIC позиции в другой (с
exceltable.com
Функции текстовые.
двухбайтовые типов данных там, с числом 5. по одному (первому)Использование функции СЦЕПИТЬ: имени: =ЛЕВСИМВ(A2;ПОИСК(» «;A2;1)).Использование амперсанда без функции рассмотрены чуть позже:является строкой, необходимой=СЦЕПИТЬ(«Аргумент1″;»»;»Аргумент2″); форматы для отображения
ЗАМЕНИТЬ
в рабочие листы | содержащихся в текстовой | ) являются полными аналогами | ПСТРБ*** | учетом регистра) | ||
PHONETIC*** | где это возможно. | Если полученное значение больше | символу. | С помощью кавычек в Для определения второго ТЕКСТ дает «неадекватный» | ||
Начальную позицию | для выполнения смены | В итоге получится следующая | дат (например, см. | применяют, когда известно Excel из внешних строке, для этого соответствующих функций для | ||
MIDB | НАЙТИБ*** | - | Например, рассмотрим некоторые | 5, будет возвращен формуле можно добавить | ||
аргумента функции ЛЕВСИМВ | результат: | будем заменять на | старого варианта данных. | строка: «Аргумент1 Аргумент2». здесь). Также приведено где располагается текст, | ||
источников. Такие данные | воспользуйтесь функцией | работы с однобайтовыми | - | FINDB- | ||
возможные варианты записи | результат выполнения функции | Пример 2. В таблицу | в конечное выражение | – количества знаковExcel вернул порядковый номер | ||
«НАЙТИ». | Номер вхождения | Альтернативой данной функции для | много форматов . | при этом сам очень часто содержат | ||
ДЛСТР | символами. Функции этой | Работы с двухбайтовыми символами | - | Работы с двухбайтовыми символами | ||
функции ЛЕВСИМВ и | ЛЕВСИМВ(B2+1;НАЙТИ(«,»;B2)-1), то есть | Excel подтягиваются данные | любой знак или | – используется функция | ||
для даты и | Количество знаков | представляет собой необязательный | работы с текстом | Функция ТЕКСТ() преобразует число он не важен. | ||
лишние пробелы и | . Пробелы учитываются. | подкатегории отсутствуют в | Извлекает определенное число знаков | Работы с двухбайтовыми символамиПреобразует графическое японское письмо результаты ее выполнения: | ||
целой части числа | из другого программного | текст. | ПОИСК. Она находит | общий формат вместоизменится на «ДЛСТР». аргумент в данной | ||
является символ &, | в форматированный текст | Формула в примере ниже | различные непечатаемые символы. | Текстовые функции мастере функций и из строки текста, | ||
Ищет вхождение одного текста | (катакана) в фонетические | ЛЕВСИМВ(«текст»;200%) вернет значение «те» | +1 по правилам | продукта. Одно изФункция ПОИСК возвращает начальную пробел в ячейке | ||
денежного. Чтобы избежать | Данная текстовая функция в | текстовой функции в | который также отвечает | и результат больше заменяет 4 символа, Чтобы удалить все | ||
ЛЕВСИМВ | вводятся только вручную. | начиная с указанной | в другой (с | знаки (фуригана) (преобразование процентов в | ||
округления. | полей данных получило | позицию искомого текста | А2, начиная слева. | подобного результата, применяется Excel помогает пользователю | ||
Excel. При его | за объединение строк. | не может быть | расположенные, начиная с | непечатаемые символы изи | ||
Кроме того, для | позиции | учетом регистра) | БАТТЕКСТ | числовое значение);Если ошибку. Для обработки | ||
(без учета регистра). | Формула для извлечения фамилии: | функция ТЕКСТ. Она | определять длину строки. | указании будут замененыОна отвечает за возвращение использован в вычислениях | ||
седьмой позиции, на | текста, необходимо воспользоваться | ПРАВСИМВ | их работы необходимы | РУБЛЬПЕЧСИМВ- | ||
при аргументах: («текст»;ИСТИНА) вернет | Примечание: данный алгоритм нельзя | ошибки необходимо выделить | Например: | С помощью функции ПОИСК форматирует значения по Результатом ее работы | ||
только совпадающие вхождения. | из требуемой строки | в качестве числа. | значение «2013». Применительно | функциейвозвращают заданное количество | ||
соответствующие языковые настройки | DOLLAR | CLEAN | - | «т» (логическое ИСТИНА назвать гибким и ее код и | ||
Функция ПОИСК вернула позицию | Excel определяет количество | заданию пользователя. | будет возврат целого | В случае его куска текста в Чтобы отформатировать число, к нашему примеру, | ||
ПЕЧСИМВ | символов, начиная с | системы. В зависимости | 60061 |
|
||
описание из строки. | 10, т.к. слово | знаков для функции | Формула «для даты» теперь | числа, демонстрирующего объем отсутствия смена произойдет | ||
указанном количестве символов. | но при этом | формула заменит «2010» | . | начала или с от языковых параметров, | ||
Преобразования типов данных | Преобразования текстовых строк | Преобразует чисто в текст | 1); | недостатки (например, неИсходные данные: | ||
«Захар» начинается с | ПРАВСИМВ. Функция ДЛСТР | выглядит так: | символов в тексте. | везде. | ||
Строка начинается с | оставить его числом | на «2013». | Функция | конца строки. Пробел функция | ||
Преобразует число в текст, | Удаляет все непечатаемые знаки | (бат) на тайском | при аргументах: («текст»;ЛОЖЬ) вернет | учтен вариант вводаВыделим код ошибки с | ||
десятого символа в | «считает» общую длину | Второй аргумент функции – | Выглядит она так: | Выполняет функцию замены части | ||
отмеченного символа. Ключевые | (с которым можно | Заменяет первые пять символов | ПОВТОР | считается за символ.JIS | ||
используя денежный формат | из текста | языке | пустое значение «», | сразу целого числа). помощью следующей формулы: строке. Где это текста. Затем отнимается | ||
формат. Где брать | =ДЛСТР(текст). | строки в конкретном |
позиции (текст, начальная выполнять арифметические действия),
текстовой строки, т.е.повторяет текстовую строкуТекстовая функцияможет иметь другоеСЖПРОБЕЛЫПОВТОРДЛИНБ*** поскольку логическое ЛОЖЬ Он приведен вОписание: может пригодиться? количество знаков до строку формата? ЩелкаемПри работе с текстом количестве символов. Процесс позиция, количество знаков). щелкните ячейку правой слово «Excel», на указанное количество раз.ПСТР название. TRIMREPTLENB
excelworld.ru
эквивалентно числовому 0
На чтение 23 мин. Просмотров 18.7k.
Содержание
- Краткое руководство по текстовым функциям
- Введение
- Прочитайте это в первую очередь!
- Добавление строк
- Извлечение части строки
- Поиск в строке
- Удаление пробелов
- Длина строки
- Перевернуть текст
- Сравнение
- Сравнение строк с использованием сопоставления с шаблоном
- Заменить часть строки
- Преобразовать типы в строку (базовый)
- Преобразовать строку в число — CLng, CDbl, Val и т.д.
- Генерация строки элементов — функция строки
- Преобразовать регистр / юникод — StrConv, UCase, LCase
- Использование строк с массивами
- Форматирование строки
- Заключение
Краткое руководство по текстовым функциям
Текстовые операции | Функции |
Добавить две или более строки | Format or «&» |
Построить текст из массива | Join |
Сравнить | StrComp or «=» |
Сравнить — шаблон | Like |
Преобразовать в текст | CStr, Str |
Конвертировать текст в дату | Просто: CDate Дополнительно: Format |
Преобразовать текст в число | Просто: CLng, CInt, CDbl, Val Дополнительно: Format |
Конвертировать в юникод, широкий, узкий | StrConv |
Преобразовать в верхний / нижний регистр | StrConv, UCase, LCase |
Извлечь часть текста | Left, Right, Mid |
Форматировать текст | Format |
Найти символы в тексте | InStr, InStrRev |
Генерация текста | String |
Получить длину строки | Len |
Удалить пробелы | LTrim, RTrim, Trim |
Заменить часть строки | Replace |
Перевернуть строку | StrReverse |
Разобрать строку в массив | Split |
Введение
Использование строк является очень важной частью VBA. Есть много типов манипуляций, которые вы можете делать со строками. К ним относятся такие задачи, как:
- извлечение части строки
- сравнение строк
- преобразование чисел в текст
- форматирование даты для включения дня недели
- найти символ в строке
- удаление пробелов
- парсинг в массив
- и т. д.
Хорошей новостью является то, что VBA содержит множество функций, которые помогут вам легко выполнять эти задачи.
Эта статья содержит подробное руководство по использованию строки в VBA. Он объясняет строки в простых терминах с понятными примерами кода. Изложение в статье поможет легко использовать ее в качестве краткого справочного руководства.
Если вы собираетесь использовать строки часто, я рекомендую вам прочитать первый раздел, так как он относится ко многим функциям. В противном случае вы можете прочитать по порядку или просто перейти в нужный раздел.
Прочитайте это в первую очередь!
Следующие два пункта очень важны при работе со строковыми функциями VBA.
Исходная строка не изменяется
Важно помнить, что строковые функции VBA не изменяют исходную строку. Они возвращают новую строку с изменениями, внесенными функцией. Если вы хотите изменить исходную строку, вы просто назначаете результат исходной строке. См. Раздел «Извлечение части строки» для примеров.
Как использовать Compare
Некоторые строковые функции, такие как StrComp (), Instr () и т.д. имеют необязательный параметр Compare. Он работает следующим образом:
vbTextCompare: верхний и нижний регистры считаются одинаковыми
vbBinaryCompare: верхний и нижний регистр считаются разными
Следующий код использует функцию сравнения строк StrComp () для демонстрации параметра Compare.
Sub Comp1() ' Печатает 0 : Строки совпадают Debug.Print StrComp("АБВ", "абв", vbTextCompare) ' Печатает -1 : Строки не совпадают Debug.Print StrComp("АБВ", "абв", vbBinaryCompare) End Sub
Вы можете использовать параметр Option Compare вместо того, чтобы каждый раз использовать этот параметр. Опция сравнения устанавливается в верхней части модуля. Любая функция, которая использует параметр Compare, примет этот параметр по умолчанию. Два варианта использования Option Compare:
- Oпция Compare Text: делает vbTextCompare аргументом сравнения по умолчанию
Option Compare Text Sub Comp2() ' Соответствие строк - использует vbCompareText в качестве 'аргумента сравнения Debug.Print StrComp("АБВ", "абв") Debug.Print StrComp("ГДЕ", "где") End Sub
- Опция Compare Binary: делает vbBinaryCompare аргументом сравнения по умолчанию.
Option Compare Binary Sub Comp2() ' Строки не совпадают - использует vbCompareBinary в качестве 'аргумента сравнения Debug.Print StrComp("АБВ", "абв") Debug.Print StrComp("ГДЕ", "где") End Sub
Если Option Compare не используется, то по умолчанию используется Option Compare Binary.
Теперь, когда вы понимаете эти два важных момента о строке, мы можем продолжить и посмотреть на строковые функции индивидуально.
Добавление строк
Вы можете добавлять строки, используя оператор &. Следующий код показывает несколько примеров его использования.
Sub Dobavlenie() Debug.Print "АБВ" & "ГДЕ" Debug.Print "Иван" & " " & "Петров" Debug.Print "Длинный " & 22 Debug.Print "Двойной " & 14.99 Debug.Print "Дата " & #12/12/2015# End Sub
В примере вы можете видеть, что различные типы, такие как даты и числа, автоматически преобразуются в строки. Вы можете увидеть оператор +, используемый для добавления строк. Разница в том, что этот оператор будет работать только со строковыми типами. Если вы попытаетесь использовать его с другим типом, вы получите ошибку.
Это даст сообщение об ошибке: «Несоответствие типов» Debug.Print "Длинный " + 22
Если вы хотите сделать более сложное добавление строк, вы можете использовать функцию форматирования, описанную ниже.
Извлечение части строки
Функции, обсуждаемые в этом разделе, полезны при базовом извлечении из строки. Для чего-то более сложного можете посмотреть раздел, как легко извлечь любую строку без использования VBA InStr.
Функция | Параметры | Описание | Пример |
Left | строка, длина | Вернуть символы с левой стороны |
Left(«Иван Петров»,4) |
Right | строка, длина | Вернуть символы с правой стороны |
Right(«Иван Петров»,5) |
Mid | строка, начало, длина | Вернуть символы из середины |
Mid(«Иван Петров»,3,2) |
Функции Left, Right и Mid используются для извлечения частей строки. Это очень простые в использовании функции. Left читает символы слева, Right справа и Mid от указанной вами начальной точки.
Sub IspLeftRightMid() Dim sCustomer As String sCustomer = "Иван Васильевич Петров" Debug.Print Left(sCustomer, 4) ' Печатает: Иван Debug.Print Right(sCustomer, 6) ' Печатает: Петров Debug.Print Left(sCustomer, 15) ' Печатает: Иван Васильевич Debug.Print Right(sCustomer, 17) ' Печатает: Васильевич Петров Debug.Print Mid(sCustomer, 1, 4) ' Печатает: Иван Debug.Print Mid(sCustomer, 6, 10) ' Печатает: Васильевич Debug.Print Mid(sCustomer, 17, 6) ' Печатает: Петров End Sub
Как упоминалось в предыдущем разделе, строковые функции VBA не изменяют исходную строку. Вместо этого они возвращают результат в виде новой строки.
В следующем примере вы увидите, что строка Fullname не была изменена после использования функции Left.
Sub PrimerIspolzovaniyaLeft() Dim Fullname As String Fullname = "Иван Петров" Debug.Print "Имя: "; Left(Fullname, 4) ' Исходная строка не изменилась Debug.Print "Полное имя: "; Fullname End Sub
Если вы хотите изменить исходную строку, вы просто присваиваете ей возвращаемое значение функции.
Sub IzmenenieStroki() Dim name As String name = "Иван Петров" ' Присвойте возвращаемую строку переменной имени name = Left(name, 4) Debug.Print "Имя: "; name End Sub
Поиск в строке
Функция | Параметры | Описание | Пример |
InStr | Текст1, текст2 |
Находит положение текста |
InStr(«Иван Петров»,»в») |
InStrRev | Проверка текста, соответствие текста |
Находит позицию текста с конца |
InStrRev(«Иван Петров»,»в») |
InStr и InStrRev — это функции VBA, используемые для поиска текста в тексте. Если текст поиска найден, возвращается позиция (с начала строки проверки) текста поиска. Когда текст поиска не найден, возвращается ноль. Если какой-либо текст имеет значение null, возвращается значение null.
InStr Описание параметров
InStr() Start[Необязат], String1, String2, Compare[Необязат]
- Start [Необязательно — по умолчанию 1]: это число, указывающее начальную позицию поиска слева
- String1: текст, в котором будем искать
- String2: текст, который будем искать
- Compare как vbCompareMethod: см. Раздел «Сравнить» для получения более подробной информации.
Использование InStr и примеры
InStr возвращает первую позицию в тексте, где найден данный текст. Ниже приведены некоторые примеры его использования.
Sub PoiskTeksta() Dim name As String name = "Иван Петров" ' Возвращает 3 - позицию от первой Debug.Print InStr(name, "а") ' Возвращает 10 - позиция первого "а", начиная с позиции 4 Debug.Print InStr(4, name, "а") ' Возвращает 8 Debug.Print InStr(name, "тр") ' Возвращает 6 Debug.Print InStr(name, "Петров") ' Возвращает 0 - текст "ССС" не найдет Debug.Print InStr(name, "ССС") End Sub
InStrRev Описание параметров
InStrRev() StringCheck, StringMatch, Start[Необязат], Compare[Необязат]
- StringCheck: текст, в котором будем искать
- StringMatch: Текст, который будем искать
- Start [Необязательно — по умолчанию -1]: это число, указывающее начальную позицию поиска справа
- Compare как vbCompareMethod: см. Раздел «Сравнить» для получения более подробной информации.
Использование InStrRev и примеры
Функция InStrRev такая же, как InStr, за исключением того, что она ищет с конца строки. Важно отметить, что возвращаемая позиция является позицией с самого начала. Поэтому, если существует только один экземпляр элемента поиска, InStr () и InStrRev () будут возвращать одно и то же значение.
В следующем коде показаны некоторые примеры использования InStrRev.
Sub IspInstrRev() Dim name As String name = "Иван Петров" ' Обе возвращают 1 - позицию, только И Debug.Print InStr(name, "И") Debug.Print InStrRev(name, "И") ' Возвращает 11 - вторую в Debug.Print InStrRev(name, "в") ' Возвращает 3 - первую в с позиции 9 Debug.Print InStrRev(name, "в", 9) ' Returns 1 Debug.Print InStrRev(name, "Иван") End Sub
Функции InStr и InStrRev полезны при работе с базовым поиском текста. Однако, если вы собираетесь использовать их для извлечения текста из строки, они могут усложнить задачу. Я написал о гораздо лучшем способе сделать это в своей статье Как легко извлечь любой текст без использования VBA InStr.
Удаление пробелов
Функция | Параметры | Описание | Пример |
LTrim | Текст | Убирает пробелы слева |
LTrim(» Иван «) |
RTrim | Текст | Убирает пробелы справа |
RTrim(» Иван «) |
Trim | Текст | Убирает пробелы слева и справа |
Trim(» Иван «) |
Функции Trim — это простые функции, которые удаляют пробелы в начале или конце строки.
Функции и примеры использования триммера Trim
- LTrim удаляет пробелы слева от строки
- RTrim удаляет пробелы справа от строки
- Trim удаляет пробелы слева и справа от строки
Sub TrimStr() Dim name As String name = " Иван Петров " ' Печатает "Иван Петров " Debug.Print LTrim(name) ' Печатает " Иван Петров" Debug.Print RTrim(name) ' Печатает "Иван Петров" Debug.Print Trim(name) End Sub
Длина строки
Функция | Параметры | Описание | Пример |
Len | Текст | Возвращает длину строки |
Len («Иван Петров») |
Len — простая функция при использовании со строкой. Она просто возвращает количество символов, которое содержит строка. Если используется с числовым типом, таким как long, он вернет количество байтов.
Sub IspLen() Dim name As String name = "Иван Петров" ' Печатает 11 Debug.Print Len("Иван Петров") ' Печатает 3 Debug.Print Len("АБВ") ' Печатает 4 с Long - это размер 4 байта Dim total As Long Debug.Print Len(total) End Sub
Перевернуть текст
Функция | Параметры | Описание | Пример |
StrReverse | Текст | Перевернуть текст |
StrReverse («Иван Петров») |
StrReverse — еще одна простая в использовании функция. Он просто возвращает данную строку с обратными символами.
Sub RevStr() Dim s As String s = "Иван Петров" ' Печатает: вортеП навИ Debug.Print StrReverse(s) End Sub
Сравнение
Функция | Параметры | Описание | Пример |
StrComp | Текст1, текст2 | Сравнивает 2 текста |
StrComp («Иван», «Иван») |
Функция StrComp используется для сравнения двух строк. Следующие подразделы описывают, как используется.
Описание параметров
StrComp() String1, String2, Compare[Необязат]
- String1: первая строка для сравнения
- String2: вторая строка для сравнения
- Compare как vbCompareMethod: см. Раздел «Сравнить» для получения более подробной информации.
StrComp Возвращаемые значения
Возвращаемое значение | Описание |
0 | Совпадение строк |
-1 | строка1 меньше строки2 |
1 | строка1 больше строки2 |
Null | если какая-либо строка равна нулю |
Использование и примеры
Ниже приведены некоторые примеры использования функции StrComp.
Sub IspStrComp() ' Возвращает 0 Debug.Print StrComp("АБВ", "АБВ", vbTextCompare) ' Возвращает 1 Debug.Print StrComp("АБВГ", "АБВ", vbTextCompare) ' Возвращает -1 Debug.Print StrComp("АБВ", "АБВГ", vbTextCompare) ' Returns Null Debug.Print StrComp(Null, "АБВГ", vbTextCompare) End Sub
Сравнение строк с использованием операторов
Вы также можете использовать знак равенства для сравнения строк. Разница между сравнением equals и функцией StrComp:
- Знак равенства возвращает только true или false.
- Вы не можете указать параметр Compare, используя знак равенства — он использует настройку «Option Compare».
Ниже приведены некоторые примеры использования equals для сравнения строк.
Option Compare Text Sub CompareIspEquals() ' Возвращает true Debug.Print "АБВ" = "АБВ" ' Возвращает true, потому что «Сравнить текст» установлен выше Debug.Print "АБВ" = "абв" ' Возвращает false Debug.Print "АБВГ" = "АБВ" ' Возвращает false Debug.Print "АБВ" = "АБВГ" ' Возвращает null Debug.Print Null = "АБВГ" End Sub
Сравнение строк с использованием сопоставления с шаблоном
Функция | Параметры | Описание | Пример |
Like | Текст, шаблон | проверяет, имеет ли строка заданный шаблон |
«abX» Like «??X» «54abc5» Like «*abc#» |
Знак | Значение |
? | Любой одиночный символ |
# | Любая однозначная цифра (0-9) |
* | Ноль или более символов |
[charlist] | Любой символ в списке |
[!charlist] | Любой символ не в списке символов |
Сопоставление с шаблоном используется для определения того, имеет ли строка конкретный образец символов. Например, вы можете проверить, что номер клиента состоит из 3 цифр, за которыми следуют 3 алфавитных символа, или в строке есть буквы XX, за которыми следует любое количество символов.
Если строка соответствует шаблону, возвращаемое значение равно true, в противном случае — false.
Сопоставление с образцом аналогично функции формата VBA в том смысле, что его можно использовать практически безгранично. В этом разделе я приведу несколько примеров, которые объяснят, как это работает. Это должно охватывать наиболее распространенные виды использования.
Давайте посмотрим на базовый пример с использованием знаков. Возьмите следующую строку шаблона.
[abc][!def]?#X*
Давайте посмотрим, как работает эта строка
[abc] — символ, который является или a, b или c
[! def] — символ, который не является d, e или f
? любой символ
# — любая цифра
X — символ X
* следуют ноль или более символов
Поэтому следующая строка действительна
apY6X
а — один из символов a,b,c
p — не один из символов d, e или f
Y — любой символ
6 — это цифра
Х — это буква Х
В следующих примерах кода показаны результаты различных строк с этим шаблоном.
Sub Shabloni() ' ИСТИНА Debug.Print 1; "apY6X" Like "[abc][!def]?#X*" ' ИСТИНА - любая комбинация символов после x действительна Debug.Print 2; "apY6Xsf34FAD" Like "[abc][!def]?#X*" ' ЛОЖЬ - символ не из[abc] Debug.Print 3; "dpY6X" Like "[abc][!def]?#X*" ' ЛОЖЬ - 2-й символ e находится в [def] Debug.Print 4; "aeY6X" Like "[abc][!def]?#X*" ' ЛОЖЬ - A в позиции 4 не является цифрой Debug.Print 5; "apYAX" Like "[abc][!def]?#X*" ' ЛОЖЬ - символ в позиции 5 должен быть X Debug.Print 1; "apY6Z" Like "[abc][!def]?#X*" End Sub
Реальный пример сопоставления с образцом
Чтобы увидеть реальный пример использования сопоставления с образцом, ознакомьтесь с Примером 3: Проверьте, допустимо ли имя файла.
Важное примечание о сопоставлении с образцом VBA
Оператор Like использует двоичное или текстовое сравнение на основе параметра Option Compare. Пожалуйста, смотрите раздел Сравнение для более подробной информации.
Заменить часть строки
Функция | Параметры | Описание | Пример |
Replace | строка, найти, заменить, начать, считать, сравнивать |
Заменяет текст | Replace («Ива»,»а»,»ан») |
Replace используется для замены текста в строке другим текстом. Он заменяет все экземпляры текста, найденные по умолчанию.
Replace описание параметров
Replace() Expression, Find, Replace, Start[Необязат], Count[Необязат], Compare[Необязат]
- Expression: текст, в котором нужна замена символов
- Find: текст для замены в строке выражения
- Replace: строка для поиска замены текста поиска
- Start [Необязательно — по умолчанию 1]: начальная позиция в строке
- Count [Необязательно — по умолчанию -1]: количество замен. По умолчанию -1 означает все.
- Compare как vbCompareMethod: см. Раздел «Сравнить» для получения более подробной информации.
Использование и примеры
В следующем коде показаны некоторые примеры использования функции замены.
Sub PrimeriReplace() ' Заменяет все знаки вопроса (?) на точку с запятой (;) Debug.Print Replace("A?B?C?D?E", "?", ";") ' Заменить Петров на Иванов Debug.Print Replace("Евгений Петров,Артем Петров", "Петров", "Иванов") ' Заменить AX на AB Debug.Print Replace("ACD AXC BAX", "AX", "AB") End Sub
На выходе:
A;B;C;D;E
Евгений Иванов,Артем Иванов
ACD ABC BAB
В следующих примерах мы используем необязательный параметр Count. Count определяет количество замен. Так, например, установка Count равной единице означает, что будет заменено только первое вхождение.
Sub ReplaceCount() ' Заменяет только первый знак вопроса Debug.Print Replace("A?B?C?D?E", "?", ";", Count:=1) ' Заменяет первые три знака вопроса Debug.Print Replace("A?B?C?D?E", "?", ";", Count:=3) End Sub
На выходе:
A;B?C?D?E
A;B;C;D?E
Необязательный параметр Start позволяет вам вернуть часть строки. Позиция, которую вы указываете с помощью Start, — это место, откуда начинается возврат строки. Он не вернет ни одной части строки до этой позиции, независимо от того, была ли произведена замена или нет.
Sub ReplacePartial() ' Использовать оригинальную строку из позиции 4 Debug.Print Replace("A?B?C?D?E", "?", ";", Start:=4) ' Используйте оригинальную строку из позиции 8 Debug.Print Replace("AA?B?C?D?E", "?", ";", Start:=8) ' Элемент не заменен, но по-прежнему возвращаются только последние '2 символа Debug.Print Replace("ABCD", "X", "Y", Start:=3) End Sub
На выходе:
;C;D;E
;E
CD
Иногда вы можете заменить только заглавные или строчные буквы. Вы можете использовать параметр Compare для этого. Он используется во многих строковых функциях. Для получения дополнительной информации об этом проверьте раздел сравнения.
Sub ReplaceCase() ' Заменить только заглавные А Debug.Print Replace("AaAa", "A", "X", Compare:=vbBinaryCompare) ' Заменить все А Debug.Print Replace("AaAa", "A", "X", Compare:=vbTextCompare) End Sub
На выходе:
XaXa
XXXX
Многократные замены
Если вы хотите заменить несколько значений в строке, вы можете вкладывать вызовы. В следующем коде мы хотим заменить X и Y на A и B соответственно.
Sub ReplaceMulti() Dim newString As String ' Заменить А на Х newString = Replace("ABCD ABDN", "A", "X") ' Теперь замените B на Y в новой строке newString = Replace(newString, "B", "Y") Debug.Print newString End Sub
В следующем примере мы изменим приведенный выше код для выполнения той же задачи. Мы будем использовать возвращаемое значение первой замены в качестве аргумента для второй замены.
Sub ReplaceMultiNested() Dim newString As String ' Заменить A на X, а B на Y newString = Replace(Replace("ABCD ABDN", "A", "X"), "B", "Y") Debug.Print newString End Sub
Результатом обоих этих Subs является:
XYCD XYDN
Преобразовать типы в строку (базовый)
Этот раздел о преобразовании чисел в строку. Очень важным моментом здесь является то, что в большинстве случаев VBA автоматически конвертируется в строку для вас. Давайте посмотрим на некоторые примеры:
Sub AutoConverts() Dim s As String ' Автоматически преобразует число в строку s = 12.99 Debug.Print s ' Автоматически преобразует несколько чисел в строку s = "ABC" & 6 & 12.99 Debug.Print s ' Автоматически преобразует двойную переменную в строку Dim d As Double, l As Long d = 19.99 l = 55 s = "Значения: " & d & " " & l Debug.Print s End Sub
Когда вы запустите приведенный выше код, вы увидите, что число было автоматически преобразовано в строки. Поэтому, когда вы присваиваете значение строке, VBA будет следить за преобразованием большую часть времени. В VBA есть функции преобразования, и в следующих подразделах мы рассмотрим причины их использования.
Явное преобразование
Функция | Параметры | Описание | Пример |
CStr | выражение | Преобразует числовую переменную в строку |
CStr («45.78») |
Str | число | Преобразует числовую переменную в строку |
Str («45.78») |
В некоторых случаях вы можете захотеть преобразовать элемент в строку без необходимости сначала помещать его в строковую переменную. В этом случае вы можете использовать функции Str или CStr. Оба принимают выражение как функцию, и это может быть любой тип, например long, double, data или boolean.
Давайте посмотрим на простой пример. Представьте, что вы читаете список значений из разных типов ячеек в коллекцию. Вы можете использовать функции Str / CStr, чтобы гарантировать, что они все хранятся в виде строк. Следующий код показывает пример этого:
Sub IspStr() Dim coll As New Collection Dim c As Range ' Считать значения ячеек в коллекцию For Each c In Range("A1:A10") ' Используйте Str для преобразования значения ячейки в строку coll.Add Str(c) Next ' Распечатайте значения и тип коллекции Dim i As Variant For Each i In coll Debug.Print i, TypeName(i) Next End Sub
В приведенном выше примере мы используем Str для преобразования значения ячейки в строку. Альтернативой этому может быть присвоение значения строке, а затем присвоение строки коллекции. Итак, вы видите, что использование Str здесь намного эффективнее.
Multi Region
Разница между функциями Str и CStr заключается в том, что CStr преобразует в зависимости от региона. Если ваши макросы будут использоваться в нескольких регионах, вам нужно будет использовать CStr для преобразования строк.
Хорошей практикой является использование CStr при чтении значений из ячеек. Если ваш код в конечном итоге используется в другом регионе, вам не нужно вносить какие-либо изменения, чтобы он работал правильно.
Преобразовать строку в число — CLng, CDbl, Val и т.д.
Функция | Возвращает | Пример |
CBool | Boolean | CBool(«True»), CBool(«0») |
CCur | Currency | CCur(«245.567») |
CDate | Date | CDate(«1/1/2019») |
CDbl | Double | CDbl(«245.567») |
CDec | Decimal | CDec(«245.567») |
CInt | Integer | CInt(«45») |
CLng | Long Integer | CLng(«45.78») |
CVar | Variant | CVar(«») |
Вышеуказанные функции используются для преобразования строк в различные типы. Если вы присваиваете переменную этого типа, VBA выполнит преобразование автоматически.
Sub StrToNumeric() Dim l As Long, d As Double, c As Currency Dim s As String s = "45.923239" l = s d = s c = s Debug.Print "Long is "; l Debug.Print "Double is "; d Debug.Print "Currency is "; c End Sub
Использование типов преобразования дает большую гибкость. Это означает, что вы можете определить тип во время выполнения. В следующем коде мы устанавливаем тип на основе аргумента sType, передаваемого в функцию PrintValue. Поскольку этот тип может быть прочитан из внешнего источника, такого как ячейка, мы можем установить тип во время выполнения. Если мы объявим переменную как Long, то при выполнении кода она всегда будет длинной.
Sub Test() ' Печатает 46 PrintValue "45.56", "Long" ' Печатает 45.56 PrintValue "45.56", "" End Sub Sub PrintValue(ByVal s As String, ByVal sType As String) Dim value ' Установите тип данных на основе строки типа If sType = "Long" Then value = CLng(s) Else value = CDbl(s) End If Debug.Print "Type is "; TypeName(value); value End Sub
Если строка не является допустимым числом (т.е. Содержит символы, другие цифры), вы получаете ошибку «Несоответствие типов».
Sub InvalidNumber() Dim l As Long ' Даст ошибку несоответствия типов l = CLng("45A") End Sub
Функция Val
Функция преобразует числовые части строки в правильный тип числа.
Val преобразует первые встреченные числа. Как только он встречает буквы в строке, он останавливается. Если есть только буквы, то в качестве значения возвращается ноль. Следующий код показывает некоторые примеры использования Val
Sub IspVal() ' Печатает 45 Debug.Print Val("45 Новая улица") ' Печатает 45 Debug.Print Val(" 45 Новая улица") ' Печатает 0 Debug.Print Val("Новая улица 45") ' Печатает 12 Debug.Print Val("12 f 34") End Sub
Val имеет два недостатка
- Не мультирегиональный — Val не распознает международные версии чисел, такие как запятые вместо десятичных. Поэтому вы должны использовать вышеуказанные функции преобразования, когда ваше приложение будет использоваться в нескольких регионах.
- Преобразует недопустимые строки в ноль — в некоторых случаях это может быть нормально, но в большинстве случаев лучше, если неверная строка вызывает ошибку. Затем приложение осознает наличие проблемы и может действовать соответствующим образом. Функции преобразования, такие как CLng, вызовут ошибку, если строка содержит нечисловые символы.
Генерация строки элементов — функция строки
Функция | Параметры | Описание | Пример |
String | число, символ | Преобразует числовую переменную в строку |
String (5,»*») |
Функция String используется для генерации строки повторяющихся символов. Первый аргумент — это количество повторений, второй аргумент — символ.
Sub IspString() ' Печатает: AAAAA Debug.Print String(5, "A") ' Печатает: >>>>> Debug.Print String(5, 62) ' Печатает: (((ABC))) Debug.Print String(3, "(") & "ABC" & String(3, ")") End Sub
Преобразовать регистр / юникод — StrConv, UCase, LCase
Функция | Параметры | Описание | Пример |
StrConv | строка, преобразование, LCID |
Преобразует строку |
StrConv(«abc»,vbUpperCase) |
Если вы хотите преобразовать регистр строки в верхний или нижний регистр, вы можете использовать функции UCase и LCase для верхнего и нижнего соответственно. Вы также можете использовать функцию StrConv с аргументом vbUpperCase или vbLowerCase. В следующем коде показан пример использования этих трех функций.
Sub ConvCase() Dim s As String s = "У Мэри был маленький ягненок" ' верхний Debug.Print UCase(s) Debug.Print StrConv(s, vbUpperCase) ' нижний Debug.Print LCase(s) Debug.Print StrConv(s, vbLowerCase) ' Устанавливает первую букву каждого слова в верхний регистр Debug.Print StrConv(s, vbProperCase) End Sub
На выходе:
У МЭРИ БЫЛ МАЛЕНЬКИЙ ЯГНЕНОК
У МЭРИ БЫЛ МАЛЕНЬКИЙ ЯГНЕНОК
у мэри был маленький ягненок
у мэри был маленький ягненок
У Мэри Был Маленький Ягненок
Другие преобразования
Как и в случае, StrConv может выполнять другие преобразования на основе параметра Conversion. В следующей таблице приведен список различных значений параметров и того, что они делают. Для получения дополнительной информации о StrConv проверьте страницу MSDN.
Постоянные | Преобразует | Значение |
vbUpperCase | 1 | в верхний регистр |
vbLowerCase | 2 | в нижнем регистре |
vbProperCase | 3 | первая буква каждого слова в верхнем регистре |
vbWide* | 4 | от узкого к широкому |
vbNarrow* | 8 | от широкого к узкому |
vbKatakana** | 16 | из Хираганы в Катакану |
vbHiragana | 32 | из Катаканы в Хирагану |
vbUnicode | 64 | в юникод |
vbFromUnicode | 128 | из юникода |
Использование строк с массивами
Функция | Параметры | Описание | Пример |
Split | выражение, разделитель, ограничить, сравнить |
Разбирает разделенную строку в массив |
arr = Split(«A;B;C»,»;») |
Join | исходный массив, разделитель |
Преобразует одномерный массив в строку |
s = Join(Arr, «;») |
Строка в массив с использованием Split
Вы можете легко разобрать строку с разделителями в массив. Вы просто используете функцию Split с разделителем в качестве параметра. Следующий код показывает пример использования функции Split.
Sub StrToArr() Dim arr() As String ' Разобрать строку в массив arr = Split("Иван,Анна,Павел,София", ",") Dim name As Variant For Each name In arr Debug.Print name Next End Sub
На выходе:
Иван
Анна
Павел
София
Если вы хотите увидеть некоторые реальные примеры использования Split, вы найдете их в статье Как легко извлечь любую строку без использования VBA InStr.
Массив в строку, используя Join
Если вы хотите построить строку из массива, вы можете легко это сделать с помощью функции Join. По сути, это обратная функция Split. Следующий код предоставляет пример использования Join
Sub ArrToStr() Dim Arr(0 To 3) As String Arr(0) = "Иван" Arr(1) = "Анна" Arr(2) = "Павел" Arr(3) = "София" ' Построить строку из массива Dim sNames As String sNames = Join(Arr, ",") Debug.Print sNames End Sub
На выходе:
Иван, Анна, Павел, София
Форматирование строки
Функция | Параметры | Описание | Пример |
Format | выражение, формат, firstdayofweek, firstweekofyear |
Форматирует строку |
Format(0.5, «0.00%») |
Функция Format используется для форматирования строки на основе заданных инструкций. В основном используется для размещения даты или числа в определенном формате. Приведенные ниже примеры показывают наиболее распространенные способы форматирования даты.
Sub FormatDate() Dim s As String s = "31/12/2019 10:15:45" ' Печатает: 31 12 19 Debug.Print Format(s, "DD MM YY") ' Печатает: Thu 31 Dec 2019 Debug.Print Format(s, "DDD DD MMM YYYY") ' Печатает: Thursday 31 December 2019 Debug.Print Format(s, "DDDD DD MMMM YYYY") ' Печатает: 10:15 Debug.Print Format(s, "HH:MM") ' Печатает: 10:15:45 AM Debug.Print Format(s, "HH:MM:SS AM/PM") End Sub
В следующих примерах представлены некоторые распространенные способы форматирования чисел.
Sub FormatNumbers() ' Печатает: 50.00% Debug.Print Format(0.5, "0.00%") ' Печатает: 023.45 Debug.Print Format(23.45, "00#.00") ' Печатает: 23,000 Debug.Print Format(23000, "##,000") ' Печатает: 023,000 Debug.Print Format(23000, "0##,000") ' Печатает: $23.99 Debug.Print Format(23.99, "$#0.00") End Sub
Функция «Формат» — довольно обширная тема, и она может самостоятельно занять всю статью. Если вы хотите получить больше информации, то страница формата MSDN предоставляет много информации.
Полезный совет по использованию формата
Быстрый способ выяснить используемое форматирование — использовать форматирование ячеек на листе Excel. Например, добавьте число в ячейку. Затем щелкните правой кнопкой мыши и отформатируйте ячейку так, как вам нужно. Если вы довольны форматом, выберите «Пользовательский» в списке категорий слева. При выборе этого вы можете увидеть строку формата в текстовом поле типа. Это формат строки, который вы можете использовать в VBA.
Заключение
Практически в любом типе программирования вы потратите много времени на манипулирование строками. В этой статье рассматриваются различные способы использования строк в VBA.
Чтобы получить максимальную отдачу, используйте таблицу вверху, чтобы найти тип функции, которую вы хотите использовать. Нажав на левую колонку этой функции, вы попадете в этот раздел.
Если вы новичок в строках в VBA, то я предлагаю вам ознакомиться с разделом «Прочтите это в первую очередь» перед использованием любой из функций.
При использовании Excel часто необходимо работать не только с числами, но и с текстом. В этой статье мы разберем 12 основных функций Excel для обработки текста.
Для примера возьмем строку «ExcelGuide.ru – про Excel и не только» и ее будем использовать в наших функциях ниже.
ЛЕВСИМВ
Функция ЛЕВСИМВ возвращает указанное количество знаков с начала строки. В качестве аргументов на первом месте указываем ту строку, из которой хотим извлечь текст, а вторым аргументом количество символов, которое хотим получить.
Давайте из нашей строки получим текст «ExcelGuide.ru»:
=ЛЕВСИМВ(B1;13)
ПРАВСИМВ
Функция ПРАВСИМВ аналогична ЛЕВСИМВ, только возвращает указанное количество символов не с начала, а с конца строки. Первым аргументом указываем строку, откуда будем получать часть текста, а вторым аргументом – количество символов.
Из нашей строки извлечем текст «про Excel и не только»:
=ПРАВСИМВ(B1;21)
ПСТР
Функция ПСТР позволяет получить указанное количество символов начиная с определенной позиции. У этой функции 3 аргумента: Текст, из которого нам нужно получить часть; стартовая позиция, с которой нужно извлечь символы; количество символов, которое хотим получить.
В нашей строке есть слово Excel, давайте его получим:
=ПСТР(B1;21;5)
ДЛСТР
Функция ДЛСТР возвращает количество символов в строке.
=ДЛСТР(B1)
ПОИСК
Функция ПОИСК предназначена для нахождения первого вхождения указанного текста в исходную строку. Аргументы функции: сначала указываем тот текст, который хотим найти; далее строку, в которой ищем текст.
Давайте в нашем примере найдем текст «про Excel»:
=ПОИСК(«про Excel»;B1)
СЦЕПИТЬ
Функция СЦЕПИТЬ позволяет последовательно объединить несколько текстовых элементов в одну строку.
В качестве аргументов необходимо перечислить те текстовые элементы, которые вы хотите соединить.
В качестве примера объединим наш пример и строку «. Пожалуй лучший сайт про Excel )))»:
=СЦЕПИТЬ(B1;». Пожалуй лучший сайт про Excel )))»)
СОВПАД
Функция СОВПАД проверяет идентичность двух строк и возвращает Истина, если строки совпадают и ЛОЖЬ, если строки не совпадают.
Сравним нашу строку с текстом «ExcelGuide.ru»:
=СОВПАД(B1;»ExcelGuide.ru»)
СЖПРОБЕЛЫ
Функция СЖПРОБЕЛЫ удаляет лишние дублирующие пробелы. В качестве аргумента указываем строку, у которой надо удалить лишние пробелы.
=СЖПРОБЕЛЫ(B1)
ЗНАЧЕН
Функция ЗНАЧЕН преобразует текст в число. Часто случается при экспорте из разных информационных систем мы получаем числовые значения в текстовом формате, в таких случаях нам и пригодится этот функционал.
В качестве примера преобразуем текст «1000» в число 1 000:
=ЗНАЧЕН(«1000»)
ПОДСТАВИТЬ
Функция ПОДСТАВИТЬ заменяет новым текстом старый текст в исходной текстовой строке. Аргументов у функции три: сначала указываем ту строку, в которой будем менять текст; далее указываем старый текст; а затем тот, которым мы хотим заменить.
В качестве примера в нашей строке заменим «про» на «о»:
=ПОДСТАВИТЬ(B1;»про»;»о»)
ПРОПИСН
Функция ПРОПИСН преобразует все буквы в прописные. У функции только один аргумент – та строка, которую надо преобразовать.
=ПРОПИСН(B1)
СТРОЧН
Функция СТРОЧН преобразует все буквы в строчные. У функции один аргумент – тот текст, который мы хотим модифицировать.
=СТРОЧН(B1)
Кстати, если вы хотите более подробно изучить Excel, научиться строить быстро сложные отчеты и графики, то рекомендую вам курс «Excel + Google Таблицы с нуля до PRO» от Skillbox.
Спасибо за внимание. Мы разобрали 12 основных текстовых функций в Excel, которые вам могут пригодиться в ежедневной работе.
Microsoft Excel comes with a massive list of functions that allow you to manipulate the text data within a spreadsheet, and even add features that you may have thought were impossible. In the following tutorial, we will show you exactly how to do that using Excel’s text functions.
How to Access the Excel Functions
As mentioned above, functions are what allow you to manipulate data in your spreadsheet in some capacity. Whenever you need to access a function, you can do so in a few different ways.
One option is to add a function to a cell using the equal sign. Simply click on the cell where you want to apply the function and type “=” directly in the cell. This should bring up a list of functions available for use in the spreadsheet. You can get to the function you’re looking for by typing its first letter after the equal sign. Since we’re looking for text functions, we would enter “=T” in a cell to view a list of functions starting with ‘T.’
Look at the following image to see how that would look in Excel.
Notice that it gives you a complete list of functions that start with “T.” When you access the function through this method, Excel will provide the syntax as a guide for you to follow when creating your formula.
An easier way to access a function in Excel is using the Formulas tab on the menu in Excel. All you have to do is click on the Formulas tab and choose the function you wish to apply. You’ll see the Text menu option under the Formulas tab contains several text functions.
Take a look at the screenshot below:
When you access the function via the Formulas tab, Excel brings up the formula wizard to help you create the formula you need. If you are new to working with formulas, then using the formula wizard is a quick and easy way to learn how to create them.
Formatting dates with the Excel text function
For our first example, we’re going to use the formula wizard to convert the following dates into formatted text. We’ll base all of our examples on the spreadsheet below.
To convert the first date to a text field, click on cell B2. This is where we want our formatted text to display. Then open the text formula via the Formulas tab. Choose cell A2 in the value field to convert the first date, then type “m” in the format text field to convert the date to a single-digit number representing the month.
Now let’s add some more date formatting with the wizard. If we type “mm” instead of “m,” the text will appear as a double-digit month:
If we type “mmm,” the text will appear as “Dec”:
The advantage of using the formula wizard is that it tells you what formula to use, which cell to use, and gives you a preview of what the formatted cell will look like at the bottom left-hand corner of the wizard:
Below the preview of the formula is a link to the help function that gives you all the text formulas that you can use to format a date cell as text within a cell.
Formatting numbers with the Excel TEXT function
The Excel TEXT function also lets you format numbers. Excel provides three characters so you can format numbers as text. They are the zero character, the hash character, and the question mark. Each has a different effect on the numbers being formatted.
The zero character displays the number as-is unless there are fewer digits than the format, in which case it places a zero within the text display of the number. Look at the example below. We are going to format 7.5 as a text value using the 0.00 mask. You can see in the second example that Excel adds a zero to the end of the number 7.5 because the number does not have sufficient digits.
The result of the above format on our two numbers is as follows:
Using the zero mask to format numbers is a great way to standardize how the numbers look in your worksheet.
The hash mask removes excess zeros if they appear in front of a number or after a decimal point at the end of the number. If you format the above numbers using the “##,##” mask, then you would see the following result:
And finally, the question mark mask aligns the numbers using the decimal point of each number. Using “??.??” to format the above numbers would have the same results as using the hash marks.
You may also use the zero, hash, and question mark in combination to format numbers as text in a spreadsheet. If we used the “$000,###” mask to format our numbers, then we would end up with the following result:
As you can see from the examples, the Excel TEXT function is a powerful way of converting numbers and dates to text. One thing to remember, though, is once you format the date or number as text, you cannot use it for calculations like you could the original numbers.
But as you may have noticed when you looked at the list of text functions in the Formula Builder, there are many more functions under the text heading. Let’s look at those functions next.
Other top Excel text functions
The TEXT function can take numbers and format them into text-based dates, currency, and many other formats, but there may be more you want to do with the text in your spreadsheets. Here are some other Excel text functions you might find helpful. You can add any of the following functions to your spreadsheet using the two methods mentioned above. Excel text functions become even more powerful when you use them together. We will now look at a few examples of both using them by themselves and in combination with other functions.
The Excel FIND function
The Excel FIND function returns the position of one text string inside another as a number. Here is the syntax for the FIND function:
FIND (find_text, text_to_search, [start_num])
Here are the parameter definitions:
• find_text – The text to find.
• text_to_search – The text to search.
• start_num – [optional] The starting position in the text to search. By default, it starts at 1.
So if we had a cell called A2 that has the value of “Independence” in it, we could use the following formula in another cell:
FIND('n', A2)
This formula would return 2.
The FIND function is often combined with other Excel functions, for example, to extract the first name of a person from a full name. First, you would find the first space in the string, which will return a number. Then you can use that number along with the Excel LEFT function to retrieve the first name. We will look at that more in detail when we look at the LEFT function next.
The Excel LEFT function
The Excel LEFT function returns a specific number of characters from the left side of a string as specified by the user. Here is the syntax for the Excel LEFT function:
LEFT (text, [num_chars])
Here are the definitions of the parameters:
• text – The text to extract characters from.
• num_chars – [optional] The number of characters to extract, starting on the left side of the text. The default number is 1.
For an example of using LEFT, let’s say that we have a worksheet that has full names in one column, and we want to extract the first name into another column. In other words, we want to extract all the characters before the space that separates the first name and the last name.
So if the name “Bob Smith” is cell A2, we first need to find the space. Here is the formula we need to do that:
FIND (" ",A2)
Then we can use the numeric value that this returns in a LEFT function to extract the first name:
LEFT (A2, FIND(" ",A2) - 1)
Since the FIND function we used will return the location of the space, we subtract one from the value it returns to get the position of the last letter of the first name. For the cell containing “Bob Smith,” this formula will return “Bob.”
The Excel LEN function
The Excel LEN function is a simple function that returns the number of characters in a string. Here is the syntax of the Excel LEN function, where text is the string we want to calculate the length:
LEN (text)
If we run this function on the cell A2 that has the text “Bob Smith,” it would look like this:
LEN (A2)
For “Bob Smith,” this would return 9. When we look at the RIGHT function next, we will use the LEN function and the FIND function in combination with it to extract last names from a list of full names.
The Excel RIGHT function
The Excel RIGHT function is similar to the Excel LEFT function except that it returns a specific number of characters that a user specifies from the right side of the string instead of from the left side. Here is the syntax for the Excel RIGHT function:
RIGHT (text, [num_chars])
Here are the definitions of the parameters:
• text – The text to extract characters from.
• num_chars – [optional] The number of characters to extract, starting on the left side of the text. The default number is 1.
Since we already use the Excel LEFT function to extract the first name from a full name, let’s use the RIGHT function to extract the last name. We will have to use the LEN function first to get the entire length of the name.
LEN (A2)
We can also use the FIND function to find the location of the space in the full name just like we did to retrieve the first name:
FIND (" ", A2)
We can finally use the values that these two functions return, along with the RIGHT function to extract the last name.
RIGHT (A2, LEN (A2) - FIND (" ", A2))
If we had “Bob Smith” in cell A2, this would return “Smith.”
The Excel MID function
The Excel MID function is similar to both the LEFT and RIGHT functions and is useful if you want to extract text from the middle of a string. Here is the syntax for the MID function:
MID (text, start_num, num_chars)
Here are the definitions of the parameters:
• text – The text to extract data from.
• start_num – The location of the first character to extract.
• num_chars – The total number of characters to extract.
We can actually use the MID function to return the first name from a cell that contains both first and last names if we need to, since we know we need to start with the first character and stop a character before the first space. Here is how we would create a formula to extract the first name from cell A2, which contains the name “Bob Smith.” Here is that formula:
MID (A2, 1, FIND(" ",A2) - 1)
This would return “Bob,” just like the example of using the LEFT function.
The Excel TRIM function
The Excel TRIM function is a useful function for normalizing the text data in your spreadsheet. TRIM will automatically remove space at the start and end of a given string, leaving only one space between all the words in the string. Here is the syntax of the TRIM function:
TRIM (text)
Above, text refers to the string that you want to remove whitespace from. So if you have “The Sun Also Rises” in the A2 cell of a spreadsheet and apply the following formula to another cell, it would look like this:
TRIM (A2)
This would return “The Sun Also Rises.”
The Excel PROPER function
The Excel PROPER function converts text to title case. In other words, it sets the first character of each word to uppercase and all the other letters to lowercase. Here is the syntax of the PROPER function:
PROPER (text)
In this case, text is the string that you want to convert. This function would have been convenient in our list of names if we didn’t already capitalize them. If we had “bob smith” in cell A2 of a worksheet, we could use the following formula to convert it to “Bob Smith”:
PROPER (A2)
The Excel UPPER function
The Excel UPPER function also changes the case of characters in a string. It will convert all the text passed to it to uppercase. The syntax of the UPPER function is the following:
UPPER (text)
The text within the parentheses is the string that you want to convert to uppercase. If we had “John Smith” in cell A2 of an Excel worksheet, the following formula would convert it to “JOHN SMITH”:
UPPER (A2)
The Excel LOWER function
The Excel LOWER function also changes the case of characters in a string. It will convert all the text passed to it to lowercase. The syntax of the LOWER function is the following:
LOWER (text)
The text here indicates the string that you want to convert to lowercase. If we had “Jim Smith” in cell A2 of an Excel worksheet, the following formula would convert it to “jim smith”:
LOWER (A2)
Top courses in Office Productivity
The Excel SUBSTITUTE function
The Excel SUBSTITUTE function will replace text found in a given string with other text. Here is the syntax of the Excel SUBSTITUTE function:
SUBSTITUTE (text, old_text, new_text, [instance])
Here is the definition of the parameters:
• text – The text you want to modify.
• old_text – The text to replace.
• new_text – The text to replace it with.
• instance – The specific instance to replace. This is optional, but note that Excel will replace every single instance the word appears with the new_text if the parameter doesn’t have an instance.
An example of using SUBSTITUTE would be a spreadsheet with a column of phone numbers. If the phone numbers have dashes in them and you wanted to remove them, you could use the following formula:
SUBSTITUTE (A2, "-", "")
There is not much to the formula, but if we have 888-888-8888 in cell A2, it will return 8888888888.
Conclusion
The data in an Excel spreadsheet may not look the way you want it to. Dates and numbers may not have a consistent format. Some values may have extra spaces in them. Excel text functions allow you to format the data in your worksheets the way you want them to look. The Excel TEXT function is helpful for formatting dates, currency, and other numbers. For more advanced text formatting, you can browse the text section of the Excel Formula Builder and find useful functions like FIND, LEFT, RIGHT, and others that will take your Excel text formatting to the next level.For more information on the advanced use of Excel, check out our overview of the most important functions that every professional should know. If you’re ready to take a closer look at another function, let’s move on to the SUMIF statement.