Содержание
- Как добавить текст в начало или конец всех ячеек в Excel?
- Добавить указанный текст в начало/конец всех ячеек с формулы
- добавить один и тот же текст в определенное место каждой ячейки в Excel
- Добавить указанный текст в начало /конец всех ячеек с помощью VBA
- Добавить указанный текст в начало/конец всех ячеек с помощью Kutools for Excel
- Добавьте указанный текст в указанную позицию всех ячеек с помощью Kutools for Excel
- Работа со строками excel
- Функции Excel для работы с элементами строк
- Функции НАЙТИ и ПОИСК
- Функции ПРАВСИМВ и ЛЕВСИМВ
- Функция ПСТР
- Функции ЗАМЕНИТЬ и ПОДСТАВИТЬ
- Функция ПОВТОР
- Функция СЦЕПИТЬ
- Текстовые функции Excel
- Функция ЛЕВСИМВ
- Функция ПРАВСИМВ
- Функция ДЛСТР
- Функция НАЙТИ
- Функция ЗАМЕНИТЬ
- Функция ПОДСТАВИТЬ
- Функция ПСТР
- Функция СЖПРОБЕЛЫ
- Функция СЦЕПИТЬ
- Канал в Telegram
- Работа со строками в Excel. Текстовые функции Excel
- Функции категории «Текстовые»
- Текстовые функции Excel в примерах
- ЛЕВСИМВ и ПРАВСИМВ
- ПОДСТАВИТЬ
- Функции VBA для работы с текстом
Как добавить текст в начало или конец всех ячеек в Excel?
Иногда вам может потребоваться добавить один и тот же конкретный текст в начало или конец всех ячеек в выделенном фрагменте. Если вы добавляли текст в каждую ячейку вручную по одной, это должно занять много времени. Есть ли способы попроще? Да, есть много простых приемов для добавления одного и того же текста в начало или конец всех ячеек в выделенном фрагменте.
Добавить указанный текст в начало/конец всех ячеек с формулами
Добавить указанный текст в начало/конец всех ячеек с помощью VBA
Добавить указанный текст до начала/конца всех эллов с помощью Kutools for Excel
Добавить указанный текст в указанную позицию всех ячеек с помощью Kutools for Excel
Добавить указанный текст в начало/конец всех ячеек с формулы
Есть две формулы для добавления указанного текста в начало или конец всех выбранных ячеек в Microsoft Excel.
Метод 1: & формула
Введите = “Class A:” & A2 в ячейку C2, а затем перетащите маркер заполнения вниз к ячейкам вы хотите применить эту формулу. И конкретный текст был добавлен перед всеми ячейками, см. Снимок экрана:
Метод 2: формула объединения
Введите = Concatenate (“Class A:”, A2) в ячейке C2, а затем перетащите и скопируйте эту формулу в ячейки, которые вы хотите использовать, см. снимок экрана:
Примечания:
1. Если вы хотите добавить другой указанный текст в каждую ячейку, просто замените Класс A: своим текстом в обеих формулах.
2. Формулы = A2 & “: Class A” и = Concatenate (A2, “: Class A”) добавят : класс A в конце ячеек.
3. Обе формулы не изменяют содержимое выделения напрямую.
добавить один и тот же текст в определенное место каждой ячейки в Excel
Как можно добавить текст или символы в начало нескольких ячеек, или добавить текст или символы в конец ячеек или вставить текст или символы между существующим текстом? С помощью Добавить текст утилиты Kutools for Excel, вы можете быстро применить следующие операции:. Нажмите, чтобы получить полнофункциональную бесплатную пробную версию через 30 дней! Kutools for Excel: с более чем 300 удобными надстройками Excel, попробуйте бесплатно без ограничений в течение 30 дней в будущем.
Добавить указанный текст в начало /конец всех ячеек с помощью VBA
Если вы хотите добавить указанный текст непосредственно в каждую ячейку выделенного фрагмента, следующий макрос VBA упростит вашу работу.
1 . Выберите диапазон, в который вы добавите указанный текст;
2 . Удерживая нажатыми клавиши Alt + F11 в Excel, откроется окно Microsoft Visual Basic для приложений .
3 . Щелкните Insert > Module и вставьте следующий код VBA в окно модуля.
VBA: Добавление указанного текста в начало каждой ячейки:
4 . Нажмите клавишу F5 , чтобы запустить этот макрос. И ко всем ячейкам будет добавлено значение CN- перед содержимым ячейки.
Примечания: 1. Чтобы добавить определенный текст в конце каждой ячейки, пожалуйста, примените следующий код VBA.
VBA: добавление указанного текста в конец каждой ячейки:
И вы получите следующий результат:
2. вы можете изменить переменную « CN- » или « -CN » из приведенных выше кодов.
Добавить указанный текст в начало/конец всех ячеек с помощью Kutools for Excel
Инструмент Kutools for Excel поможет вам быстро добавить указанный текст в начало или конец каждой ячейки. в выбранном.
После установки Kutools for Excel, сделайте следующее: (Загрузите Kutools for Excel сейчас бесплатно!)
1 . Выберите диапазон, в который вы добавите указанный текст.
2 . Нажмите Kutools > > . См. Снимок экрана:
3 . В диалоговом окне введите текст, который необходимо добавить, в поле .
(1.) Если вы установите флажок из раздела , и конкретный текст будет добавлен перед всеми значениями ячеек, см. снимок экрана:
(2. ) Если вы отметите в разделе , и конкретный текст будет добавлен в конце значений ячеек, см. Снимок экрана:
Примечания:
1. Инструмент Kutools for Excel позволяет вам предварительно просмотреть изменения в выборе в разделе предварительного просмотра.
2. Если вы отметите опцию , этот инструмент не будет добавлять указанный текст в ячейки с нетекстовым содержимым.
Добавьте указанный текст в указанную позицию всех ячеек с помощью Kutools for Excel
Применяя ‘s , вы можете не только добавить указанный текст в начало или конец ячеек, но также можете добавить указанный текст в указанное положение ячеек.
После установки Kutools for Excel, сделайте следующее: (Бесплатная загрузка Kutools for Excel прямо сейчас!)
1 . Выберите диапазон, в который вы хотите добавить текст, а затем нажмите Kutools > > .
2 . Появится диалоговое окно , в котором введите указанный текст и укажите определенную позицию, в которую вы хотите вставить текст в поля. См. Снимок экрана:
Здесь я ввожу 3 в текстовое поле , что означает добавление текста после третьего символа строки.
3 . Нажмите ОК или . Указанный текст был добавлен в указанную позицию ячеек. См. Снимок экрана:
Совет:
(1) В текстовое поле вы можете вводить числа через запятую, чтобы добавить текст в нескольких позициях одновременно.
(2) Если вы хотите добавить текст перед каждой прописной буквой, опция в утилите может вам помочь.
Кроме того, вы можете добавлять текст перед каждой строчной буквой или каждой цифровой буквой.
Нажмите Загрузить и бесплатную пробную версию Kutools for Excel прямо сейчас!
Источник
Работа со строками excel
Функции Excel для работы с элементами строк
Следующие функции находят и возвращают части текстовых строк или составляют большие строки из небольших: НАЙТИ (FIND), ПОИСК (SEARCH), ПРАВСИМВ (RIGHT), ЛЕВСИМВ (LEFT), ПСТР (MID), ПОДСТАВИТЬ (SUBSTITUTE), ПОВТОР (REPT), ЗАМЕНИТЬ (REPLACE), СЦЕПИТЬ (CONCATENATE).
Функции НАЙТИ и ПОИСК
Функции НАЙТИ (FIND) и ПОИСК (SEARCH) используются для определения позиции одной текстовой строки в другой. Обе функции возвращают номер символа, с которого начинается первое вхождение искомой строки. Эти две функции работают одинаково за исключением того, что функция НАЙТИ учитывает регистр букв, а функция ПОИСК допускает использование символов шаблона. Функции имеют следующий синтаксис:
=НАЙТИ(искомый_текст;просматриваемый_текст;нач_позиция)
=ПОИСК(искомый_текст;просматриваемый_текст;нач_позиция)
Аргумент искомый_текст задает текстовую строку, которую надо найти, а аргумент просматриваемый_текст — текст, в котором производится поиск. Любым из этих аргументов может быть строка символов, заключенная в двойные кавычки, или ссылка на ячейку. Необязательный аргумент нач_позиция задает позицию в просматриваемом тексте, с которой начинается поиск. Аргумент нач_позиция следует использовать в том случае, когда просматриваемый_текст содержит несколько вхождений искомого текста. Если данный аргумент опущен, Excel возвращает позицию первого вхождения.
Эти функции возвращают ошибочное значение, когда искомый_текст не содержится в просматриваемом тексте, либо нач_позиция меньши или равна нулю, либо нач_позиция превышает количество символов в просматриваемом тексте, либо нач_позиция больше позиции последнего вхождения искомого текста.
Например, чтобы определить позицию буквы «ж» в строке «Гаражные ворота», надо использовать формулу:
Эта формула возвращает 5.
Если точная последовательность символов искомого текста неизвестна, можно использовать функцию ПОИСК и включить в строку искомый_текст символы шаблона: знак вопроса (?) и звездочку (*). Знак вопроса соответствует одному произвольно набранному символу, а звездочка заменяет любую последовательность символов в указанной позиции. Например, чтобы найти позицию имен Анатолий, Алексей, Акакий в тексте, находящемся в ячейке А1, надо использовать формулу:
Функции ПРАВСИМВ и ЛЕВСИМВ
Функция ПРАВСИМВ (RIGHT) возвращает крайние правые символы строки аргумента, в то время как функция ЛЕВСИМВ (LEFT) возвращает первые (левые) символы. Синтаксис:
=ПРАВСИМВ(текст;количество_символов)
=ЛЕВСИМВ(текст;количество_символов)
Аргумент количество_символов задает число символов, извлекаемых из аргумента текст. Эти функции учитывают пробелы и поэтому, если аргумент текст содержит пробелы в начале или конце строки, в аргументах функций следует использовать функцию СЖПРОБЕЛЫ.
Аргумент количестов_символов должен быть больше или равен нулю. Если этот аргумент опускается, Excel считает его равным 1. Если количество_символов больше числа символов в аргументе текст, то возвращается весь аргумент.
Функция ПСТР
Функция ПСТР (MID) возвращает заданное число символов из строки текста, начиная с указанной позиции. Эта функция имеет следующий синтаксис:
=ПСТР(текст;нач_позиция;количество_символов)
Аргумент текст — это текстовая строка, содержащая извлекаемые символы, нач_позиция — это позиция первого символа, извлекаемого из текста (относительно начала строки), а количество_символов — это число извлекаемых символов.
Функции ЗАМЕНИТЬ и ПОДСТАВИТЬ
Эти две функции заменяют символы в тексте. Функция ЗАМЕНИТЬ (REPLACE) замещает часть текстовой строки другой текстовой строкой и имеет синтаксис:
=ЗАМЕНИТЬ(старый_текст;нач_позиция;количество_символов;новый_текст)
Аргумент старый_текст — это текстовая строка, а которой надо заменить символы. Следующие два аргумента задают символы, которые нужно заменить (относительно начала строки). Аргумент новый_текст задает вставляемую текстовую строку.
Например, ячейка А2 содержит текст «Вася Иванов». Чтобы поместить этот же текст в ячейку А3, заменив имя, надо в ячейку А3 вставить следующую функцию:
В функции ПОДСТАВИТЬ (SUBSTITUTE) начальная позиция и число заменяемых символов не задаются, а явно указывается замещаемый текст. Функция ПОДСТАВИТЬ имеет следующий синтаксис:
=ПОДСТАВИТЬ(текст;старый_текст;новый_текст;номер_вхождения)
Аргумент номер_вхождения является необязательным. Он предписывает Excel заменить только заданное вхождение строки старый_текст.
Например, ячейка А1 содержит текст «Ноль меньше восьми». Надо заменить слово «ноль» на «нуль».
Число 1 в этой формуле указывает, что надо изменить только первое «о» в строке ячейки А1. Если аргумент номер_вхождения опущен, Excel заменяет все вхождения строки старый_текст на строку новый_текст.
Функция ПОВТОР
Функция ПОВТОР (REPT) позволяет заполнить ячейку строкой символов, повторенной заданное количество раз. Синтаксис:
=ПОВТОР(текст;число_повторений)
Аргумент текст — это размноженная строка символов, заключенная в кавычки. Аргумент число_повторений указывает, сколько раз нужно повторить текст. Если аргумент число_повторений равен 0, функция ПОВТОР оставляет ячейку пустой, а если он не является целым числом, эта функция отбрасывает десятичные знаки после запятой.
Функция СЦЕПИТЬ
Функция СЦЕПИТЬ (CONCATENATE) является эквивалентом текстового оператора & и используется для объединения строк. Синтаксис:
=СЦЕПИТЬ(текст1;текст2;. )
В функции можно использовать до 30 аргументов.
Например, ячейка А5 содержит текст «первое полугодие», следующая формула возвращает текст «Всего за первое полугодие»:
=СЦЕПИТЬ(«Всего за «;А5)
В начало страницы
В начало страницы
Текстовые функции Excel
ФИО, номера банковских карт, адреса клиентов или сотрудников, комментарии и многое другое –все это является строками, с которыми многие сталкиваются, работая с приложением Excel. Поэтому полезно уметь обрабатывать информацию подобного типа. В данной статье будут рассмотрены текстовые функции в Excel, но не все, а те, которые, по мнению office-menu.ru, самые полезные и интересные:
Список всех текстовых функций Вы можете найти на вкладке «Формулы» => выпадающий список «Текстовые»:
Функция ЛЕВСИМВ
Возвращает подстроку из текста в порядке слева направо в заданном количестве символов.
Синтаксис: =ЛЕВСИМВ(текст; [количество_знаков])
- текст – строка либо ссылка на ячейку, содержащую текст, из которого необходимо вернуть подстроку;
- количество_знаков – необязательный аргумент. Целое число, указывающее, какое количество символов необходимо вернуть из текста. По умолчанию принимает значение 1.
Пример использования:
Формула: =ЛЕВСИМВ(«Произвольный текст»;8) – возвращенное значение «Произвол».
Функция ПРАВСИМВ
Данная функция аналогична функции «ЛЕВСИМВ», за исключением того, что знаки возвращаются с конца строки.
Пример использования:
Формула: =ПРАВСИМВ(«произвольный текст»;5) – возвращенное значение «текст».
Функция ДЛСТР
С ее помощью определяется длина строки. В качестве результата возвращается целое число, указывающее количество символов текста.
Синтаксис: =ДЛСТР(текст)
Пример использования:
Функция НАЙТИ
Возвращает число, являющееся вхождением первого символа подстроки, искомого текста. Если текст не найден, то возвращается ошибка «#ЗНАЧ!».
Синтаксис: =НАЙТИ(искомый_текст; текст_для_поиска; [нач_позиция])
- искомый_текст – строка, которую необходимо найти;
- текст_для_поиска – текст, в котором осуществляется поиск первого аргумента;
- нач_позиция – необязательный элемент. Принимает целое число, которое указывает, с какого символа текст_для_поиска необходимо начинать просмотр. По умолчанию принимает значение 1.
Пример использования:
Из отрывка стихотворения великого поэта С.А.Есенина находим вхождение первого символа строки «птица». Поиск осуществляется с начала строки. Если в приведенном примере поиск осуществлялся бы с 40 символа, то функция в результате вернула ошибку, т.к. позиции вхождения не было найдено.
Функция ЗАМЕНИТЬ
Данная функция заменяет часть строки в заданном количестве символов, начиная с указанного по счету символа на новый текст.
Синтаксис: ЗАМЕНИТЬ(старый_текст; начальная_позиция; количество_знаков; новый_текст)
- старый_текст – строка либо ссылка на ячейку, содержащую текст;
- начальная_позиция – порядковый номер символа слева направо, с которого нужно производить замену;
- количество_знаков – количество символов, начиная с начальная_позиция включительно, которые необходимо заменить новым текстом;
- новый_текст – строка, которая подменяет часть старого текста, заданного аргументами начальная_позиция и количество_знаков.
Пример использования:
Здесь в строке, содержащейся в ячейке A1, подменяется слово «старый», которое начинается с 19-го символа и имеет длину 6 символов, на слово «новый».
В случае обработки небольшого количества ячеек такой способ вполне приемлем. Но если обработать необходимо несколько тысяч различных строк, то процесс составления формул станет трудоемким. Поэтому переделаем рассмотренный пример, используя знания по тем функциям, которые уже описаны в начале статьи, а именно:
- Аргумент «начальная_позиция» подменим функцией «НАЙТИ»;
- В место аргумент «количество_знаков» вложим функцию «ДЛСТР».
В результате получим формулу: =ЗАМЕНИТЬ(A1;НАЙТИ(«старый»;A1);ДЛСТР(«старый»);»новый»)
Посмотрите на принтскрин окна функции. Возвращаемые результаты аргументов не поменялись, зато теперь их можно определять динамически, составив формулу один раз.
Функция ПОДСТАВИТЬ
Данная функция заменяет в тексте вхождения указанной подстроки на новый текст, чем схожа с функцией «ЗАМЕНИТЬ», но между ними имеется принципиальное отличие. Если функция «ЗАМЕНИТЬ» меняет текст, указанный посимвольно вручную, то функция «ПОДСТАВИТЬ» автоматически находит вхождения указанной строки и меняет их.
Синтаксис: ПОДСТАВИТЬ(текст; старый_текст; новый_текст; [номер_вхождения])
- текст – строка или ссылка на ячейку, содержащую текст;
- старый_текст – подстрока из первого аргумента, которую необходимо заменить;
- новый_текст – строка для подмены старого текста;
- номер_вхождения – необязательный аргумент. Принимает целое число, указывающее порядковый номер вхождения старый_текст, которое подлежит замене, все остальные вхождения затронуты не будут. Если оставить аргумент пустым, то будут заменены все вхождения.
Пример использования:
Строка в ячейке A1 содержит текст, в котором имеются 2 подстроки «старый». Нам необходимо подставить на место первого вхождения строку «новый». В результате часть текста «…старый-старый…», заменяется на «…новый-старый…».
Если ли бы последний аргумент был опущен, то результатом бы стала строка «строка, содержащая новый-новый текст».
Функция ПСТР
ПСТР возвращает из указанной строки часть текста в заданном количестве символов, начиная с указанного символа.
Синтаксис: ПСТР(текст; начальная_позиция; количество_знаков)
- текст – строка или ссылка на ячейку, содержащую текст;
- начальная_позиция – порядковый номер символа, начиная с которого необходимо вернуть строку;
- количество_знаков – натуральное целое число, указывающее количество символов, которое необходимо вернуть, начиная с позиции начальная_позиция.
Пример использования:
Из текста, находящегося в ячейке A1 необходимо вернуть последние 2 слова, которые имеют общую длину 12 символов. Первый символ возвращаемой фразы имеет порядковый номер 12.
Аргумент количество_знаков может превышать допустимо возможную длину возвращаемых символов. Т.е. если в рассмотренном примере вместо количество_знаков = 12, было бы указано значение 15, то результат не изменился, и функция так же вернула строку «функции ПСТР».
Для удобства использования данной функции ее аргументы можно подменить функциями «НАЙТИ» и «ДЛСТР», как это было сделано в примере с функцией «ЗАМЕНИТЬ».
Функция СЖПРОБЕЛЫ
Данная функция удаляется все лишние пробелы: пробелы по краям и двойные пробелы между словами. После обработки строк функцией остаются только одиночные пробелы между словами.
Синтаксис: =СЖПРОБЕЛЫ(текст)
Пример использования:
=СЖПРОБЕЛЫ( » Текст с лишними пробелами между словами и по краям « )
Результатом выполнения функции будет строка: «Текст с лишними пробелами между словами и по краям» .
Функция СЦЕПИТЬ
С помощью функции «СЦЕПИТЬ» можно объединить несколько строк между собой. Максимальное количество строк для объединения – 255.
Синтаксис: =СЦЕПИТЬ(текст1; [текст2]; …)
Функция должна содержать не менее одного аргумента
Пример использования:
Функция возвратит строку: «Слово1 Слово2».
Не забывайте, что функция самостоятельно не добавляет пробелы между строками, поэтому добавлять их приходится самостоятельно.
Вместо использования данной функции можно применять знак амперсанда «&». Он так же объединяет строки. Например: «=»Слово1″&» «&«Слово2″».
Канал в Telegram
Работа со строками в Excel. Текстовые функции Excel
Часто в Excel приходится тем или иным образом обрабатывать текстовые строки. Вручную такие операции проделывать очень сложно когда кол-во строк составляет не одну сотню. Для удобства в Excel реализован не плохой набор функций для работы со строковым набором данных. В этой статье я коротко опишу необходимые функции для работы со строками категории «Текстовые» и некоторые рассмотрим на примерах.
Функции категории «Текстовые»
Итак, рассмотрим основные и полезные функции категории «Текстовые», с остальными можно ознакомиться самостоятельно.
- БАТТЕКСТ (Значение) – функция преобразующая число в текстовый тип;
- ДЛСТР (Значение) – вспомогательная функция, очень полезна при работе со строками. Возвращает длину строки, т.е. кол-во символов содержащихся в строке;
- ЗАМЕНИТЬ (Старый текст, Начальная позиция, число знаков, новый текст) – заменяет указанное кол-во знаков с определенной позиции в старом тексте на новый;
- ЗНАЧЕН (Текст) – преобразует текст в число;
- ЛЕВСИМВ (Строка, Кол-во знаков) – очень полезная функция, возвращает указанное кол-во символов, начиная с первого символа;
- ПРАВСИМВ (Строка, Кол-во знаков) – аналог функции ЛЕВСИМВ, с той лишь разницей, что возврат символов с последнего символа строки;
- НАЙТИ (текст для поиска, текст в котором ищем, начальная позиция) – функция возвращает позицию, с которой начинается вхождение искомого текста. Регистр символов учитывается. Если необходимо не различать регистр символов, воспользуйтесь функцией ПОИСК. Возвращается позиция только первого вхождения в строке!
- ПОДСТАВИТЬ (текст, старый текст, новый текст, позиция) – интересная функция, на первый взгляд похожа на функцию ЗАМЕНИТЬ, но функция ПОДСТАВИТЬ способна заменить на новую подстроку все вхождения в строке, если опущен аргумент «позиция»;
- ПСТР (Текст, Начальная позиция, Кол-во знаков) – функция похожа на ЛЕВСИМВ, но способна возвратить символы с указанной позиции:
- СЦЕПИТЬ (Текст1, Текст 2 …. Текст 30) – функция позволяет соединить до 30-ти строк. Так же, можно воспользоваться символом «&», выглядеть будет так «=”Текст1” & ”Текст2” & ”Текст3”»;
Это в основном часто используемые функции при работе со строками. Теперь рассмотрим пару примеров, которые продемонстрируют работу некоторых функций.
Пример 1
Дан набор строк:
Необходимо из этих строк извлечь даты, номера накладных, а так же, добавить поле месяц для фильтрации строк по месяцам.
Извлечем в столбец В номера накладных. Для этого найдем так называемый ключевой символ или слово. В нашем примере видно, что перед каждым номером накладной стоит «№», а длина номера накладной 6 символов. Воспользуемся функциями НАЙТИ и ПСТР. Пишем в ячейку B2 следующую формулу :
= ПСТР (A2; НАЙТИ («№»;A2)+1;6)
Разберем формулу. Из строки А2 с позиции следующей после найденного знака «№», мы извлекаем 6 символов номера.
Теперь извлечем дату. Тут все просто. Дата расположена в конце строки и занимает 8 символов. Формула для С2 следующая:
= ПРАВСИМВ (A2;8)
но извлеченная дата у нас будет строкой, чтоб преобразовать ее в дату необходимо после извлечения, текст перевести в число:
= ЗНАЧЕН ( ПРАВСИМВ (A2;8))
а затем, задать формат отображения в ячейке, как это сделать было описано в статье «Формат данных в Excel».
Ну и последнее, для удобства дальнейшей фильтрации строк, введем столбец месяц, который мы получим из даты. Только для создания месяца нам необходимо откинуть день и заменить его на «01». Формула для D2:
= ЗНАЧЕН ( СЦЕПИТЬ («01»; ПРАВСИМВ (A2;6))) или = ЗНАЧЕН («01″& ПРАВСИМВ (A2;6))
Задайте формат ячеке «ММММ ГГГГ». Результат:
Пример 2
В строке «Пример работы со строками в Excel» необходимо все пробелы заменить на знак «_», так же перед словом «Excel» добавить «MS».
Формула будет следующая:
=ПОДСТАВИТЬ(ЗАМЕНИТЬ(A1;ПОИСК(«excel»;A1);0;»MS «);» «;»_»)
Для того, чтоб понять данную формулу, разбейте ее на три столбца. Начните с ПОИСК, последней будет ПОДСТАВИТЬ.
Все. Если есть вопросы, задавайте, не стесняйтесь
Текстовые функции 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!
Функции VBA для работы с текстом
- ASC ()— эта функция позволяет вернуть числовой код для переданного символа. Например, ASC( «D» ) вернет 68. Эту функцию удобно использовать для того, чтобы определить следующую или предыдущую букву. Обычно она используется вместе с функцией Chr(), которая производит обратную операцию — возвращает символ по переданному его числовому коду.Варианты этой функции — AscB() и AscW():
- AscB () — возвращает только первый байт числового кода для символа.
- AscW () — возвращает код для символа в кодировке Unicode
- Chr () — возвращает символ по его числовому коду. Может использоваться в паре с функцией Asc(), но чаще всего её применяют, когда нужно вывести служебный символ (например кавычки — » ), т.к. кавычки просто так в VBA-коде не ввести(нужно ставить двойные). Я обычно именно эту функцию и использую.
Dim sWord As String sWord = Chr(34) & «Слово в кавычках» & Chr(34)
Есть варианты этой функции — ChrB() и ChrW(). Работают аналогично таким же вариантам для функции Asc().
InStr () и InStrRev ()— одна из самых популярных функций. Позволяет обнаружить в теле строковой переменной символ или последовательность символов и вернуть их позицию. Если последовательность не обнаружена, то возвращается 0.Dim sStr As String sStr = «w» If InStr(1, «Hello, World!», sStr, vbTextCompare) > 0 Then MsgBox «Искомое слово присутствует!» Else MsgBox «Искомое слово отсутствует!» End If
Разница функций в том, что InStr() ищет указанное слово от начала строки, а InStrRev() с конца строки
Left (), Right (), Mid ()— возможность взять указанное вами количество символов из существующей строковой переменной слева, справа или из середины соответственно.Dim sStr As String sStr = «Hello, World!» MsgBox Mid(sStr, 1, 5)
Dim sStr As String sStr = «Hello, World!» MsgBox Replace(sStr, «Hello», «Bay»)
Dim sStr As String sStr = «Hello, World!» MsgBox StrConv(«Hello, World!», vbUpperCase)
В качестве второго параметра параметра могут применяться константы:
- vbUpperCase: Преобразует все текстовые символы в ВЕРХНИЙ РЕГИСТР
- vbLowerCase: Преобразует все текстовые символы в нижний регистр
- vbProperCase: Переводит первый символ каждого слова в Верхний Регистр
- *vbWide: Преобразует символы строки из однобайтовых в двухбайтовые
- *vbNarrow: Преобразует символы строки из двухбайтовых в однобайтовые
- **vbKatakana: Преобразует символы Hiragana в символы Katakana
- **vbHiragana: Преобразует символы Katakana в символы Hiragana
- ***vbUnicode: Преобразует строку в Юникод с помощью кодовой страницы системы по умолчанию
- ***vbFromUnicode: Преобразует строку из Юникод в кодовую страницу системы по умолчанию
* применимо для локализацией Дальнего востока
** применимо только для Японии
*** не поддерживается операционными системами под управлением Macintosh
Источник
Adblock
detector
Kutools for Excel , с более чем 300 удобные функции, облегчающие вашу работу. |
В учебнике показано, как использовать функции подстроки в Excel для извлечения текста из ячейки, получения подстроки до или после указанного символа, найти ячейки, содержащие часть строки, и многое другое.
Прежде чем мы начнем обсуждать различные методы работы с подстроками в Excel, давайте уделим немного времени определению термина, чтобы мы могли начать с той же страницы. Итак, что такое подстрока? Проще говоря, это часть текстовой записи. Например, если вы наберете что-то вроде «AA-111» в ячейке, вы назовете это буквенно-цифровая строкаи любая часть строки, скажем, «AA», будет подстрока.
Хотя в Excel нет такой функции, как функция подстроки, существуют три текстовые функции (LEFT, RIGHT и MID) для извлечения подстроки заданной длины. Кроме того, есть функции НАЙТИ и ПОИСК для получения подстроки до или после определенного символа. И есть несколько других функций для выполнения более сложных операций, таких как извлечение чисел из строки, замена одной подстроки на другую, поиск частичного совпадения текста и т. д. Ниже вы найдете примеры формул для выполнения всего этого и многого другого. .
Microsoft Excel предоставляет три различные функции для извлечения текста заданной длины из ячейки. В зависимости от того, где вы хотите начать извлечение, используйте одну из следующих формул:
- Функция LEFT — извлечь подстроку слева.
- Функция ПРАВО — извлечь текст справа.
- Функция MID — для извлечения подстроки из середины текстовой строки, начиная с указанной вами точки.
Как и в случае с другими формулами, функции работы с подстроками в Excel лучше всего изучать на примере, поэтому давайте рассмотрим несколько из них.
Чтобы извлечь текст слева от строки, вы используете функцию Excel LEFT:
СЛЕВА(текст, [num_chars])
Где текст адрес ячейки, содержащей исходную строку, и num_chars количество символов, которые вы хотите извлечь.
Например, чтобы получить первые 4 символа из начала текстовой строки, используйте следующую формулу:
=ЛЕВО(A2,4)
Получить подстроку с конца строки (ВПРАВО)
Чтобы получить подстроку из правой части текстовой строки, воспользуйтесь функцией Excel ПРАВИЛЬНО:
ПРАВИЛЬНО(текст, [num_chars])
Например, чтобы получить последние 4 символа с конца строки, используйте следующую формулу:
=ВПРАВО(A2,4)
Если вы хотите извлечь подстроку, начинающуюся в середине строки, в указанной вами позиции, то MID — это функция, на которую вы можете положиться.
По сравнению с двумя другими текстовыми функциями, MID имеет несколько иной синтаксис:
MID(текст, start_num, num_chars)
Помимо текст (исходная текстовая строка) и num_chars (количество символов для извлечения), вы также указываете start_num (отправная точка).
В нашем примере набора данных, чтобы получить три символа из середины строки, начинающейся с 6-го символа, вы используете следующую формулу:
=СРЕДНЕЕ(A2,6,3)
Кончик. Вывод формул Right, Left и Mid всегда является текстом, даже если вы извлекаете число из текстовой строки. Если вы хотите оперировать результатом как числом, оберните формулу в функцию ЗНАЧЕНИЕ следующим образом:
= ЗНАЧЕНИЕ (СРЕДНЕЕ (A2,6,3))
Как показано в приведенных выше примерах, функции Left, Right и Mid прекрасно справляются с однородными строками. Когда вы имеете дело с текстовыми строками переменной длины, потребуются более сложные манипуляции.
Примечание. Во всех приведенных ниже примерах мы будем использовать функцию SEARCH без учета регистра, чтобы получить позицию символа. Если вам нужна формула с учетом регистра, используйте функцию НАЙТИ.
Как извлечь текст перед определенным символом
Чтобы получить подстроку, предшествующую заданному символу, нужно сделать две вещи: сначала определить позицию интересующего символа, а затем вытянуть все символы перед ним. Точнее, вы используете функцию ПОИСК, чтобы найти положение символа, и вычитаете 1 из результата, потому что вы не хотите включать сам символ в вывод. А затем вы отправляете возвращенный номер непосредственно на num_chars аргумент ЛЕВОЙ функции:
ОСТАВИЛ(клеткаПОИСК(«уголь«, клетка)-1)
Например, чтобы извлечь подстроку перед символом дефиса (-) из ячейки A2, используйте следующую формулу:
=ВЛЕВО(A2, ПОИСК(«-«,A2)-1)
Независимо от того, сколько символов содержит ваша строка Excel, формула извлекает только текст до первого дефиса:
Чтобы получить текст после определенного символа, вы используете несколько иной подход: получите позицию символа с помощью ПОИСК или НАЙТИ, вычтите это число из общей длины строки, возвращаемой функцией ДЛСТР, и извлеките столько же символов из конца строки. Струна.
ПРАВИЛЬНО(клетка,ЛЕН(клетка)-ПОИСК(«уголь«, клетка))
В нашем примере мы будем использовать следующую формулу для извлечения подстроки после первого дефиса:
=ВПРАВО(A2,ДЛСТР(A2)-ПОИСК(«-«,A2))
Как извлечь текст между двумя экземплярами символа
Чтобы получить подстроку между двумя вхождениями определенного символа, используйте следующую общую формулу:
СРЕДНЯЯ(клеткаПОИСК(«уголь«, клетка)+1, ПОИСК («уголь«, клеткаПОИСК («чар», клетка)+1) — ПОИСК («уголь«, клетка)-1)
Первые два аргумента этой формулы MID предельно ясны:
Текст это ячейка, содержащая исходную текстовую строку.
Start_num (начальная точка) — простая формула ПОИСК возвращает позицию нужного символа, к которой вы добавляете 1, потому что хотите начать извлечение со следующего символа.
Num_chars (количество символов для извлечения) — самая сложная часть:
- Во-первых, вы определяете положение второго вхождения символа, вкладывая одну функцию поиска в другую.
- После этого вы вычитаете позицию 1-го вхождения из позиции 2-го вхождения и вычитаете 1 из результата, так как вы не хотите включать символ-разделитель в результирующую подстроку.
Например, чтобы извлечь текст, окруженный двумя дефисами, вы должны использовать эту формулу:
=СРЕДН(A2, ПОИСК(«-«,A2) + 1, ПОИСК(«-«,A2,ПОИСК(«-«,A2)+1) — ПОИСК(«-«,A2) — 1)
На скриншоте ниже показан результат:
Если вы хотите извлечь текст между 2-м и 3-м или 3-м и 4-м вхождением одного и того же символа, вы можете использовать более компактную комбинацию ПОИСК ПОДСТАВКИ, чтобы получить позицию символа, как описано в разделе Как найти N-е вхождение символа в строку. :
НАЙТИ(СИМВОЛ(1),ПОДСТАВИТЬ(клетка,персонаж,СИМВОЛ(1),N-е вхождение))
В нашем случае мы могли бы извлечь подстроку между 2-м и 3-м дефисом по следующей формуле:
=MID(A2, НАЙТИ(СИМВОЛ(1),ЗАМЕНИТЬ(A2,»-«,СИМВОЛ(1),2))+1, НАЙТИ(СИМВОЛ(1),ЗАМЕНИТЬ(A2,»-«,СИМВОЛ(1) ,3)) — НАЙТИ(СИМВОЛ(1),ПОДСТАВИТЬ(A2,»-«,СИМВОЛ(1),2))-1)
В ситуациях, когда вы не хотите извлекать подстроку, а хотите найти только ячейки, содержащие ее, вы используете функцию ПОИСК или НАЙТИ, как показано в приведенных выше примерах, но выполняете поиск внутри функции ЕСНИМ. Если ячейка содержит подстроку, функция поиска возвращает позицию первого символа, и если ISNUMBER получает любое число, она возвращает TRUE. Если подстрока не найдена, поиск приводит к ошибке, заставляя ISNUMBER возвращать FALSE.
IНОМЕР(ПОИСК(«подстрока«, клетка))
Предположим, у вас есть список британских почтовых индексов в столбце A, и вы хотите найти те, которые содержат подстроку «1ZZ». Чтобы это сделать, используйте эту формулу:
=ISNUMBER(ПОИСК(«1zz», A2))
Результаты будут выглядеть примерно так:
Если вы хотите вернуть собственное сообщение вместо логических значений ИСТИНА и ЛОЖЬ, вложите приведенную выше формулу в функцию ЕСЛИ:
=ЕСЛИ(IЧИСЛО(ПОИСК(«1zz», A2)), «Да», «»)
Если ячейка содержит подстроку, формула возвращает «Да», в противном случае — пустую строку («»):
Как вы помните, функция ПОИСК в Excel нечувствительна к регистру, поэтому вы используете ее, когда регистр символов не имеет значения. Чтобы ваша формула различала прописные и строчные буквы, выберите функцию НАЙТИ с учетом регистра.
Дополнительные сведения о том, как найти текст и числа в Excel, см. в разделе Если ячейка содержит примеры формул.
Как вы только что видели, Microsoft Excel предоставляет множество различных функций для работы с текстовыми строками. Если вы не уверены, какая функция лучше всего подходит для ваших нужд, передайте задание нашему Ultimate Suite for Excel. Имея эти инструменты в своем арсенале Excel, вы просто переходите к Данные об аблебитах вкладка > Текст группу и нажмите Извлечь:
Теперь вы выбираете исходные ячейки и любые сложные строки, которые они содержат, извлечение подстроки сводится к этим двум простым действиям:
- Укажите, сколько символов вы хотите получить из начала, конца или середины строки; или выберите извлечение всего текста до или после заданного символа.
- Нажмите Вставить результаты. Сделанный!
Например, чтобы получить доменные имена из списка адресов электронной почты, выберите Все после текста переключатель и введите @ в поле рядом с ним. Чтобы извлечь имена пользователей, выберите Все перед текстом переключатель, как показано на скриншоте ниже.
И через мгновение вы получите следующие результаты:
Помимо скорости и простоты, инструмент Извлечь текст имеет дополнительную ценность — он поможет вам изучить формулы Excel в целом и функции работы с подстроками в частности. Как? Установив флажок «Вставить как формулу» в нижней части панели, вы гарантируете, что результаты выводятся в виде формул, а не значений.
В этом примере, если вы выберете ячейки B2 и C2, вы увидите следующие формулы соответственно:
- Чтобы извлечь имя пользователя:
=ЕСЛИОШИБКА(СЛЕВА(A2,ПОИСК(«@»,A2)-1),»»)
- Чтобы извлечь домен:
=ЕСЛИОШИБКА(ПРАВО(A2, ДЛСТР(A2)- ПОИСК(«@»,A2) — ДЛСТР(«@») + 1),»»)
Сколько времени у вас ушло бы на то, чтобы вычислить эти формулы самостоятельно? 😉
Поскольку результаты представляют собой формулы, извлеченные подстроки будут обновляться автоматически, как только в исходные строки будут внесены какие-либо изменения. Когда в ваш набор данных добавляются новые записи, вы можете копировать формулы в другие ячейки, как обычно, без необходимости заново запускать инструмент «Извлечь текст».
Если вам интересно попробовать это, а также многие другие полезные функции, включенные в Ultimate Suite for Excel, вы можете загрузить ознакомительную версию.
Дополнительные формулы для подстрок в Excel
В этом уроке мы продемонстрировали некоторые классические формулы Excel для извлечения текста из строки. Как вы понимаете, может быть почти бесконечное количество вариаций этих базовых сценариев. Ниже вы найдете еще несколько примеров формул, в которых вам пригодятся функции Text.
Доступные загрузки
Функции работы с подстроками в Excel — практическая рабочая тетрадь (файл .xlsx)
Ultimate Suite — пробная версия (файл .exe)
При использовании 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, которые вам могут пригодиться в ежедневной работе.
Описание функции
К сожалению, в Excel нет встроенной функции, которая возвращает конец строки после заданного текста. Хотя можно решить эту задачу и стандартными функциями, но не всегда их можно на память или логику быстро воспроизвести.
Вот этот набор функций, не очень то очевидно, согласитесь:
=ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(«Заданный текст»;A1;1)-ДЛСТР(«Заданный текст»))
Для удобства в надстройку VBA-Excel добавлена функция КОНЕЦСТРОКИ. Она выполняет поиск заданного текста с конца строки и возвращает текст от искомой позиции до конца строки. И интерфейс у нее намного понятнее:
Функция =КОНЕЦСТРОКИ(ТЕКСТ; НАЙТИ; [Старт]; [Регистр]) имеет 4 аргумента:
- ТЕКСТ — Исходный текст, в котором необходимо найти начало строки.
- НАЙТИ — Подстрока, до которой будет возвращаться начало строки
- [Старт] — Необязательный параметр. Позиция внутри исходного текста, с которой начинается поиск подстроки. По умолчанию параметр равен 1.
- [Регистр] — Необязательный аргумент, указывающий необходимость учета регистра. По умолчанию равен 1 — регистр учитывается. Укажите значение 0 если не хотите учитывать регистр при сравнении.
Пример 1
Найти текст до слова СТОП. Обратите внимание не важно в какой части текста находится заданное слово.
Пример 2
Чтобы вернуть текст без первого слова укажите пробел в параметре НАЙТИ.
Пример 3
Можно начинать поиск с заданной позиции (аргумент Старт). Может понадобиться в случае если стоп-слово встречается не один раз.
Пример 4
В предыдущих примерах регистр искомого текста учитывался. Для того чтобы заглавные и строчные буквы НЕ учитывались при поиске, установите параметр Регистр = 0.
Код на VBA
- Обычная составная формула
- Формулы массива для поиска символа с конца строки
- С помощью МАКС
- С помощью ПОИСКПОЗ
Поиск позиции последнего вхождения значения внутри ячейки Excel – довольно сложная задача.
Тем не менее, иногда ее необходимо решить, например, чтобы удалить или заменить это вхождение.
Так а в чем же проблема?
Все дело в том, что функции поиска позиции ПОИСК и НАЙТИ ищут только с начала ячейки, и у них нет параметра переключения на поиск с конца.
Процедура Найти и Заменить также не подойдет. Она ищет не с конца строки, а просто находит (и заменяет) все вхождения.
Ниже я покажу пару способов, как осуществить поиск с конца строки.
Обычная составная формула
Формула, похожая на ту, что ниже, рассматривается подробно в статье о том, как удалить последнее слово в ячейке Excel. Поиск пробела с конца строки как раз является необходимым в этом случае.
Формула ниже ищет пробел с конца ячейки A1:
=ПОИСК(ЮНИСИМВ(23456);ПОДСТАВИТЬ(A1;" ";ЮНИСИМВ(23456);ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))))
Как она работает:
- Фрагмент, обозначенный красным цветом, вычисляет количество пробелов в ячейке. Подробнее можно почитать в описании функции ПОДСТАВИТЬ.
- Это количество является аргументом еще одной подстановки, где заменяется лишь последний пробел (выделено жирным)
- Вместо пробела в его последнюю позицию вставляется достаточно редкий символ. В данном случае это иероглиф, который создается функцией СИМВОЛ. Но можно и прописать символ вручную. В формуле ниже это обратная косая черта:
=ПОИСК("";ПОДСТАВИТЬ(A1;" ";"";ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))))
- Функция ПОИСК находит позицию этого символа. Поскольку он встречается в строке всего один раз и стоит на месте последнего пробела, это и позволяет нам сказать, что поиск произведен справа налево.
Если вам необходимо найти с конца строки какой-то другой символ или текстовый фрагмент, замените пробелы в этой формуле на него.
Формулы массива для поиска символа с конца строки
Поиск слева направо с помощью функции ПОДСТАВИТЬ, описанный выше, имеет пару недостатков.
Первый – регистрозависимость этой функции, но это легко учесть, обернув нужные фрагменты функциями изменения регистра.
А второй уже серьезнее – формула не очень универсальна, т.к. использует замену на символ, который может оказаться в строке, и тогда она выдаст неверное значение.
От обоих проблем избавят формулы массива. Они обе создают массивы значений, внутри которых функция выбирает последнее.
С помощью МАКС
Формула ниже находит позицию символа “а” в любом регистре.
={МАКС((ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)="а")*СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1))))}
ВАЖНО: Это формула массива! Она вводится без фигурных скобок. Но не клавишей Enter а сочетанием: Ctrl+Shift+Enter После этого фигурные скобки появятся сами. Если ввести формулу обычным способом, она не сработает.
Механика ее работы пошагово:
- Функция ДЛСТР измеряет длину ячейки в символах
- ДВССЫЛ создает из текстового представления длины ссылку на диапазон строк с 1 по строку, равную этой длине
- Функция СТРОКА возвращает массив чисел, соответствующих этим длинам, соответственно, {1;2;3;…”длина строки”}
- Функция ПСТР, обрабатывая этот массив, возвращает для каждого числа символ, стоящий на этой позиции в строке
- Текстовое сравнение с символом “а” возвращает булевый массив (значения ИСТИНА или ЛОЖЬ)
- Этот массив умножается на повторно созданный массив чисел (пункты 1:3). ЛОЖЬ эквивалентна нулю, а ИСТИНА – единице, поэтому для всех символов, не равных “а”, в результирующем числовом массиве будут нули, а для равных – их позиции
- Функция МАКС возвращает наибольшее число в этом массиве.
С помощью ПОИСКПОЗ
Чуть более хитрая механика делает формулу короче, вместе с тем существенно быстрее, а задействует функцию ПОИСКПОЗ:
{=ПОИСКПОЗ(2;1/(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)="а");1)}
ВАЖНО: Это формула массива! Она вводится без фигурных скобок. Но не клавишей Enter а сочетанием: Ctrl+Shift+Enter После этого фигурные скобки появятся сами. Если ввести формулу обычным способом, она не сработает.
Здесь алгоритм такой:
- Как и в предыдущем варианте, с помощью тех же функций ДЛСТР, СТРОКА, ДВССЫЛ, ПСТР и текстового сравнения создается булевый массив;
- Но на этом этапе единица делится на него. ЛОЖЬ эквивалентна нулю и выдается ошибка деления на ноль. ИСТИНА возвращает единицу.
- Функция ПОИСКПОЗ с последним параметром “1” при поиске 2 (на месте 2 может быть любое число больше 1) возвращает позицию последнего наибольшего числа, меньшее, чем 2. Т.е. последней единицы, которой и соответствует последний найденный в строке символ.
Смотрите также по теме:
Формулы массива в Excel
Удалить последнее слово в ячейке
Найти и заменить первую букву в ячейке на заглавную
Предыдущая статья о формулах массива:
Учимся формулам массива 3/4:
Извлечь текст до первой цифры в ячейке
Часто сталкиваетесь с этой или похожими задачами при работе в Excel?
Сотни инструментов надстройки для Excel !SEMTools помогут вам упростить их решение и сэкономят ваше время!