Свойства текста в excel

С помощью функции ТЕКСТ можно изменить представление числа, применив к нему форматирование с кодами форматов. Это полезно в ситуации, когда нужно отобразить числа в удобочитаемом виде либо объединить их с текстом или символами.

Примечание: Функция ТЕКСТ преобразует числа в текст, что может затруднить их использование в дальнейших вычислениях. Рекомендуем сохранить исходное значение в одной ячейке, а функцию ТЕКСТ использовать в другой. Затем, если потребуется создать другие формулы, всегда ссылайтесь на исходное значение, а не на результат функции ТЕКСТ.

Синтаксис

ТЕКСТ(значение; формат)

Аргументы функции ТЕКСТ описаны ниже.

Имя аргумента

Описание

значение

Числовое значение, которое нужно преобразовать в текст.

формат

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

Общие сведения

Самая простая функция ТЕКСТ означает следующее:

  • =ТЕКСТ(значение, которое нужно отформатировать; «код формата, который требуется применить»)

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

Формула

Описание

=ТЕКСТ(1234,567;«# ##0,00 ₽»)

Денежный формат с разделителем групп разрядов и двумя разрядами дробной части, например: 1 234,57 ₽. Обратите внимание: Excel округляет значение до двух разрядов дробной части.

=ТЕКСТ(СЕГОДНЯ();«ДД.ММ.ГГ»)

Сегодняшняя дата в формате ДД/ММ/ГГ, например: 14.03.12

=ТЕКСТ(СЕГОДНЯ();«ДДДД»)

Сегодняшний день недели, например: понедельник

=ТЕКСТ(ТДАТА();«ЧЧ:ММ»)

Текущее время, например: 13:29

=ТЕКСТ(0,285;«0,0 %»)

Процентный формат, например: 28,5 %

=ТЕКСТ(4,34; «# ?/?»)

Дробный формат, например: 4 1/3

=СЖПРОБЕЛЫ(ТЕКСТ(0,34;«# ?/?»))

Дробный формат, например: 1/3 Обратите внимание: функция СЖПРОБЕЛЫ используется для удаления начального пробела перед дробной частью.

=ТЕКСТ(12200000;«0,00E+00»)

Экспоненциальное представление, например: 1,22E+07

=ТЕКСТ(1234567898;«[<=9999999]###-####;(###) ###-####»)

Дополнительный формат (номер телефона), например: (123) 456-7898

=ТЕКСТ(1234;«0000000»)

Добавление нулей в начале, например: 0001234

=ТЕКСТ(123456;«##0° 00′ 00»»)

Пользовательский формат (широта или долгота), например: 12° 34′ 56»

Примечание: Функцию ТЕКСТ можно использовать для изменения форматирования, но это не единственный способ. Чтобы изменить форматирование без формулы, нажмите клавиши CTRL+1 (на компьютере Mac — Изображение значка кнопки команд в Mac+1), а затем в диалоговом окне Формат ячеек на вкладке Число выберите нужный формат.

Скачивание образцов

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

Скачать примеры применения функции ТЕКСТ

Другие доступные коды форматов

Просмотреть другие доступные коды форматов можно в диалоговом окне Формат ячеек.

  1. Нажмите клавиши CTRL+1 (на компьютере Mac — Изображение значка кнопки команд в Mac+1), чтобы открыть диалоговое окно Формат ячеек.

  2. На вкладке Число выберите нужный формат.

  3. Выберите пункт (все форматы).

  4. Нужный код формата будет показан в поле Тип. В этом случае выделите всё содержимое поля Тип, кроме точки с запятой (;) и символа @. В примере ниже выделен и скопирован только код ДД.ММ.ГГГГ.

  5. Нажмите клавиши CTRL+C, чтобы скопировать код формата, а затем — кнопку Отмена, чтобы закрыть диалоговое окно Формат ячеек.

  6. Теперь осталось нажать клавиши CTRL+V, чтобы вставить код формата в функцию ТЕКСТ. Пример: =ТЕКСТ(B2;»ДД.ММ.ГГГГ«). Обязательно заключите скопированный код формата в кавычки («код формата»), иначе в Excel появится сообщение об ошибке.

Пример использования диалогового окна "Формат" > "Ячейки" > "Число" > "Другое" для получения строк формата.

Коды форматов по категориям

В примерах ниже показано, как применить различные числовые форматы к значениям следующим способом: открыть диалоговое окно Формат ячеек, выбрать пункт (все форматы) и скопировать нужный код формата в формулу с функцией ТЕКСТ.

Почему программа Excel удаляет нули в начале?

Excel воспринимает последовательность цифр, введенную в ячейку, как число, а не как цифровой код, например артикул или номер SKU. Чтобы сохранить нули в начале последовательностей цифр, перед вставкой или вводом значений примените к соответствующему диапазону ячеек текстовый формат. Выделите столбец или диапазон, в который нужно поместить значения, нажмите клавиши CTRL+1, чтобы открыть диалоговое окно Формат ячеек, и выберите на вкладке Число пункт Текстовый. Теперь программа Excel не будет удалять нули в начале.

Если вы уже ввели данные и Excel удалил начальные нули, вы можете снова добавить их с помощью функции ТЕКСТ. Создайте ссылку на верхнюю ячейку со значениями и используйте формат =ТЕКСТ(значение;»00000″), где число нулей представляет нужное количество символов. Затем скопируйте функцию и примените ее к остальной части диапазона.

Примеры использования функции ТЕКСТ для добавления начальных нулей:  =ТЕКСТ(A2;"00000")

Если по какой-либо причине потребуется преобразовать текстовые значения обратно в числа, можно умножить их на 1 (например: =D4*1) или воспользоваться двойным унарным оператором (—), например: =—D4.

В Excel группы разрядов разделяются пробелом, если код формата содержит пробел, окруженный знаками номера (#) или нулями. Например, если используется код формата «# ###», число 12200000 отображается как 12 200 000.

Пробел после заполнителя цифры задает деление числа на 1000. Например, если используется код формата «# ###,0 «, число 12200000 отображается в Excel как 12 200,0.

Примеры функции ТЕКСТ с разделителем групп разрядов

Примечания: 

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

  • Разделитель групп разрядов можно применять в числовых, денежных и финансовых форматах.

Ниже показаны примеры стандартных числовых (только с разделителем групп разрядов и десятичными знаками), денежных и финансовых форматов. В денежном формате можно добавить нужное обозначение денежной единицы, и значения будут выровнены по нему. В финансовом формате символ рубля располагается в ячейке справа от значения (если выбрать обозначение доллара США, то эти символы будут выровнены по левому краю ячеек, а значения — по правому). Обратите внимание на разницу между кодами денежных и финансовых форматов: в финансовых форматах для отделения символа денежной единицы от значения используется звездочка (*).

Примеры функции ТЕКСТ с числовыми, денежными и финансовыми форматами

Чтобы получить код формата для определенной денежной единицы, сначала нажмите клавиши CTRL+1 (на компьютере Mac — Изображение значка кнопки команд в Mac+1) и выберите нужный формат, а затем в раскрывающемся списке Обозначение выберите символ.

Выбор обозначения денежной единицы в диалоговом окне "Формат ячеек"

После этого в разделе Числовые форматы слева выберите пункт (все форматы) и скопируйте код формата вместе с обозначением денежной единицы.

Функция ТЕКСТ — пользовательский денежный формат с обозначением денежной единицы

Примечание: Функция ТЕКСТ не поддерживает форматирование с помощью цвета. Если скопировать в диалоговом окне «Формат ячеек» код формата, в котором используется цвет, например «# ##0,00 ₽;[Красный]# ##0,00 ₽», то функция ТЕКСТ воспримет его, но цвет отображаться не будет.

Способ отображения дат можно изменять, используя сочетания символов «Д» (для дня), «М» (для месяца) и «Г» (для года).

Коды форматов для месяца, дня и года

В функции ТЕКСТ коды форматов используются без учета регистра, поэтому допустимы символы «М» и «м», «Д» и «д», «Г» и «г».

Способ отображения времени можно изменить с помощью сочетаний символов «Ч» (для часов), «М» (для минут) и «С» (для секунд). Кроме того, для представления времени в 12-часовом формате можно использовать символы «AM/PM».

Форматы времени (часы, минуты и секунды)

Если не указывать символы «AM/PM», время будет отображаться в 24-часовом формате.

В функции ТЕКСТ коды форматов используются без учета регистра, поэтому допустимы символы «Ч» и «ч», «М» и «м», «С» и «с», «AM/PM» и «am/pm».

Для отображения десятичных значений можно использовать процентные (%) форматы.

Коды форматов для процентов

Десятичные числа можно отображать в виде дробей, используя коды форматов вида «?/?».

Коды форматов для дробей

Экспоненциальное представление — это способ отображения значения в виде десятичного числа от 1 до 10, умноженного на 10 в некоторой степени. Этот формат часто используется для краткого отображения больших чисел.

Коды форматов для экспоненциального представления

В Excel доступны четыре дополнительных формата:

  • «Почтовый индекс» («00000»);

  • «Индекс + 4» («00000-0000»);

  • «Номер телефона» («[<=9999999]###-####;(###) ###-####»);

  • «Табельный номер» («000-00-0000»).

Дополнительные форматы для функции ТЕКСТ

Дополнительные форматы зависят от региональных параметров. Если же дополнительные форматы недоступны для вашего региона или не подходят для ваших нужд, вы можете создать собственный формат, выбрав в диалоговом окне Формат ячеек пункт (все форматы).

Типичный сценарий

Функция ТЕКСТ редко используется сама по себе, а чаще применяется в сочетании с чем-то еще. Предположим, что вы хотите объединить текст и числовое значение, например, чтобы получить строку «Отчет напечатан 14.03.12» или «Еженедельный доход: 66 348,72 ₽». Такие строки можно ввести вручную, но суть в том, что Excel может сделать это за вас. К сожалению, при объединении текста и форматированных чисел, например дат, значений времени, денежных сумм и т. п., Excel убирает форматирование, так как неизвестно, в каком виде нужно их отобразить. Здесь пригодится функция ТЕКСТ, ведь с ее помощью можно принудительно отформатировать числа, задав нужный код формата, например «ДД.ММ.ГГГГ» для дат.

В примере ниже показано, что происходит, если попытаться объединить текст и число, не применяя функцию ТЕКСТ. Мы используем амперсанд (&) для сцепления текстовой строки, пробела (» «) и значения: =A2&» «&B2.

Пример объединения текста без функции ТЕКСТ

Вы видите, что значение даты, взятое из ячейки B2, не отформатировано. В следующем примере показано, как применить нужное форматирование с помощью функции ТЕКСТ.

Пример объединения текста с помощью функции ТЕКСТ

Вот обновленная формула:

  • ячейка C2:=A2&» «&ТЕКСТ(B2;»дд.мм.гггг») — формат даты.

Вопросы и ответы

Да, вы можете использовать функции ПРОПИСН, СТРОЧН и ПРОПНАЧ. Например, формула =ПРОПИСН(«привет») возвращает результат «ПРИВЕТ».

Да, но для этого необходимо выполнить несколько действий. Сначала выделите нужные ячейки и нажмите клавиши CTRL+1, чтобы открыть диалоговое окно Формат ячеек. Затем на вкладке Выравнивание в разделе «Отображение» установите флажок Переносить по словам. После этого добавьте в функцию ТЕКСТ код ASCII СИМВОЛ(10) там, где нужен разрыв строки. Вам может потребоваться настроить ширину столбца, чтобы добиться нужного выравнивания.

Пример использования функций ТЕКСТ и СИМВОЛ(10) для вставки разрыва строки: ="Сегодня "&СИМВОЛ(10)&ТЕКСТ(СЕГОДНЯ();"ММ.ДД.ГГ")

В этом примере использована формула =»Сегодня: «&СИМВОЛ(10)&ТЕКСТ(СЕГОДНЯ();»ДД.ММ.ГГ»).

Это экспоненциальное представление числа. Excel автоматически приводит к такому виду числа длиной более 12 цифр, если к ячейкам применен формат Общий, и числа длиннее 15 цифр, если выбран формат Числовой. Если вы вводите длинные цифровые строки, но не хотите, чтобы они отображались в таком виде, то сначала примените к соответствующим ячейкам формат Текстовый.

См. также

Создание и удаление пользовательских числовых форматов

Преобразование чисел из текстового формата в числовой

Функции Excel (по категориям)

Для удобства работы с текстом в Excel существуют текстовые функции. Они облегчают обработку сразу сотен строк. Рассмотрим некоторые из них на примерах.

Примеры функции ТЕКСТ в Excel

Преобразует числа в текст. Синтаксис: значение (числовое или ссылка на ячейку с формулой, дающей в результате число); формат (для отображения числа в виде текста).

Самая полезная возможность функции ТЕКСТ – форматирование числовых данных для объединения с текстовыми данными. Без использования функции Excel «не понимает», как показывать числа, и преобразует их в базовый формат.

Покажем на примере. Допустим, нужно объединить текст в строках и числовые значения:

Выручка.

Использование амперсанда без функции ТЕКСТ дает «неадекватный» результат:

Плохой пример.

Excel вернул порядковый номер для даты и общий формат вместо денежного. Чтобы избежать подобного результата, применяется функция ТЕКСТ. Она форматирует значения по заданию пользователя.

ТЕКСТ.

Формула «для даты» теперь выглядит так:

Второй аргумент функции – формат. Где брать строку формата? Щелкаем правой кнопкой мыши по ячейке со значением. Нажимаем «Формат ячеек». В открывшемся окне выбираем «все форматы». Копируем нужный в строке «Тип». Вставляем скопированное значение в формулу.

Формат ячеек.

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

Числа.

Если нужно вернуть прежние числовые значения (без нулей), то используем оператор «—»:

Оператор 2 минуса.

Обратите внимание, что значения теперь отображаются в числовом формате.



Функция разделения текста в Excel

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

  • ЛЕВСИМВ (текст; кол-во знаков) – отображает заданное число знаков с начала ячейки;
  • ПРАВСИМВ (текст; кол-во знаков) – возвращает заданное количество знаков с конца ячейки;
  • ПОИСК (искомый текст; диапазон для поиска; начальная позиция) – показывает позицию первого появления искомого знака или строки при просмотре слева направо

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

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

ФИО.

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

Формула для извлечения фамилии:

ПРАВСИМВ.

С помощью функции ПОИСК Excel определяет количество знаков для функции ПРАВСИМВ. Функция ДЛСТР «считает» общую длину текста. Затем отнимается количество знаков до первого пробела (найденное ПОИСКом).

Вторая строка содержит имя, отчество и фамилию. Для имени используем такую же формулу:

ЛЕВСИМВ.

Формула для извлечения фамилии несколько иная: Это пять знаков справа. Вложенные функции ПОИСК ищут второй и третий пробелы в строке. ПОИСК(» «;A3;1) находит первый пробел слева (перед отчеством). К найденному результату добавляем единицу (+1). Получаем ту позицию, с которой будем искать второй пробел.

Часть формулы – ПОИСК(» «;A3;ПОИСК(» «;A3;1)+1) – находит второй пробел. Это будет конечная позиция отчества.

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

Формула «для отчества» строится по тем же принципам:

ПСТР.

Функция объединения текста в Excel

Для объединения значений из нескольких ячеек в одну строку используется оператор амперсанд (&) или функция СЦЕПИТЬ.

Например, значения расположены в разных столбцах (ячейках):

ФИО 2.

Ставим курсор в ячейку, где будут находиться объединенные три значения. Вводим равно. Выбираем первую ячейку с текстом и нажимаем на клавиатуре &. Затем – знак пробела, заключенный в кавычки (“ “). Снова — &. И так последовательно соединяем ячейки с текстом и пробелы.

Получаем в одной ячейке объединенные значения:

Объединение.

Использование функции СЦЕПИТЬ:

СЦЕПИТЬ.

С помощью кавычек в формуле можно добавить в конечное выражение любой знак или текст.

Функция ПОИСК текста в Excel

Функция ПОИСК возвращает начальную позицию искомого текста (без учета регистра). Например:

СЦЕПИТЬ.

Функция ПОИСК вернула позицию 10, т.к. слово «Захар» начинается с десятого символа в строке. Где это может пригодиться?

Функция ПОИСК определяет положение знака в текстовой строке. А функция ПСТР возвращает текстовые значения (см. пример выше). Либо можно заменить найденный текст посредством функции ЗАМЕНИТЬ.

Скачать пример функции для работы с текстом в Excel

Читайте так же: как перевести число и сумму прописью.

Синтаксис функции ПОИСК:

  • «искомый текст» — что нужно найти;
  • «просматриваемый текст» — где искать;
  • «начальная позиция» — с какой позиции начинать искать (по умолчанию – 1).

Если нужно учитывать регистр, используется функция НАЙТИ.

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

​Смотрите также​60166​60078​-​ (нуль);​ качестве примера использования​ЛЕВСИМВ(B5;НАЙТИ(«3»;B5)+1) – функция, выделяющая​Функция ПОИСК определяет положение​ первого пробела (найденное​ правой кнопкой мыши​ выполняет функцию возврата​ начинается с символа,​ Каждый из них​ кнопкой мыши, выберите​​ «Word».​​ Строка задается как​

СЦЕПИТЬ

​возвращает заданное количество​Excel предлагает большое количество​Преобразования текстовых строк​Манипулирования целыми строками​Работы с двухбайтовыми символами​​при аргументах: («текст»;15/7) вернет​​ функции ЛЕВСИМВ. Для​ часть текстовой строки​ знака в текстовой​

Текстовые функции в Excel

СТРОЧН

​ ПОИСКом).​ по ячейке со​ числа, которое представляет​ который указан по​ определяется следующим образом:​ команду​​Вот и все! Мы​​ первый аргумент функции,​ символов, начиная с​ функций, с помощью​

Текстовые функции в Excel

ПРОПИСН

​Удаляет из текста лишние​​Повторяет текст заданное число​​Возвращает количество байтов в​ значение «те».​ расчетов лучше использовать​ слева, количество символов​ строке. А функция​​Вторая строка содержит имя,​​ значением. Нажимаем «Формат​ собой вхождение первого​

Текстовые функции в Excel

ПРОПНАЧ

​ счету, на новый​​Под текстом подразумевается строка​​Формат ячеек​ познакомились с 15-ю​ а количество повторов​ указанной позиции. Пробел​

Текстовые функции в Excel

​ которых можно обрабатывать​ пробелы​ раз​ текстовой строке​Примечание 2: в Excel​

Текстовые функции в Excel

ДЛСТР

​ встроенную функцию ОКРГУГЛ​ в которой соответствуют​ ПСТР возвращает текстовые​ отчество и фамилию.​ ячеек». В открывшемся​​ символа находящегося в​​ текст. Выглядит она​

Текстовые функции в Excel

ЛЕВСИМВ и ПРАВСИМВ

​ или ссылка на​​и в диалоговом​​ текстовыми функциями Microsoft​​ как второй.​​ считается за символ.​ текст. Область применения​СИМВОЛ​ПОДСТАВИТЬ​ДЛСТР​

Текстовые функции в Excel

Текстовые функции в Excel

ПСТР

​ также существует схожая​​ и подобные ей.​​ порядковому номеру символа​ значения (см. пример​ Для имени используем​ окне выбираем «все​

Текстовые функции в Excel

СОВПАД

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

Текстовые функции в Excel

​ «3» (функция НАЙТИ​ выше). Либо можно​ такую же формулу:​ форматы». Копируем нужный​ В том случае,​ текст; начальная позиция;​ информацию.​

Текстовые функции в Excel

СЖПРОБЕЛЫ

​Формат ячеек​ их действие на​НАЙТИ​

Текстовые функции в Excel

​СОВПАД​ ограничивается исключительно текстом,​60159​60168​60080​ функция ЛЕВБ, возвращающая​ с прочими функциями​ выполняет поиск порядкового​ заменить найденный текст​Формула для извлечения фамилии​ в строке «Тип».​ если данные не​ количество знаков; новый​Начальная позиция​на вкладке​​ простых примерах. Надеюсь,​​находит вхождение одной​​позволяет сравнить две​​ они также могут​Преобразования типов данных​

Текстовые функции в Excel

​Поиска и замены​​Манипулирования целыми строками​​ определенное количество символов​ для работы с​ номера этого символа​ посредством функции ЗАМЕНИТЬ.​ несколько иная: Это​

Текстовые функции в Excel

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

ПОВТОР

​ пять знаков справа.​​ в формулу.​​ числа происходит возврат​Рассмотрим по отдельности каждый​ с которого будет​настройте нужные параметры​ пришелся Вам как​ и возвращает положение​

Текстовые функции в Excel

НАЙТИ

​ Excel. Если они​​ ячейками, содержащими числа.​​ коду​ старый текст новым​ текстовой строке​ на основе определенного​ Excel (ПРАВСИМВ, СИМВОЛ,​ значение). Единица (+1)​

Текстовые функции в Excel

​ работы с текстом​ Вложенные функции ПОИСК​

Текстовые функции в Excel

​Приведем еще пример, где​ ошибки «#ЗНАЧ!».​ из аргументов данной​ выполняться возвращение строки.​ форматирования (см. здесь). ​ раз кстати, и​ первого символа искомой​​ в точности совпадают,​​ В рамках данного​СОВПАД​ПОИСК​ДОЛЛСША**​

Текстовые функции в Excel

ПОИСК

​ количества байтов. Если​​ СЦЕПИТЬ, ДЛСТР и​​ добавлена для выделения​ в Excel​​ ищут второй и​​ может быть полезна​Вот ее форма в​ текстовой функции в​​Количество знаков​​Одной из самых полезных​ Вы получили от​

Текстовые функции в Excel

Текстовые функции в Excel

ПОДСТАВИТЬ

​ фразы относительно начала​ то возвращается значение​ урока мы на​EXACT​​SEARCH​​USDOLLAR​ по умолчанию используется​ прочими) и имеет​ всего кода ошибки.​

​Читайте так же: как​ третий пробелы в​ данная функция. Добавим​

Текстовые функции в Excel

​ документе. Но без​ Excel:​

Текстовые функции в Excel

​представляет собой целое​ свойств функции ТЕКСТ()​

Текстовые функции в Excel

ЗАМЕНИТЬ

​ него хотя бы​ текста.​ ИСТИНА, в противном​ примерах рассмотрим 15​60165​​60130​​-​ язык с поддержкой​ следующую синтаксическую запись:​2 – количество символов,​

​ перевести число и​ строке. ПОИСК(» «;A3;1)​ нули в начале​ конкретных аргументов: =НАЙТИ(искомый​Ссылка на конкретную ячейку​ натуральное число, указывающее​ является возможность отображения​ малость полезной информации.​

Текстовые функции в Excel

​Данная функция чувствительна к​ случае – ЛОЖЬ.​ наиболее распространенных функций​Манипулирования целыми строками​

Текстовые функции в Excel

​Поиска и замены​Преобразования типов данных​ двухбайтовой кодировки, для​=ЛЕВСИМВ(текст;[число_знаков])​ которые вернет функция​ сумму прописью.​ находит первый пробел​ числа. Если ввести​ текст; текст для​ или строка, содержащая​ объем символов, который​ в текстовой строке​ Всего доброго и​ регистру…​ Данная текстовая функция​

​ Excel из категории​

office-guru.ru

Функция ТЕКСТ() в MS EXCEL

​Проверяет идентичность двух текстов​Ищет вхождение одного текста​Преобразует число в текст,​ получения первого символа​Описание аргументов:​ ПРАВСИМВ, работающая аналогично​Синтаксис функции ПОИСК:​ слева (перед отчеством).​ вручную, Excel их​ поиска; нач. позиция).​ занесенную ранее информацию,​ нужно вернуть, начиная​ чисел и дат​ успехов в изучении​… и может начинать​ учитывает регистр, но​Текстовые​СТРОЧН​ в другой (без​

​ используя денежный формат​

​ строки требуется в​

  • ​текст – ссылка на​​ рассматриваемой ЛЕВСИМВ (отличие​«искомый текст» — что​ К найденному результату​
  • ​ удалит. Поэтому введем​​Теперь рассмотрим по отдельности​ называется​ с начальной позиции.​ в нужном формате​ Excel!​ просмотр текста с​ игнорирует различие в​.​LOWER​ учета регистра)​ЗАМЕНИТЬ​

​ качестве аргумента указать​ ячейку, содержащую текст,​ – возвращает символы​ нужно найти;​ добавляем единицу (+1).​ формулу:​ все приведенные аргументы:​Старый текст.​

​Как пример можно привести​ (см. подробнее об​Автор: Антон Андронов​ указанной позиции. На​ форматировании.​Для объединения содержимого ячеек​60160​ПОИСКБ***​REPLACE​ число 2, а​ или текстовая строка,​ справа, а не​«просматриваемый текст» — где​ Получаем ту позицию,​​Если нужно вернуть прежние​​Необходимая строка представляет собой​Начальной позицией​​ следующую ситуацию. В​​ отображении чисел, дат​​Функция ТЕКСТ(), английская версия​​ рисунке ниже формула​Если регистр для Вас​

​ в Excel, наряду​Преобразования текстовых строк​SEARCHB​60167​ для получения последующих​ в которой требуется​ слева строки).​ искать;​ с которой будем​ числовые значения (без​Искомый текст.​указывается номер символа,​ ячейке А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

​ Они облегчают обработку​ текстовой функции в​ Чем-то похожа на​ работать наиболее продуктивно,​ формате или если​ заключается в том,​ просто незаменимой. На​. Она не заменяет​

​TEXT​60164​CODE​ работать и с​ строки. Например, функция​Пример 3. Создать функцию​ Excel содержатся имена​ по тем же​ начала ячейки;​ сразу сотен строк.​

​ Excel. В ячейке​ функцию под названием​ необходимо уметь разбираться​ требуется объединить числа​

Выручка.

​ что​ рисунке ниже видно,​ знаки, не являющиеся​

Плохой пример.

​60096​Извлечения символов из строк​60169​ числовыми значениями, то​ =ЛЕВСИМВ(«текст») вернет значение​ для округления дробных​ переменных вместе с​ принципам:​

ТЕКСТ.

​ПРАВСИМВ (текст; кол-во знаков)​ Рассмотрим некоторые из​

​ А1 содержится строка​ «Заменить». Но о​ с данными в​ с текстом или​ПОИСК​ что содержимое ячеек​ буквами.​Преобразования типов данных​Возвращает указанное количество символов​Преобразования типов данных​ есть обрабатывать числа​ «т».​

Формат ячеек.

​ чисел до ближайших​ текстом, определяющим их​Для объединения значений из​ – возвращает заданное​ них на примерах.​ со словом «старый».​ ней подробности будут​ строках. В этом​

Числа.

​ символами.​не чувствительна к​ А1 и B1​Текстовая функция​

Оператор 2 минуса.

​Форматирует число и преобразует​ с конца текстовой​Определяет числовой код первого​

​ как текст и​

Функция разделения текста в Excel

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

  • ​Преобразует числа в текст.​ Оно начинается с​ представлены позже. Главное​ материале будут рассмотрены​
  • ​Синтаксис​ регистру.​ абсолютно одинаково, но​ПРОПИСН​
  • ​ его в текст​ строки​ знака в текстовой​ текст как числа.​ качестве необязательного аргумента,​ использованием формул для​ выделить только названия​

​ одну строку используется​ конца ячейки;​ Синтаксис: значение (числовое​ 19-го символа и​ отличие данного варианта​

​ примеры текстовых функций​ТЕКСТ(значение; формат)​Заменяет определенный текст или​ это не так.​

ФИО.

​делает все буквы​ФИКСИРОВАННЫЙ​ПРОПИСН​ строке​Список текстовых функций:​ должно быть взято​ работы с текстом.​ переменных и записать​ оператор амперсанд (&)​ПОИСК (искомый текст; диапазон​ или ссылка на​ имеет длительность из​

​ в том, что​

ПРАВСИМВ.

​ в Excel.​Значение.​ символ на требуемое​ В ячейке А1​ прописными, т.е. преобразует​FIXED​UPPER​ЛЕВБ***​Функция​

​ из диапазона неотрицательных​Форма для округления числовых​ их в отдельный​ или функция СЦЕПИТЬ.​

ЛЕВСИМВ.

​ для поиска; начальная​ ячейку с формулой,​ шести идентичных единиц.​ он автоматически вычисляет​Чтобы найти их в​  Численное значение или​ значение. В Excel​ мы намеренно поставили​ их в верхний​60062​60161​LEFTB​Function​ чисел, то есть​

​ значений имеет следующий​ столбец.​Например, значения расположены в​ позиция) – показывает​ дающей в результате​

​ Замена происходит на​ вхождения требуемой строки​ программе, проследуйте во​ ссылка на ячейку,​ текстовую функцию​ лишний пробел в​ регистр. Так же,​

​Преобразования типов данных​Преобразования текстовых строк​-​

ПСТР.

Функция объединения текста в Excel

​id​ должно быть равным​ вид:​Исходная таблица данных:​ разных столбцах (ячейках):​

​ позицию первого появления​ число); формат (для​

ФИО 2.

​ слово «новый».​ и выполняет замену.​ вкладку под названием​ содержащую численное значение.​ПОДСТАВИТЬ​ конце слова​ как и​Форматирует число и преобразует​Делает все буквы в​Работы с двухбайтовыми символами​Подкатегория​ нулю или больше​В ячейке 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​Работы с двухбайтовыми символами​ [число_знаков] будет переданы​Первая функция ЕСЛИ проверяет​ умолчанию, поэтому функция​ текстом и нажимаем​ каждого знака. Пробелы​ объединения с текстовыми​

​ количеством ячеек, то​

Пример 2.

​Под текстом понимается ссылка​ Максимально допустимое для​

код ошибки.

​ или «# ##0,00″​

  • ​ все вхождения слова​Применив функцию​делает прописной первую​Возвращает текст формулы​Делает прописной первую букву​60163​Преобразует полуширинные (однобайтовые) английские​ текстовые данные, функция​ с помощью формулы​ возвращает первый символ.​ на клавиатуре &.​ показывают начало или​
  • ​ данными. Без использования​ данный вариант отлично​ на определенную ячейку​ соединения количество достигает​ для вывода в​ «Excel» на «Word»:​СЖПРОБЕЛЫ​

​ букву каждого слова,​

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

​** — недокументированная функция​

​ в каждом слове​Извлечения символов из строк​ буквы в полноширинные​ ЛЕВСИМВ вернет код​ ЕПУСТО, заполнена ли​ Аналогично выделим названия​ Затем – знак​ конец искомого имени.​ функции Excel «не​ сработает. Но как​ или строка, которая​

​ 255. Обратите внимание​

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

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

​ числовом формате с​Заменяет только первое вхождение​к значению ячейки​ а все остальные​ Excel​ текста​

​Возвращает указанное количество символов​ (двухбайтовые)​ ошибки #ЗНАЧ!.​

Форма.

​ ячейка, которая должна​ переменных из других​

​ пробела, заключенный в​Распределим с помощью функций​Логика формулы.

​ понимает», как показывать​

  1. ​ быть в ситуации,​ содержит эту самую​ на то, что​ разделителями разрядов и​ слова «Excel»:​ А1, мы удалим​
  2. ​ преобразует в строчные.​*** — Функции подкатегории​ПСТР​ от начала текстовой​JIS***​Если число, переданное в​
  3. ​ содержать значение, которое​ строк. В результате​ кавычки (“ “).​ имя, фамилию и​ числа, и преобразует​ когда предстоит выполнить​ информацию.​
  4. ​ проставлять пробелы здесь​

​ двумя знаками после​Удаляет все пробелы из​ из него все​Каждая первая буква, которая​работы с двухбайтовыми символами​MID​ строки​-​ качестве необязательного аргумента,​ требуется округлить.​ получим:​ Снова — &.​

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

​ отчество в разные​ их в базовый​ замену среди нескольких​Старый текст​ необходимо самостоятельно. В​ запятой. Правила форматирования​ текстовой строки:​ лишние пробелы и​

​ следует за знаком,​

​(за исключением​

  • ​60079​НАЙТИ​-​ превышает количество знаков​Если число введено, запись​Как видно на рисунке​ И так последовательно​
  • ​ столбцы.​ формат.​ тысяч строк? В​- исходный вариант​ теле «СЦЕПИТЬ» должен​ см. ниже.​

​Заменяет символы, расположенные в​

  1. ​ получим корректный результат:​ отличным от буквы,​ASC​Извлечения символов из строк​FIND​Работы с двухбайтовыми символами​ в текстовой строке,​
  2. ​ ЧЗНАЧ(ПРАВСИМВ(ЛЕВСИМВ(B2;НАЙТИ(«,»;B2)+1)) возвращает числовое​ с помощью функции​ соединяем ячейки с​В первой строке есть​Покажем на примере. Допустим,​ таком случае стоит​ данных, хранящихся в​ содержаться минимум один​Форматов для отображения чисел​ заранее известном месте​
  3. ​Функцию​ также преобразуется в​,​Извлекает определенное число знаков​60172​
  4. ​Преобразует однобайтовые английские буквы​ рассматриваемая функция вернет​ значение первого символа​ ЛЕВСИМВ получилось вытащить​ текстом и пробелы.​ только имя и​
  5. ​ нужно объединить текст​ обратиться к двум​ ячейке, которые должны​ аргумент. Рассмотрим пример​ в 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​
​60210​Преобразования типов данных​ эквивалентно числовому значению​ он имеет некоторые​
​ описание из строки.​ ​ 10, т.к. слово​ ​ знаков для функции​ ​Формула «для даты» теперь​ ​ числа, демонстрирующего объем​ отсутствия смена произойдет​
​ указанном количестве символов.​ ​ но при этом​ ​ формула заменит «2010»​ ​.​ ​ начала или с​ от языковых параметров,​
​Преобразования типов данных​ ​Преобразования текстовых строк​ ​Преобразует чисто в текст​ ​ 1);​ ​ недостатки (например, не​Исходные данные:​
​ «Захар» начинается с​ ​ ПРАВСИМВ. Функция ДЛСТР​ ​ выглядит так:​ ​ символов в тексте.​ ​ везде.​
​ Строка начинается с​ ​ оставить его числом​ ​ на «2013».​ ​Функция​ ​ конца строки. Пробел​ функция​
​Преобразует число в текст,​ ​Удаляет все непечатаемые знаки​ ​ (бат) на тайском​ ​при аргументах: («текст»;ЛОЖЬ) вернет​ ​ учтен вариант ввода​Выделим код ошибки с​
​ десятого символа в​ ​ «считает» общую длину​ ​Второй аргумент функции –​ ​ Выглядит она так:​ ​Выполняет функцию замены части​
​ отмеченного символа. Ключевые​ ​ (с которым можно​ ​Заменяет первые пять символов​ ​ПОВТОР​ ​ считается за символ.​JIS​
​ используя денежный формат​ ​ из текста​ ​ языке​ ​ пустое значение «»,​ ​ сразу целого числа).​ помощью следующей формулы:​ строке. Где это​ текста. Затем отнимается​
​ формат. Где брать​ ​ =ДЛСТР(текст).​ ​ строки в конкретном​

​ позиции (текст, начальная​ выполнять арифметические действия),​
​ текстовой строки, т.е.​​повторяет текстовую строку​​Текстовая функция​​может иметь другое​​СЖПРОБЕЛЫ​​ПОВТОР​​ДЛИНБ***​​ поскольку логическое ЛОЖЬ​​ Он приведен в​Описание:​ может пригодиться?​ количество знаков до​ строку формата? Щелкаем​При работе с текстом​ количестве символов. Процесс​ позиция, количество знаков).​ щелкните ячейку правой​ слово «Excel», на​ указанное количество раз.​ПСТР​ название.​ ​TRIM​​REPT​LENB​

excelworld.ru

​ эквивалентно числовому 0​


Функция

ТЕКСТ(

)

, английская версия TEXT()

,

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

=ТЕКСТ(100;»0,00 р.»)

вернет текстовую строку 100,00 р., а формула

=ТЕКСТ(1;»#%»)

вернет текст (не число!) 100%. Эта функция полезна, если числа требуется отобразить в более удобном формате или если требуется объединить числа с текстом или символами.


Синтаксис


ТЕКСТ(значение; формат)


  • Значение.

    Численное значение или ссылка на ячейку, содержащую численное значение.

  • Формат.

    Текстовая строка определенного вида (например, «Д.М.ГГГГ» для вывода числа в формате даты или «# ##0,00» для вывода в числовом формате с разделителями разрядов и двумя знаками после запятой. Правила форматирования см. ниже.

Форматов для отображения чисел в MS EXCEL много (например, см.

здесь

), также имеются форматы для отображения дат (например, см.

здесь

). Также приведено много форматов

в статье к функции ТЕКСТ() на сайте Microsoft

.

Функция

ТЕКСТ()

преобразует число в форматированный текст и результат больше не может быть использован в вычислениях в качестве числа. Чтобы отформатировать число, но при этом оставить его числом (с которым можно выполнять арифметические действия), щелкните ячейку правой кнопкой мыши, выберите команду

Формат ячеек

и в диалоговом окне

Формат ячеек

на вкладке

Число

настройте нужные параметры форматирования (см.

здесь

).

Одной из самых полезных свойств функции

ТЕКСТ()

является возможность отображения в текстовой строке чисел и дат в нужном формате (см. подробнее об отображении

чисел

,

дат

и

времени

). В

файле примера

приведен наглядный пример: с форматированием и без форматирования.

В

файле примера

приведено также множество других форматов.

На чтение 23 мин. Просмотров 18.7k.

VBA String Functions

Содержание

  1. Краткое руководство по текстовым функциям
  2. Введение
  3. Прочитайте это в первую очередь!
  4. Добавление строк
  5. Извлечение части строки
  6. Поиск в строке
  7. Удаление пробелов
  8. Длина строки
  9. Перевернуть текст
  10. Сравнение
  11. Сравнение строк с использованием сопоставления с шаблоном
  12. Заменить часть строки
  13. Преобразовать типы в строку (базовый)
  14. Преобразовать строку в число — CLng, CDbl, Val и т.д.
  15. Генерация строки элементов — функция строки
  16. Преобразовать регистр / юникод — StrConv, UCase, LCase
  17. Использование строк с массивами
  18. Форматирование строки
  19. Заключение

Краткое руководство по текстовым функциям

Текстовые операции Функции
Добавить две или более строки 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.

Теперь, когда вы понимаете эти два важных момента о строке, мы можем продолжить и посмотреть на строковые функции индивидуально.

Добавление строк

VBA String Functions - Smaller

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

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:

  1. Знак равенства возвращает только true или false.
  2. Вы не можете указать параметр 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 имеет два недостатка

  1. Не мультирегиональный — Val не распознает международные версии чисел, такие как запятые вместо десятичных. Поэтому вы должны использовать вышеуказанные функции преобразования, когда ваше приложение будет использоваться в нескольких регионах.
  2. Преобразует недопустимые строки в ноль — в некоторых случаях это может быть нормально, но в большинстве случаев лучше, если неверная строка вызывает ошибку. Затем приложение осознает наличие проблемы и может действовать соответствующим образом. Функции преобразования, такие как 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 Format Function

Заключение

Практически в любом типе программирования вы потратите много времени на манипулирование строками. В этой статье рассматриваются различные способы использования строк в VBA.

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

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

Like this post? Please share to your friends:
  • Свойства стиля ms word
  • Свойства ссылок в excel
  • Свойства ссылки в word
  • Свойства списков в word
  • Свойства списка в excel