Как извлечь слова из строки таблицы Excel
Чтобы извлечь первое слово из строки, формула должна найти позицию первого символа пробела, а затем использовать эту информацию в качестве аргумента для функции ЛЕВСИМВ. Следующая формула делает это: =ЛЕВСИМВ(A1;НАЙТИ(» «;A1)-1) .
Эта формула возвращает весь текст до первого пробела в ячейке A1. Однако у нее есть небольшой недостаток: она возвращает ошибку, если текст в ячейке А1 не содержит пробелов, потому что состоит из одного слова. Несколько более сложная формула решает проблему с помощью новой функции ЕСЛИОШИБКА, отображая все содержимое ячейки, если произошла ошибка:
=ЕСЛИОШИБКА(ЛЕВСИМВ(A1;НАЙТИ(» «;A1)-1);A1) .
Если вам нужно, чтобы формула была совместима с более ранними версиями Excel, вы не можете использовать ЕСЛИОШИБКА. В таком случае придется обойтись функцией ЕСЛИ и функцией ЕОШ для проверки на ошибку:
=ЕСЛИ(ЕОШ(НАЙТИ(» «;A1));A1;ЛЕВСИМВ(A1;НАЙТИ(» «;A1)-1))
Извлечение последнего слова строки
Извлечение последнего слова строки — более сложная задача, поскольку функция НАЙТИ работает только слева направо. Таким образом, проблема состоит в поиске последнего символа пробела. Следующая формула, однако, решает эту проблему. Она возвращает последнее слово строки (весь текст, следующий за последним символом пробела):
=ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(«*»;ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;»»;»»)))))
Но у этой формулы есть такой же недостаток, как и у первой формулы из предыдущего раздела: она вернет ошибку, если строка не содержит по крайней мере один пробел. Решение заключается в использовании функции ЕСЛИОШИБКА и возврате всего содержимого ячейки А1, если возникает ошибка:
=ЕСЛИОШИБКА(ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(«*»;ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»)))));A1)
Следующая формула совместима со всеми версиями Excel:
=ЕСЛИ(ЕОШ(НАЙТИ(» «;A1));A1;ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(«*»;ПОДСТАВИТЬ(A1;»»;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»))))))
Извлечение всего, кроме первого слова строки
Следующая формула возвращает содержимое ячейки А1, за исключением первого слова:
=ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(» «:A1;1)) .
Если ячейка А1 содержит текст 2008 Operating Budget, то формула вернет Operating Budget.
Формула возвращает ошибку, если ячейка содержит только одно слово. Следующая версия формулы использует функцию ЕСЛИОШИБКА, чтобы можно было избежать ошибки; формула возвращает пустую строку, если ячейка не содержит более одного слова:
=ЕСЛИОШИБКА(ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(» «;A1;1));»»)
А эта версия совместима со всеми версиями Excel:
=ЕСЛИ(ЕОШ(НАЙТИ(» «;A1));»»;ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(» «;A1;1)))
Как вытащить первое слово из ячейки excel
Argument ‘Topic id’ is null or empty
Сейчас на форуме
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
| ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Как вытащить первое слово из ячейки excel
Всем привет!
Подскажите, пожалуйста!
Есть в ячейке предложение, нужно
1. Извлечь первое слово до первого пробела
2. Извлечь слова от первого пробела до точки
3. Извлечь оставшиеся слова после точки
Как это реализовать макросом.
Помогите написать конструкцию извлечения, какую функцию использовать
Пользователь
Регистрация: 12.09.2007
Сообщений: 34
1. Left(Range(), InStr(Range(), » «) — 1)
2. Right(Left(Range(), InStr(Range(), «.») — 1), Len(Left(Range(), InStr(Range(), «.») — 1)) — InStr(Range(), » «))
если точка не нужна. Если нужна убрать «- 1»
3. Right(Range(), Len(Range()) — InStr(Range(), «.») — 1)
В Range() внутри скобок укажи ячейку.
Пользователь
Регистрация: 14.08.2009
Сообщений: 66
Спасибо!
А если название разбито на несколько строк, как быть?
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
| Есть в ячейке предложение, нужно 1. Извлечь первое слово до первого пробела |
Sub test() txt = "строка с пробелами": ПервоеСлово = Split(txt, " ")(0) ВтороеСлово = Split(txt, " ")(1) ТретьеСлово = Split(txt, " ")(2) ' . End Sub

__ Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов
| EducatedFool |
| Посмотреть профиль |
| Найти ещё сообщения от EducatedFool |
Регистрация: 11.05.2010
Сообщений: 5,166
хмм. тогда надёжнее так:
Sub test() txt = "строка с пробелами": ПервоеСлово = Split(Application.Trim(txt), " ")(0) ВтороеСлово = Split(Application.Trim(txt), " ")(1) ТретьеСлово = Split(Application.Trim(txt), " ")(2) ' . End Sub
И если разбита — ничего не меняется, но перевод строки остаётся как слово:
Sub test() Sub test() txt = "строка с " & vbNewLine & " пробелами": Debug.Print txt ПервоеСлово = Split(Application.Trim(txt), " ")(0) ВтороеСлово = Split(Application.Trim(txt), " ")(1) ТретьеСлово = Split(Application.Trim(txt), " ")(2) ' . End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 06.08.2010 в 16:17 .
Извлечение слов из ячейки в таблице Excel
Извлечение слов из ячейки в таблице Excel — это простая задача, позволяющая получить первое или последнего слова из текста.
Видеоинструкция

Важно! Последняя цифра 1 отвечает за количество слов, которое будет скопированы, поэтому заменив ее, например, на 3 можно получить первых 3 значения.
Пример для трех.

Копирование последнего слова
Решение заключается в использовании конструкции:
=ЕСЛИОШИБКА(ПРАВСИМВ(A2;ДЛСТР(A2)-НАЙТИ(«*»;ПОДСТАВИТЬ(A2;» «;»*»;ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;» «;»»)))));A2)

Данная конструкция работает без модификации и изменить ее нельзя.
Извлечение n-го слова из ячейки
Получить n-е слово из текста можно при помощи этой формулы (в примере используется 3):
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A1;» «;ПОВТОР(» «;ДЛСТР(A1)));ДЛСТР(A1)*(Number-1)+1;ДЛСТР(A1)))
Где Number — это число, отвечающее за номер.

Пример №2 для 4-го
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A1;» «;ПОВТОР(» «;ДЛСТР(A1)));ДЛСТР(A1)*(4-1)+1;ДЛСТР(A1)))

Подписывайтесь на наш канал в Яндекс.Дзен
Подписывайтесь на наш Telegram-канал
Подписывайтесь на наш Youtube-канал
Подписывайтесь на нашу группу ВКонтакте
Вам также будет интересно
Комментарии 4
Плотва
Очень плохо, т.к. при извлечении n-го слова из текста, следом цепляется пробел.
Добрый день, спасибо за обратную связь, пробел Вы всегда можете удалить при помощи функции сжечь пробелы.
Плотва
Поэтому, учитесь
Пример для трех. =СЖПРОБЕЛЫ( ЛЕВСИМВ(A2;НАЙТИ(«*»;ПОДСТАВИТЬ(A2;» «;»*»;3))) )
Добрый день, спасибо за обратную связь, спасибо за уточнение.
Добавить комментарий Отменить ответ
(5 оценок, среднее: 5,00 из 5)
- Наши социальные сети


- CRM-системы (9)
- Excel (73)
- Google Ads (56)
- Google Data Studio (26)
- Google Optimize (2)
- Google Search Console (22)
- Google Аналитика (50)
- Google Менеджер Тегов (4)
- Google Мой бизнес (3)
- Opencart (33)
- SEO (94)
- SMM (25)
- WordPress (20)
- Yandex DataLens (3)
- Веб-аналитика (148)
- Визуализация данных (13)
- Домены (15)
- Кейсы (6)
- Контекстная реклама (113)
- Локальное SEO (8)
- Полезное (69)
- Сайтостроение (89)
- Таргетинг (31)
- Формулы (16)
- Яндекс.Вебмастер (56)
- Яндекс.Директ (66)
- Яндекс.Маркет (16)
- Яндекс.Метрика (43)
- Яндекс.Справочник (6)
- Ильхом Чакканбаев к записи Бесплатный VPS (VDS) от Oracle навсегда: как получить
- Ильхом Чакканбаев к записи Бесплатный VPS (VDS) от Oracle навсегда: как получить
- Ильхом Чакканбаев к записи Бесплатный VPS (VDS) от Oracle навсегда: как получить
- Юзер к записи Бесплатный VPS (VDS) от Oracle навсегда: как получить
- Юзер к записи Бесплатный VPS (VDS) от Oracle навсегда: как получить
- Обзор сервиса Gerwin.io: генерация контента при помощи ИИ
© 2024
Сео Пульс — блог об интернет-маркетинге