Note: The other languages of the website are Google-translated. Back to English
Увійти  \/ 
x
or
x
Реєстрація  \/ 
x

or

Як витягти перше / останнє / n-те слово з текстового рядка в Excel?

Ви коли-небудь стикалися з проблемою, що вам потрібно витягти певне слово з текстового рядка на аркуші? Наприклад, у вас є наступний діапазон текстових рядків, необхідних для отримання першого / останнього або n-го слова з них, тут я можу розповісти про деякі ефективні способи вирішення цього питання.


Витягніть перше слово або прізвище з текстового рядка за допомогою формул

Якщо вам потрібно витягти перше слово зі списку текстових рядків, вам можуть допомогти наступні формули.

Щоб витягти перше слово, введіть формулу нижче в порожню комірку, а потім перетягніть маркер автозаповнення цієї комірки до діапазону, як вам потрібно.

= IF (ISERR (FIND ("", A2)), "", LEFT (A2, FIND ("", A2) -1))

Щоб витягти останнє слово з кожної комірки, застосуйте цю формулу:

= IF (ISERR (FIND ("", A2)), "", ПРАВО (A2, LEN (A2) -FIND ("*", ЗАМІНА (A2, "", "*", LEN (A2) -LEN ( ЗАМІНИТИ (A2, "", "")))))))

І тепер ви побачите, як з кожної клітинки витягнуто перше або останнє слово.

Примітки: У наведених вище формулах A2 позначає клітинку, з якої ви витягнете перше або останнє слово.

Важко запам’ятати довгі складні формули? Дивовижний інструмент допоможе вам витягти n-те слово wлише кількома кліками!

Вище довгі формули можуть витягувати лише перше і останнє слово, але буде марно витягувати вказане n-те слово, говорить друге слово, шосте слово і т. Д. Навіть ви можете зрозуміти формули для вирішення проблеми, формули повинні бути занадто складний для запам’ятовування та застосування. Тут рекомендується виділити n-те слово в клітинку функції Kutools для Excel, і це допоможе вам якомога простіше витягти n-те слово! Повнофункціональна безкоштовна пробна версія 30 днів!

Kutools для Excel - Включає більше 300 зручних інструментів для Excel. Повна функція безкоштовної пробної версії 30 днів, кредитна картка не потрібна! Get It Now

Витягніть n-те слово з текстового рядка за допомогою визначеної користувачем функції

Якщо ви хочете витягти друге, третє або яке-небудь n-те слово з текстового рядка, ви можете створити визначену користувачем функцію для роботи з ним.

1. Утримуйте клавішу ALT + F11 ключі, щоб відкрити Вікно Microsoft Visual Basic для програм.

2. Клацання Insert > Модуліта вставте наступний код у Модулі вікна.

Function FindWord(Source As String, Position As Integer)
'Update 20131202
Dim arr() As String
arr = VBA.Split(Source, " ")
xCount = UBound(arr)
If xCount < 1 Or (Position - 1) > xCount Or Position < 0 Then
    FindWord = ""
Else
    FindWord = arr(Position - 1)
End If
End Function

3. Потім збережіть код, у цьому прикладі я отримаю третє слово із рядка, тому введіть цю формулу = пошукове слово (A2,3) у порожню комірку B2, а потім перетягніть маркер автозаповнення цієї комірки до діапазону, як вам потрібно. Дивіться знімок екрана:

Примітка: У наведеній вище формулі A2 - це клітинка, з якої потрібно витягти слово, номер 3 позначає третє слово в рядку, яке ви витягнете, і ви можете змінити їх, як вам потрібно.


Витягніть кожне слово з текстового рядка та перелічіть їх горизонтально або вертикально

Цей метод запровадить Kutools для Excel Розділені клітини утиліта для вилучення кожного слова з комірок текстового рядка, а потім перерахування вилучених слів по горизонталі чи вертикалі залежно від ваших потреб.

Kutools для Excel - Включає більше 300 зручних інструментів для Excel. Повна функція безкоштовної пробної версії 30 днів, кредитна картка не потрібна! Безкоштовна пробна версія зараз!

1. Виділіть комірки текстового рядка, з яких ви будете витягувати їхні слова, та клацніть на Кутулс > Злиття та розділення > Розділені клітини.

2. У діалоговому вікні Розділити клітинки вкажіть тип розділення в полі тип розділ перевірити Простір опція в Вкажіть роздільник і натисніть на Ok кнопку. Дивіться знімок екрана:

3. Тепер вкажіть діапазон призначення, в який ви будете виводити витягнуті слова, і натисніть на OK button

Якщо ви позначили Розділити на стовпці у діалоговому вікні "Розділити клітинки" кожне слово витягується з кожного текстового рядка та перераховується вертикально.

Якщо ви позначили Розділити на ряди у діалоговому вікні "Розділити клітинки" кожне слово витягується з кожного текстового рядка та перераховується горизонтально.


Вийміть n-те слово з текстового рядка в Excel за допомогою дивовижного інструменту

Якщо ви встановили Kutools для Excel, ви можете скористатися його Помічником формул> Видобути n-те слово в клітинці, щоб швидко швидко витягти n-те слово з вказаної комірки.

Kutools для Excel - Включає більше 300 зручних інструментів для Excel. Повна функція безкоштовної пробної версії 30 днів, кредитна картка не потрібна! Безкоштовна пробна версія зараз!

1. Виділіть клітинку, куди ви помістите витягнуте слово, і натисніть Кутулс > Помічник формули > Помічник формули щоб увімкнути цю функцію.

2. У діалоговому вікні «Помічник формул» виконайте такі дії:
(1) Виберіть текст від Тип формули випадаючий список;
(2) Клацніть, щоб виділити Витягніть n-те слово в клітинку в Виберіть формулу вікно списку;
(3) В Осередок у полі вкажіть клітинку, з якої ви будете витягувати слово;
(4) в N-й вкажіть номер.

3. Натисніть Ok кнопку. Якщо потрібно, перетягніть маркер автозаповнення комірки формули та скопіюйте формулу в інші комірки.


Демонстрація: витягніть кожне слово з текстового рядка та перелічіть їх горизонтально або вертикально


Kutools для Excel включає більше 300 зручних інструментів для Excel, які можна спробувати без обмежень протягом 30 днів. Завантажте та безкоштовно пробну версію зараз!

Статті по темі:


Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2019 та 365. Підтримує всі мови. Простота розгортання на вашому підприємстві чи в організації. Повна функція 30-денної безкоштовної пробної версії. 60-денна гарантія повернення грошей.
вкладка kte 201905

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    ELin · 1 years ago
    I've created the FindWord custom function as described and it worked perfectly but it stopped working the next day. I looked in the VBA window and the Module is still there. Any idea why the function is not working anymore?
  • To post as a guest, your comment is unpublished.
    shashikuamr · 1 years ago
    Dark Chocolate 25gm box 12 pcs
    Dark Chocolate 20gm*24 box
    White Chocolate 15gm
    White Chocolate 25gm*24
    Biscuits W/Marshmallow300gm
    Chocolate 40gm
    Can some plz help to extract the numbers before "gm", for example : 25,20,15,25,300,40
  • To post as a guest, your comment is unpublished.
    Maura · 1 years ago
    Hi I would like to know how to use the VBA model but I have sentences of only one word, and i would like to pick the first word even if there is only one word.

    Thank you
    • To post as a guest, your comment is unpublished.
      kellytte · 1 years ago
      Hi Maura,
      The VBA cannot extract the first word if there is only word in the cell. However, it’s recommended to apply the Text to Column to extract the first word of every cell in a column quickly.
      1. Select the column, copy, and paste in a blank column.
      2. Keep the new column selected, click Data > Text to Column.
      3. In the Text column dialog, select Delimited, and then check Space as delimiters, and finally click Finish.
      4. Now all words are separated by space. For the extracted words, you can remove all columns except the first one.
  • To post as a guest, your comment is unpublished.
    murali · 4 years ago
    i want to remove the last word in cell and data is like this "/Document/CstmrCdtTrfInitn/PmtInf/CdtTrfTxInf/Cdtr/CtctDtls/FaxNb" can i have formula
  • To post as a guest, your comment is unpublished.
    John · 4 years ago
    Thanks so much for these! I have a question, though: how do I extract a number or group of numbers from a cell or textbox? For instance, if I have [37.5" x 21'] in cell A1, how could extract 37.5 into A2? There could be any number of characters and numbers in A1, but I'll always want the first number to the left of the "X", and the first number to the right. Not sure if you've covered something like this elsewhere, so I thought I'd ask here.
    (Not sure if this went through the first time, so here it is again.)
  • To post as a guest, your comment is unpublished.
    Antonio · 4 years ago
    Thank you! It works fine called in a Sub.
  • To post as a guest, your comment is unpublished.
    DC2209 · 5 years ago
    the original formula isn't working for me, I keep getting #NAME?, anyone able to help? I am using Excel 2013 and this VBA would save me sooooo much time
  • To post as a guest, your comment is unpublished.
    DC2209 · 5 years ago
    The original VBA code posted here would save me so much time, however whenever I type in the =findword formula, I then get #NAME?, anyone able to help me? I am using Excel 2013
  • To post as a guest, your comment is unpublished.
    Shiva · 5 years ago
    Hi,

    I am having cell with values like SAN_UN_TC1,SAN_UN_TC2,PEP_HR_TC1
    I would like to extract first words liek SAN /PEP into one cell and words liek UN/HR to another cell
    How could i do it, Any help is appreciated.

    Thanks,
    Shiva
    • To post as a guest, your comment is unpublished.
      Allart · 5 years ago
      If number of characters in string (SAN_UN_TC1) is fixed (3_2_3), it's simple:
      column 1: =LEFT(B15,3)
      column 2: =MID(B15,5,2)
      column 3: =RIGHT(B15,3)
  • To post as a guest, your comment is unpublished.
    Dean · 5 years ago
    Many thanks for sharing VBA code....saved me a lot of time
  • To post as a guest, your comment is unpublished.
    Dean · 5 years ago
    VBA is so useful - thanks for sharing!
  • To post as a guest, your comment is unpublished.
    Ron Hollingsworth · 5 years ago
    I would like to extract the first word on A1 and put it in front of a word in B1. what's the formula to do that? Thanks!
  • To post as a guest, your comment is unpublished.
    Lorie · 5 years ago
    I'm looking for a formula that will pull out the First and Last Name in a text string. I've tried the formula here, which is amazing by the way, and it works great until it comes across a surname that is not hyphenated. Here is a sample of the text strings I'm presented with:
    example 1: Mouse, Mickey Justin M Feb 10
    example 2: Hall Mouse, Minnie Jean F Mar 18

    For string example 1, the formula/function here works great. For example 2 I get "Hall, Mouse".

    Here is the Excel formula I'm running:
    =CONCATENATE(LEFT(A2,FIND(", ",A2)+1), 'Personal Macro Workbook'!FindWord(A2,2))

    Is there a way to modify the user defined function so that it looks for the first word to the right of the ","?
    • To post as a guest, your comment is unpublished.
      Allart · 5 years ago
      Remove the last name from the string you feed to the FindWord function:
      - find the comma position
      - subtract this from the total length of the string
      - use the remaining 'RIGHT' side of the original string

      =CONCATENATE(LEFT(A2,FIND(", ",A2)+1),FindWord(RIGHT(A2,LEN(A2)-FIND(", ",A2)-1),1))
  • To post as a guest, your comment is unpublished.
    Dan · 5 years ago
    First word. Copy/paste the column, select the contents of the new column, replace " *" with "".
    Last word. Copy/paste the column, select the contents of the new column, replace "* " with ""
  • To post as a guest, your comment is unpublished.
    Vishal · 6 years ago
    ITS WORKING that's good.
    really helpful for us.
  • To post as a guest, your comment is unpublished.
    Mark Bolton · 6 years ago
    I have 64bit Excel 2013 and am missing the Morefunc addin. Based on the code above, I have come up with this replacement for Morefunc's WMID function. I would be grateful if anyone more expert than me could perform any tidying of it.

    Function WMid1(Source As String, Optional Position As Integer, Optional WordCount As Integer, Optional Separator As String)
    Dim arr() As String
    Dim xCount As Integer
    Dim wCount As Integer
    Dim wFirst As Integer
    Dim wLast As Integer
    If Position = 0 Then Position = 1
    If WordCount = 0 Then WordCount = 1
    If Separator = "" Then Separator = " "
    arr = VBA.Split(Trim(Source), Separator)
    xCount = UBound(arr) + 1
    If Position < 1 Then
    wFirst = Application.Max(xCount + Position - WordCount + 1, 0)
    wLast = xCount + Position
    Else
    wFirst = Position - 1
    wLast = Application.Min(xCount - 1, Position + WordCount - 2)
    End If
    If xCount < 2 Or Abs(Position) > xCount Then
    WMid1 = ""
    Else
    WMid1 = arr(wFirst)
    For wCount = wFirst + 1 To wLast
    WMid1 = WMid1 & Separator & arr(wCount)
    Next
    End If
    WMid1 = Trim(WMid1)
    End Function
  • To post as a guest, your comment is unpublished.
    Thang Nguyen · 6 years ago
    Hi geeks,

    I have a cell like this: 1 ABCD; 2 DEDF; 1 DED#3d; 4 FDWDS; 1 ED

    And I would like to extract character after 1. So desired to have a result as below: ABCD;DED#3d;ED
  • To post as a guest, your comment is unpublished.
    Allart · 6 years ago
    Try this (see my reply above):

    Function FindWord(Source As String, Position As Integer)
    ' gets 1st, 2nd, last(0), second to last(-2) etc, word from a string
    ' Update 20150505
    Dim arr() As String
    arr = VBA.Split(WorksheetFunction.Trim(Source), " ")
    xCount = UBound(arr)
    Select Case Position
    Case -xCount To 0
    FindWord = arr(Position + xCount)
    Case 1 To xCount + 1
    FindWord = arr(Position - 1)
    Case Else
    FindWord = ""
    End Select
  • To post as a guest, your comment is unpublished.
    cheezfri · 6 years ago
    I can't get the code for the first word to work if some of my list has only one word in the cell. e.g.
    first word ---> first
    second ---> [null]
    last word ---> last
  • To post as a guest, your comment is unpublished.
    Angelia · 6 years ago
    Hi..
    Thanks for your code, i have list sentences, and one of them just 1 word, and your code not work if its just only have 1 word..
  • To post as a guest, your comment is unpublished.
    Nico · 6 years ago
    Thank You soooo MUCH!!
  • To post as a guest, your comment is unpublished.
    Badan · 6 years ago
    Thanks, Alan, this is great, thanks! :)
  • To post as a guest, your comment is unpublished.
    Allart · 6 years ago
    Hi, just an addition to the code yesterday. This adds an extra line to adjust for redundant spaces in the source string:

    arr = VBA.Split(WorksheetFunction.Trim(Source), " ")

    regards,
    Allart
  • To post as a guest, your comment is unpublished.
    Allart · 6 years ago
    Hi,

    Thanks for your piece of code. It inspired me to expand a little. With the next lines, you can select: last word (0), one but last (-1), second to last (-2) etc. Regardless of number of words.

    Function FindWord(Source As String, Position As Integer)
    'Update 20150504
    Dim arr() As String
    arr = VBA.Split(Source, " ")
    xCount = UBound(arr)
    Select Case Position
    Case -xCount To 0
    FindWord = arr(xCount + Position)
    Case 1 To (xCount + 1)
    FindWord = arr(Position - 1)
    Case Else
    FindWord = ""
    End Select
    End Function
  • To post as a guest, your comment is unpublished.
    Mohammad · 6 years ago
    Much appreciated. It helped me a lot.
  • To post as a guest, your comment is unpublished.
    yücel · 6 years ago
    how can we change fonts for nth word in a cell
  • To post as a guest, your comment is unpublished.
    MikeSyr · 6 years ago
    This does not work properly on a source string made up of non-words (like vendor names followed by part numbers)
  • To post as a guest, your comment is unpublished.
    Badan12 · 6 years ago
    Hi,

    This really saves a lot of time. Thanks for sharing Can someone also suggest how we can extract the words with vba in a reverse way, e.g last word is 1, the second from right to left is 2 and so on. This will be much appreciated.
  • To post as a guest, your comment is unpublished.
    Balu · 7 years ago
    Good one. This worked very well
  • To post as a guest, your comment is unpublished.
    Balu · 7 years ago
    Hi,

    This is excellent. It worked very well and reduces our strain saves lots of time in this operation.

    Thanks to all who worked on this and shared...
  • To post as a guest, your comment is unpublished.
    baynes@ecg-inc.com · 7 years ago
    Hi, I was just wondering what else I could insert into the Visual Basic formula that could extract and commas or dashs immediatly after the data..

    for e.g. Fortin-
  • To post as a guest, your comment is unpublished.
    Chad · 7 years ago
    This was SUPER helpful, I was wondering if anyone knew of a downloadable, or a copy and pastable list of helpful hand made functions such as the "FindWord" that I would be able to use.
  • To post as a guest, your comment is unpublished.
    Alexandros · 7 years ago
    Thanks a lot! Worked fine! :-)
  • To post as a guest, your comment is unpublished.
    Jarad · 7 years ago
    This user-defined function is awesome! Thanks a ton for sharing it.
  • To post as a guest, your comment is unpublished.
    Edgar · 7 years ago
    That vba code is fantastic, thanks a lot.