Как правильно настроить извлечение N-го по счету слова из ячейки таблицы Excel
Для извлечения необходимого по счету слова из из ячейки таблицы Excel, используйте следующие методы и способы.
Способ 1. Формулами
Допустим, у вас в ячейке есть полное ФИО, а вам необходимо извлечь только имя или только фамилию. В простом случае это можно сделать парой функций. Для извлечения первого слова в ячейке можно использовать вот такую конструкцию.
Или в англоязычном варианте =LEFT(A1;FIND(" ";A1)-1)
. Функция ПОИСК ищет позицию первого вхождения пробела, а функция ЛЕВСИМВ затем извлекает все символы с начала строки до этой позиции.
Для извлечения второго слова формула будет уже пострашнее.
Или в англоязычном варианте =MID(A1;SEARCH(" ";A1)+1;SEARCH(" ";A1;SEARCH(" ";A1)+1)-SEARCH(" ";A1))
.
Формула для извлечения последнего слова тоже хороша 🙂
Или в англоязычном варианте =RIGHT(A1;LEN(A1)-FIND("*";SUBSTITUTE(A1;" ";"*";LEN(A1)-LEN(SUBSTITUTE(A1;" ";"")))))
.
Если подобное извлечение вам приходится делать часто, то проще будет один раз написать несложную макро-функцию на Visual Basic, которая сможет быстро и красиво извлекать любое по счету слово из любой ячейки.
Способ 2. Пользовательская макрофункция
Открываем редактор Visual Basic на вкладке Разработчик → Редактор Visual Basic (Developer → Visual Basic Editor) или жмем сочетание клавиш Alt+F11. Вставляем новый модуль (меню Insert → Module) и вводим туда текст вот этой пользовательской функции.
1 2 3 4 5 6 7 8 9 10 | Function ExtractWord(Txt, n) As String Dim x As Variant Const DELIM = " " x = Split(Txt, DELIM) If n > 0 And n – 1 <= UBound(x) Then ExtractWord = x(n – 1) Else ExtractWord = "" End If End Function |
Теперь эту функцию можно найти в списке функций (Вставка → Функция) в категории Определенные пользователем (User Defined) и использовать со следующим синтаксисом: =ExtractWord(Txt; n)
, где
- Txt – адрес ячейки с текстом, который делим;
- n – порядковый номер извлекаемого фрагмента.
При необходимости символ-разделитель вместо пробела можно заменить на любой другой (запятую, точку с запятой и т.д.), изменив в третьей строке кода содержимое константы DELIM.