Как взять из ячейки первую букву |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
ЛЕВСИМВ, ЛЕВБ (функции ЛЕВСИМВ, ЛЕВБ)
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Еще…Меньше
В этой статье описаны синтаксис и использование функций ЛЕВСИМВ и ЛЕВБ в Microsoft Excel.
Описание
Функция ЛЕВСИМВ возвращает первый символ или несколько первых символов текстовой строки на основе заданного числа символов.
Функция ЛЕВБ возвращает первый символ или несколько первых символов текстовой строки на основе заданного числа байтов.
Важно:
-
Эти функции могут быть доступны не на всех языках.
-
Функция ЛЕВБ отсчитывает по два байта на каждый символ, только если языком по умолчанию является язык с поддержкой двухбайтовой кодировки. В противном случае функция ЛЕВБ работает так же, как функция ЛЕВСИМВ, и отсчитывает по одному байту на каждый символ.
К языкам, поддерживающим БДЦС, относятся японский, китайский (упрощенное письмо), китайский (традиционное письмо) и корейский.
Синтаксис
ЛЕВСИМВ(текст;[количество_знаков])
ЛЕВБ(текст;[количество_байтов])
Аргументы этих функций описаны ниже.
-
Текст Обязательный. Текстовая строка, содержащая символы, которые требуется извлечь.
-
Количество_знаков Необязательный. Количество символов, извлекаемых функцией ЛЕВСИМВ.
-
«Количество_знаков» должно быть больше нуля или равно ему.
-
Если «количество_знаков» превышает длину текста, функция ЛЕВСИМВ возвращает весь текст.
-
Если значение «количество_знаков» опущено, оно считается равным 1.
-
-
Количество_байт Необязательный. Количество символов, извлекаемых функцией ЛЕВБ.
Пример
Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу Enter. При необходимости измените ширину столбцов, чтобы видеть все данные.
Данные |
||
---|---|---|
Цена продажи |
||
Швеция |
||
Формула |
Описание |
Результат |
=ЛЕВСИМВ(A2;4) |
Первые четыре символа первой строки |
Продажа |
=ЛЕВСИМВ(A3) |
Первый символ второй строки |
Ш |
Нужна дополнительная помощь?
- Первое слово ячейки Excel с большой буквы
- Вывести первое слово в отдельную ячейку — формула
- Оставить только первое слово в ячейке
- Взять первые 2/3/N слов ячейки
- Процедуры !SEMTools для извлечения первых N слов
Первое слово (до пробела) в Excel-ячейке часто приковывает внимание тех, кто работает с текстовыми данными. Его часто нужно выделить как отдельную единицу, с которой уже определенным образом оперировать — сделать его с заглавной буквы, выделить в отдельную ячейку, оставить только его в исходной ячейке и т.д.
Помимо первого слова ячейки, бывает также важно взять первое слово после него, и так далее.
Часто после извлечения требуется удалить первые слова из ячеек, но это уже кардинально другое действие, смотрите соответствующую статью.
Сделать первое слово ячейки с большой буквы не очень сложно, если перед ним нет никаких других символов. Но если там кавычки, скобки, тире или еще какая-то пунктуация, решение может быть существенно более сложным, чем просто взять первый символ ячейки и сделать его заглавным.
Поэтому я рассмотрел эту задачу в отдельной статье “Как сделать первую букву ячейки заглавной“.
Вывести первое слово в отдельную ячейку — формула
Если под первым словом понимаются символы строки до первого пробела, то функция довольно проста:
=ЛЕВСИМВ(A1;ПОИСК(" ";A1&" ")-1)
Здесь A1 – ячейка с искомым словом.
Обратили внимание на дополнительный пробел, добавляемый к значению исходной ячейки через амперсанд (&)? Он используется для ситуаций, когда первое слово в ячейке является единственным, или слов в ячейке нет совсем. Если не добавлять этот пробел, функция в таких случаях вернет ошибку.
А ошибки нам тут ни к чему, поэтому рекомендуется использовать формулу выше. Удобство формул в том, что, если их протянуть на весь второй столбец, при изменении данных в первом столбце первые слова будут автоматически вставляться в соседние ячейки.
Оставить только первое слово в ячейке
Простейший вариант сделать подобное в Excel – штатной процедурой “Найти и заменить“. Можно вызвать процедуру горячим сочетанием клавиш Ctrl + H, в первом окошке ввести пробел со звёздочкой (см. подстановочные символы в Excel), а второе оставить пустым как есть.
Есть и вариант с использованием !SEMTools, процедура находится в подразделе ИЗВЛЕЧЬ – Извлечь Слова – по порядку:
Взять первые 2/3/N слов ячейки
Чем больше число слов, которые вы хотите извлечь из ячейки, тем сложнее это будет сделать. В Google Spreadsheets есть замечательная функция SPLIT, с её помощью можно разбить ячейку на отдельные слова и брать каждое из них по его индексу, что делает инструмент идеальным для такой задачи. Но в Excel, к сожалению, подобной функции нет.
Однако, есть альтернативы. Например, чтобы взять первые два слова, один из вариантов формулы будет выглядеть так:
=ЛЕВСИМВ(A1;ПОИСК(ЮНИСИМВ(23456);ПОДСТАВИТЬ(A1&" ";" ";ЮНИСИМВ(23456);2))-1)
Формула использует особенные свойства функций ПОДСТАВИТЬ и ЮНИСИМВ:
- функция ПОДСТАВИТЬ позволяет заменить N-ую подстроку в ячейке на заданное значение
- а ЮНИСИМВ позволяет задать это значение настолько уникальным, насколько возможно, чтобы быть уверенным, что оно будет единственным в ячейке
Далее функция ПОИСК находит позицию этого символа, чтобы функция ЛЕВСИМВ взяла все что до него (из позиции вычитается единица).
Неплохая надёжная формула со своими преимуществами и недостатками.
Преимущество в том, что легко поддаётся модификации под задачу с извлечением 3,4 и далее слов, просто нужно заменить в формуле аргумент функции подставить, который 2, на соответствующее число.
Недостаток – ЮНИСИМВ работает только в Excel 2013 и старше. Вот аналог для более ранних версий, использующий функцию СИМВОЛ:
=ЛЕВСИМВ(A1;ПОИСК(СИМВОЛ(9);ПОДСТАВИТЬ(A1&" ";" ";СИМВОЛ(9);2))-1)
Функция добавляет в строку символ табуляции, также с высокой вероятностью изначально в ней отсутствующий.
Процедуры !SEMTools для извлечения первых N слов
Знание функций и формул Excel очень помогает в работе, для энтузиастов у меня есть целый Справочник функций Excel. Однако тратить время на составление сложных конструкций может быть накладно, равно как и хранить где-то на диске огромный файл с примерами их использования.
Тем, кто ценит время, будут полезны процедуры моей надстройки, среди которых и такая, которая позволяет взять первые N слов во всех выделенных ячейках. И либо вставить в соседний столбец, либо оставить в изначальных ячейках. За режим вывода отвечает маленький флажок в надстройке:
Хотите так же быстро извлекать слова по их позиции в Excel?
!SEMTools поможет с этой и решит многие другие задачи за пару кликов!
Здравствуйте, не могу разобраться, как мне извлечь из ФИО первую букву имени, есть спецы?) |
|
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#2 23.03.2021 11:31:55
А Вам по какому профилю спецы нужны? Не видя где и как записано это ФИО выдать решение смогут только спецы по гаданию
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||
А проще пользоваться функцией excel flash fill, без формул и сложностей |
|
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#4 23.03.2021 11:43:52
так-то, но не зная какая конечная цель преследуется и какие исходные условия — советовать можно многое и ни разу не угадать. Плюс, как ни странно, но не у всех даже 2010 установлен, не говоря про 2013, в котором это самое мгновенное заполнение есть Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||
Ігор Гончаренко Пользователь Сообщений: 13746 |
#5 23.03.2021 11:57:19
первая буква имени из ФИО будет И Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
||
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#6 23.03.2021 11:59:04
и нужно учитывать, что алгоритм мгновенного заполнения далеко не всегда срабатывает предсказуемо и можно «навертеть» много проблем Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||||
Андрей Глинский Пользователь Сообщений: 6 |
#7 23.03.2021 12:32:26 Дмитрий(The_Prist) Щербаков, формула работает!!! спасибо |
Ok, I found a somewhat ridiculous answer which is basically concatenating a lot of ifs to loop through each word (VBA would be easier here). Below formula is for up to 9 words. If your strings have more you just have to add some FIND(A1," ")+1
. Should the formula not work for you, delete the returns in it.
=IFERROR(UPPER(
IF(LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1>=1,IFERROR(IF(SUM(--(LEFT(A1,FIND(" ",A1)-1)={"the","of","a","and"})),"",LEFT(A1,1)),LEFT(A1,1)),"")&
IF(LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1>=2,IF(SUM(--(MID(A1,FIND(" ",A1)+1,IFERROR(FIND(" ",A1,FIND(" ",A1)+1),LEN(A1))-(FIND(" ",A1)+1))={"the","of","a","and"})),"",MID(A1,FIND(" ",A1)+1,1)),"")&
IF(LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1>=3,IF(SUM(--(MID(A1,FIND(" ",A1,FIND(" ",A1)+1)+1,IFERROR(FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1),LEN(A1))-(FIND(" ",A1,FIND(" ",A1)+1)+1))={"the","of","a","and"})),"",MID(A1,FIND(" ",A1,FIND(" ",A1)+1)+1,1)),"")&
IF(LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1>=4,IF(SUM(--(MID(A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1,IFERROR(FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1),LEN(A1))-(FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1))={"the","of","a","and"})),"",MID(A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1,1)),"")&
IF(LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1>=5,IF(SUM(--(MID(A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1,IFERROR(FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1),LEN(A1))-(FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1))={"the","of","a","and"})),"",MID(A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1,1)),"")&
IF(LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1>=6,IF(SUM(--(MID(A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1)+1,IFERROR(FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1)+1),LEN(A1))-(FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1)+1))={"the","of","a","and"})),"",MID(A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1)+1,1)),"")&
IF(LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1>=7,IF(SUM(--(MID(A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1)+1)+1,IFERROR(FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1)+1)+1),LEN(A1))-(FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1)+1)+1))={"the","of","a","and"})),"",MID(A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1)+1)+1,1)),"")&
IF(LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1>=8,IF(SUM(--(MID(A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1)+1)+1)+1,IFERROR(FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1)+1)+1)+1),LEN(A1))-(FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1)+1)+1)+1))={"the","of","a","and"})),"",MID(A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1)+1)+1)+1,1)),"")&
IF(LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1>=9,IF(SUM(--(MID(A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1)+1)+1)+1)+1,IFERROR(FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1)+1)+1)+1)+1),LEN(A1))-(FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1)+1)+1)+1)+1))={"the","of","a","and"})),"",MID(A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1)+1)+1)+1)+1,1)),"")
),"")
Например, вот список текстовых строк, которые смешаны с цифрами и буквами на листе, и поиск положения первой буквы (альфа-символа), как показано на скриншоте ниже, может быть для вас неприятной проблемой. Однако в этой статье я расскажу о некоторых приемах, которые помогут вам быстро решить эту задачу.
Вот несколько формул, которые помогут вам найти позицию первой буквы в строке.
Выберите пустую ячейку, в которую вы поместите результат, например, здесь B2, и введите эту формулу =MATCH(TRUE,ISERROR(VALUE(MID(A2,ROW(INDIRECT(«1:»&LEN(A2))),1))),0), держать Shift + Ctrl, и нажмите Enter ключ для получения результата. Затем щелкните B2 и перетащите дескриптор автозаполнения над ячейками, для которых необходимо применить эту формулу. Смотрите скриншот:
Функции: с приведенной выше формулой, если нет никаких буквенных символов, будет отображаться значение ошибки.
В формуле A2 — это ячейка, в которой вы хотите найти первую позицию альфы, вы можете изменить ее по своему усмотрению.
Если вы обычно применяете определенную функцию, здесь также есть определенная функция, которая поможет вам найти первую альфу и вернуться в ее положение.
1. Нажмите Alt + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > модульe и вставьте код ниже в Модули скрипты.
VBA: найти позицию первой буквы
Function FirstNonDigit(xStr As String) As Long
'Updateby20220915
Dim xChar As Integer
Dim xPos As Integer
Dim I As Integer
Application.Volatile
For I = 1 To Len(xStr)
xChar = Asc(Mid(xStr, I, 1))
If (xChar <= 90 And xChar >= 65) Or (xChar <= 122 And xChar >= 97) Then
xPos = I
Exit For
End If
Next
FirstNonDigit = xPos
End Function
3. Сохраните код и вернитесь к листу, выберите пустую ячейку и введите эту формулу. = FirstNonDigit (A15), нажмите Enter key, и вы можете найти позицию первого альфа-символа.
Но в некоторых других случаях вам может потребоваться извлечь только альфа-символы из смешанной строки, как показано ниже. В этой ситуации вы можете применить Удалить символы полезности Kutools for Excel — удобный и полезный дополнительный инструмент, позволяющий быстро сделать это.
После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:
1. Сделайте копии строк, из которых вы хотите извлечь буквенные символы. Смотрите скриншот:
2. Затем выберите скопированные строки и нажмите Кутулс > Текст > Удалить символы. Смотрите скриншот:
3. И в подсказке Удалить символы диалог, проверьте Не альфа только вариант, вы можете предварительно просмотреть удаленные результаты, отметив предварительный просмотр коробка. Смотрите скриншот:
4. Нажмите Ok or Применить. Теперь извлекаются только альфа-символы.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Skip to content
ПСТР — одна из текстовых функций, которые Microsoft Excel предоставляет для управления текстовыми строками. На самом базовом уровне она используется для извлечения подстроки из середины текста.
В этом руководстве мы обсудим синтаксис и особенности функции Excel ПСТР (в английской версии – MID), а затем вы узнаете несколько вариантов творческого её использования для выполнения сложных задач.
- Синтаксис и особенности
- Если 2 слова — извлекаем имя и фамилию
- Как получить текст между двумя определенными символами
- Как извлечь любое по счету слово
- Получаем слово с нужными буквами или символами
- Как заставить ПСТР возвращать число?
- Использование регулярных выражений для извлечения части текста
- Как извлечь текст из ячейки с помощью Ultimate Suite
Cинтаксис.
Функция ПСТР возвращает указанное количество знаков, начиная с указанной вами позиции.
Функция Excel ПСТР имеет следующие аргументы:
ПСТР(текст; начальная_позиция; количество_знаков)
Где текст — это исходная текстовая строка. Далее следует позиция первого символа, который вы хотите извлечь, и количество их для извлечения.
Все 3 аргумента обязательны.
Например, чтобы извлечь 6 знаков из A2, начиная с 17-го, используйте эту формулу:
=ПСТР(A2;17;6)
Результат может выглядеть примерно так:
5 вещей, которые вы должны знать о функции Excel ПСТР
Как вы только что убедились, в использовании функции ПСТР в Excel нет ничего страшного. И помня следующие простые факты, вы избежите наиболее распространенных ошибок.
- Функция ПСТР всегда возвращает текстовую строку, даже если извлеченная подстрока содержит только цифры. Это может иметь большое значение, если вы хотите использовать результат формулы ПСТР в других вычислениях. Чтобы преобразовать цифры в число, применяйте ПСТР в сочетании с функцией ЗНАЧЕН (VALUE в английской версии), как показано в этом примере. (ссылка на последний раздел).
- Когда начальная позиция больше, чем общая длина исходного текста, формула Excel ПСТР возвращает пустое значение («»).
- Если начальная позиция меньше 1, формула ПСТР возвращает ошибку #ЗНАЧ!.
- Когда третий аргумент меньше 0 (отрицательное число), формула ПСТР возвращает ошибку #ЗНАЧ!. Если количество знаков для извлечения равно 0, выводится пустая строка (пустая ячейка).
- В случае, если сумма начальной позиции и количества знаков превышает общую длину исходного текста, функция ПСТР в Excel возвращает подстроку начиная с начальной позиции и до последнего символа.
При решении реальных задач в Excel вам чаще всего потребуется использовать ПСТР в сочетании с другими функциями, как показано в следующих примерах.
Как извлечь имя и фамилию.
Если у вас была возможность прочитать наши недавние уроки, вы уже знаете, как вытащить имя с помощью функции ЛЕВСИМВ и получить фамилию с помощью ПРАВСИМВ. Но, как это часто бывает в Excel, одно и то же можно сделать разными способами.
Получаем имя.
Предполагая, что полное имя находится в ячейке A2, имя и фамилия разделены интервалом, вы можете извлечь имя, используя следующую формулу:
=ПСТР(A2;1;ПОИСК(» «;A2)-1)
ПОИСК используется для сканирования исходного значения на предмет пробела (» «) и возврата его позиции, из которой вы вычитаете 1, чтобы избежать пробелов после имени. Затем вы используете ПСТР, чтобы вернуть подстроку, начинающуюся с первого знака и заканчивая предшествующим пробелу, таким образом извлекая первое имя.
Получаем фамилию.
Чтобы извлечь фамилию из A2, используйте эту формулу:
=СЖПРОБЕЛЫ(ПСТР(A2;ПОИСК(» «;A2);ДЛСТР(A2)))
Опять же, вы используете ПОИСК, чтобы определить начальную позицию (пробел). Нам не нужно точно рассчитывать конечную позицию (как вы помните, если вместе взятые начальная позиция и количество символов больше, чем общая длина текста, возвращаются просто все оставшиеся). Итак, в аргументе количество символов вы просто указываете общую первоначальную длину , возвращаемую функцией ДЛСТР . Впрочем, вместо этого вы можете просто ввести число, представляющее самую длинную фамилию, которую вы ожидаете найти, например 100. Наконец, СЖПРОБЕЛЫ удаляет лишние интервалы, и вы получаете следующий результат:
Как выделить подстроку между двумя разделителями.
Продолжим предыдущий пример. А если, помимо имени и фамилии, ячейка A2 также содержит отчество, то как его извлечь?
Технически задача сводится к определению позиций двух пробелов в исходном тексте, и вы можете сделать это следующим образом:
- Как и в предыдущем примере, используйте ПОИСК, чтобы определить позицию первого (» «), к которому вы добавляете 1, потому что вы хотите начать с символа, следующего за ним. Таким образом, вы получаете адрес начальной позиции: ПОИСК (» «; A2) +1
- Затем вычислите позицию 2- го интервала, используя вложенные функции поиска, которые предписывают Excel начать поиск именно со 2-го: ПОИСК (» «; A2, ПОИСК (» «; A2) +1)
Чтобы узнать количество извлекаемых знаков, вычтите позицию первого пробела из положения второго. И затем еще вычтите 1 из результата, поскольку вам не нужны лишние интервалы в получившемся результате. Таким образом, у вас есть второй аргумент для формулы:
ПОИСК(» «; A2; ПОИСК(» «; A2) +1) — ПОИСК(» «; A2)
Соединив все аргументы, мы получаем формулу для извлечения подстроки между двумя пробелами:
=ПСТР(A2;ПОИСК(» «;A2)+1;ПОИСК(» «;A2;ПОИСК(» «;A2)+1)-ПОИСК(» «;A2)-1)
На следующем скриншоте показан результат:
Аналогичным образом вы можете извлечь текст между любыми другими разделителями:
ПСТР( строка ; ПОИСК( разделитель ; строка ) +1; ПОИСК( разделитель ; строка ; ПОИСК( разделитель ; строка ) +1) — ПОИСК( разделитель ; строка ) -1)
Например, чтобы извлечь отрезок, выделенный запятой с пробелом после неё, используйте следующее выражение:
=ПСТР(A2;ПОИСК(«, «;A2)+1;ПОИСК(«, «;A2;ПОИСК(«, «;A2)+1)-ПОИСК(«, «;A2)-1)
На следующем рисунке эта формула используется для извлечения из адреса названия города, и она отлично справляется со своей задачей:
Как получить N-е слово из текста.
Этот пример демонстрирует оригинальное использование сложной формулы ПСТР в Excel, которое включает 5 различных составных частей:
- ДЛСТР — чтобы получить общую длину.
- ПОВТОР — повторение определенного знака заданное количество раз.
- ПОДСТАВИТЬ — заменить один символ другим.
- ПСТР — извлечь подстроку.
- СЖПРОБЕЛЫ — удалить лишние интервалы между словами.
Общая формула выглядит следующим образом:
СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ( строка ; » «; ПОВТОР (» «; ДЛСТР( строка ))); ( N -1) * ДЛСТР( строка ) +1; ДЛСТР( строка )))
Где:
- Строка — это исходный текст, из которого вы хотите извлечь желаемое слово.
- N – порядковый номер слова, которое нужно получить.
Например, чтобы вытащить второе слово из A2, используйте это выражение:
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ($A$2;» «;ПОВТОР(» «;ДЛСТР($A$2))); (2-1)*ДЛСТР($A$2)+1; ДЛСТР($A$2)))
Или вы можете ввести порядковый номер слова, которое нужно извлечь (N) в какую-либо ячейку, и указать эту ячейку в формуле, как показано на скриншоте ниже:
Как работает эта формула?
По сути, Excel «оборачивает» каждое слово исходного текста множеством пробелов, находит нужный блок «пробелы-слово-пробелы», извлекает его, а затем удаляет лишние интервалы. Чтобы быть более конкретным, это работает по следующей логике:
- ПОДСТАВИТЬ и ПОВТОР заменяют каждый пробел в тексте несколькими. Количество этих дополнительных вставок равно общей длине исходной строки: ПОДСТАВИТЬ($A$2;» «;ПОВТОР(» «;ДЛСТР($A$2)))
Вы можете представить себе промежуточный результат как «астероиды» слов, дрейфующих в пространстве, например: слово1-пробелы-слово2-пробелы-слово3-… Эта длинная строка передается в текстовый аргумент ПСТР.
- Затем вы определяете начальную позицию для извлечения (первый аргумент), используя следующее уравнение: (N-1) * ДЛСТР(A1) +1. Это вычисление возвращает либо позицию первого знака первого слова, либо, чаще, позицию в N-й группе пробелов.
- Количество букв и цифр для извлечения (второй аргумент) — самая простая часть — вы просто берете общую первоначальную длину: ДЛСТР(A2).
- Наконец, СЖПРОБЕЛЫ избавляется от начальных и конечных интервалов в извлечённом тексте.
Приведенная выше формула отлично работает в большинстве ситуаций. Однако, если между словами окажется 2 или более пробелов подряд, это даст неверные результаты (1). Чтобы исправить это, вложите еще одну функцию СЖПРОБЕЛЫ в ПОДСТАВИТЬ, чтобы удалить лишние пропуски между словами, оставив только один, например:
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ($A$2);» «; ПОВТОР(» «;ДЛСТР($A$2))); (B2-1)*ДЛСТР($A$2)+1; ДЛСТР($A$2)))
Следующий рисунок демонстрирует улучшенный вариант (2) в действии:
Если ваш исходный текст содержит несколько пробелов между словами, а также очень большие или очень короткие слова, дополнительно вставьте СЖПРОБЕЛЫ в каждое ДЛСТР, чтобы вы были застрахованы от ошибки:
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ($A$2);» «; ПОВТОР(» «;ДЛСТР(СЖПРОБЕЛЫ ($A$2)))); (B2-1)*ДЛСТР(СЖПРОБЕЛЫ($A$2))+1; ДЛСТР(СЖПРОБЕЛЫ($A$2))))
Я согласен с тем, что это выглядит немного громоздко, но зато безупречно обрабатывает все возможные варианты.
Извлекаем слово, содержащее определенный символ.
В этом примере показана еще одна нестандартная формула Excel ПСТР, которая извлекает слово, содержащее определенную букву или цифру, из любого места:
СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ ( строка , » «, ПОВТОР(» «, 99)), МАКС(1, НАЙТИ( символ , ПОДСТАВИТЬ( строка , » «, ПОВТОР(» «, 99))) — 50), 99))
Предполагая, что исходный текст находится в ячейке A2, и вы хотите получить слово, содержащее символ «$» (цена), выражение принимает следующую форму:
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A2;» «;ПОВТОР(» «;99)); МАКС(1;НАЙТИ(«$»;ПОДСТАВИТЬ(A2;» «;ПОВТОР(» «;99)))-50);99))
Аналогичным образом вы можете извлекать адреса электронной почты (на основе знака «@»), имена веб-сайтов (на основе «www») и так далее.
Теперь разберём пошагово:
Как и в предыдущем примере, ПОДСТАВИТЬ и ПОВТОР превращают каждый пробел в исходном тексте в несколько, точнее, в 99.
НАЙТИ находит позицию нужного символа (в данном примере $), из которой вы вычитаете 50. Это возвращает вас на 50 позиций назад и помещает где-то в середине блока из 99 пробелов, который предшествует слову, содержащему указанный символ.
МАКС используется для обработки ситуации, когда нужное значение появляется в начале исходного текста. В этом случае результат ПОИСК() — 50 будет отрицательным числом, а МАКС(1, ПОИСК() — 50) заменяет его на 1.
С этой начальной точки ПСТР отбирает следующие 99 знаков и возвращает интересующее нас слово, окруженное множеством пробелов. Как обычно, СЖПРОБЕЛЫ помогает избавиться от лишних из них, оставив только один.
Совет. Если извлекаемый отрезок очень большой, замените 99 и 50 на более крупные числа, например 1000 и 500.
Как заставить ПСТР возвращать число?
Как и другие текстовые функции, Excel ПСТР всегда возвращает текст, даже если он содержит только цифры и очень похож на число. Вы можете убедиться с этом, взглянув на пример чуть выше, когда мы получили число «20%» как текст.
Чтобы преобразовать результат в число, просто передайте полученный результат в функцию ЗНАЧЕН (VALUE в английской версии), которая преобразует текстовое значение, состоящее из цифр, в число.
Например, чтобы извлечь подстроку из 3 символов, начинающуюся с 7- го символа, и преобразовать ее в число, используйте:
=ЗНАЧЕН(ПСТР(A2;7;3))
На скриншоте ниже показан результат. Обратите внимание, что числа с выравниванием по правому краю помещены в столбец B, в отличие от исходных текстовых значений с выравниванием по левому краю в столбце A:
Тот же подход работает и для более сложных случаев. В приведенном выше примере, предполагая, что коды ошибок имеют переменную длину, вы можете извлечь их с помощью ПСТР, которая получает подстроку между двумя разделителями, вложенную в ЗНАЧЕН:
=ЗНАЧЕН(ПСТР(A2;ПОИСК(«:»;A2)+1;ПОИСК(«:»;A2;ПОИСК(«:»;A2)+1)-ПОИСК(«:»;A2)-1))
Вот как можно использовать функцию ПСТР в Excel.
Использование регулярных выражений, чтобы извлечь часть текста.
Регулярное выражение – это шаблон, состоящий из последовательности символов, который можно использовать для поиска соответствующей последовательности в другой строке.
Как добавить в Excel пользовательскую функцию работы с регулярными выражениями и как правильно составить шаблон – читайте подробную инструкцию здесь.
Вы можете извлечь из ячейки все числа или все буквы, телефонный номер, адрес электронной почты, дату, время, текст между любыми двумя символами или двумя словами, текст после определенного символа, и еще множество вариантов.
Вот пример: из наименования товара — Коммутатор Optimus U1E-8F/1G/1S, нужно извлечь номер модели. Поскольку этот номер находится в конце наименования, то будем искать то, что записано после последнего пробела.
= RegExpExtract(A1; «([^s.]+)$»)
В результате получим U1E-8F/1G/1S, что и требовалось.
Как извлечь текст из ячейки с помощью Ultimate Suite
Как вы только что видели, Microsoft Excel предоставляет набор различных функций для работы с текстовыми строками. Если вам нужно извлечь какое-то слово или часть текста из ячейки, но вы не уверены, какая функция лучше всего подходит для ваших нужд, передайте работу Ultimate Suite for Excel. Заодно не придётся возиться с формулами.
Вы просто переходите на вкладку Ablebits Data > Текст, выбираете инструмент Split Text и в выпадающем списке нажимаете Извлечь (Extract) :
Теперь вы выбираете исходные ячейки, и какие бы сложные строки они ни содержали, извлечение из них подстроки сводится к этим двум простым действиям:
- Укажите, сколько символов вы хотите получить из начала, конца или середины строки; или выберите извлечение всего текста до или после определенного символа.
- Щелкните Вставить результаты (Insert Results). Готово!
Кроме того, вы можете извлечь любое число символов с начала или в конце текста, из середины текста, между какими-то символами. Например, чтобы извлечь доменные имена из списка адресов электронной почты, вы выбираете чекбокс Все после текста (All after text) и вводите @ в поле рядом с ним. Чтобы извлечь имена пользователей, выберите переключатель Все до текста (All before text), как показано на рисунке ниже.
Помимо скорости и простоты, инструмент «Извлечь текст» имеет дополнительную ценность — он поможет вам изучить формулы Excel в целом и функции подстроки в частности. Как? Выбрав флажок Вставить как формула (Insert as formula) в нижней части панели, вы убедитесь, что результаты выводятся в виде формул, а не просто как значения. Естественно, эти формулы вы можете использовать в других таблицах.
В этом примере, если вы выберете ячейки B2 и C2, вы увидите следующие формулы соответственно:
- Чтобы извлечь имя пользователя:
=ЕСЛИОШИБКА(ЛЕВСИМВ(A2,ПОИСК(«@»,A2)-1),»»)
- Чтобы извлечь домен:
=ЕСЛИОШИБКА(ПРАВСИМВ(A2, ДЛСТР(A2)- ПОИСК(«@»,A2) — ДЛСТР(«@») + 1),»»)
Сколько времени вам потребуется, чтобы самостоятельно составить эти выражения?
Поскольку результаты представляют собой формулы, извлеченные подстроки будут обновляться автоматически, как только в исходные ячейки будут внесены какие-либо изменения. Когда в ваш набор данных добавляются новые записи, вы можете скопировать формулы в другие ячейки как обычно, без необходимости заново запускать инструмент «Извлечь текст».
Если вам интересно попробовать это, а также множество других полезных функций, включенных в Ultimate Suite for Excel, вы можете загрузить ознакомительную версию. Если вам нравятся инструменты, вы можете получить лицензию по очень специальной цене, которая доступна только для наших русскоязычных пользователей.
Благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!
Как извлечь первую букву каждого слова из ячейки?
На чтение 3 мин. Просмотров 119 Опубликовано 20.05.2021
Предположим, у вас есть список названий стран на вашем листе, и теперь вам нужно извлечь первую букву каждого слова в ячейке, как показано на следующих снимках экрана. Обычно в Excel нет прямой функции выбора первой буквы каждого слова. Но здесь я могу рассказать о полезном способе решения этой задачи.
Извлечь первую букву каждого слова из ячейки с помощью функции, определяемой пользователем
Вкладка Office Включить редактирование с вкладками и просмотр в Office, и сделать вашу работу намного проще …
Подробнее … Бесплатная загрузка …
Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%.
- Повторное использование всего: добавьте больше использованные или сложные формулы, диаграммы и все остальное в избранное и быстро повторно используйте их в будущем.
- Более 20 текстовых функций: извлечение числа из текстовой строки; Извлечь или удалить часть текстов; Преобразование чисел и валют в английские слова.
- Инструменты слияния: несколько книг и листов в одну; Объединить несколько ячеек/строк/столбцов без потери данных; Объедините повторяющиеся строки и суммируйте.
- Инструменты разделения: разделение данных на несколько листов в зависимости от значения; Из одной книги в несколько файлов Excel, PDF или CSV; Один столбец в несколько столбцов.
- Вставить пропуск скрытых/отфильтрованных строк; Подсчет и сумма по цвету фона; Массовая отправка персонализированных писем нескольким получателям.
- Суперфильтр: создавайте расширенные схемы фильтров и применяйте их к любым листам; Сортировать по неделе, дню, частоте и т. Д. Фильтр жирным шрифтом, формулами, комментарием …
- Более 300 мощных функций; Работает с Office 2007-2019 и 365; Поддерживает все языки; Простое развертывание на вашем предприятии или в организации.
Подробнее … Бесплатная загрузка …
Извлечь первую букву каждого слова из Ячейка с функцией, определяемой пользователем
Потрясающе! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Сэкономьте 50% своего времени и сократите тысячи щелчков мышью каждый день!
В Excel вы можете создать функцию, определяемую пользователем для извлечения первых букв каждого слова в ячейке. Пожалуйста, сделайте следующее:
1 . Удерживая нажатыми клавиши ALT + F11 , откройте окно Microsoft Visual Basic для приложений .
2 . Нажмите Вставить > Module и вставьте следующий код в окно модуля .
3 . Затем сохраните и закройте этот код, вернитесь на рабочий лист и введите эту формулу = GetFirstLetters (A2) ( A2 указывает ячейку, из которой вы хотите извлечь первую букву, можете поменять как хотите) в пустую ячейку. См. Снимок экрана:
4 . Затем нажмите клавишу Enter и выберите ячейку B2, затем перетащите маркер заполнения к ячейкам, к которым вы хотите применить эту формулу. И все первые буквы были извлечены из серии слов, см. Снимок экрана:
Как извлечь первое/последнее/n-е слово из текстовой строки в Excel?