Tip: andere talen zijn Google-Vertaald. Je kunt het English versie van deze link.
Log in
x
or
x
x
Registreren
x

or

Hoe eerste / laatste / nde woord uit tekststring te extraheren in Excel?

Heeft u ooit geleden met het probleem dat u een bepaald woord uit de tekenreeks in een werkblad moet extraheren? U hebt bijvoorbeeld het volgende bereik van tekstreeksen die nodig zijn om het eerste / laatste of nde woord van hen te krijgen, hier kan ik praten over enkele effectieve manieren om het op te lossen.

Extract eerste woord of achternaam uit tekststring met formules

Extract nth word from text string met User Defined Function

Pak elk woord uit een tekststring en noteer ze horizontaal of verticaal

Vouw eenvoudig de voornaam en achternaam uit de volledige namen in Excel

Kutools voor Excel's Splitsen van namen hulpprogramma kan u helpen bij het snel splitsen van volledige namen in voornamen, middelste namen en achternamen met meerdere klikken in Excel. Volledige functie Gratis proef 60-dag!
advertentiedelingsnamen 2

Tabblad Office Schakel bewerken en browsen met tabbladen in Office in en maak uw werk veel eenvoudiger ...
Kutools voor Excel - De beste Office-productiviteitstool lost de meeste van uw Excel-problemen op
  • Alles hergebruiken: Voeg de meest gebruikte of complexe formules, grafieken en al het andere toe aan uw favorieten en hergebruik ze snel in de toekomst.
  • Meer dan 20-tekstfuncties: Nummer uit tekststring halen; Een deel van de tekst extraheren of verwijderen; Nummers en valuta's omzetten in Engelse woorden ...
  • Tools samenvoegen: Meerdere werkmappen en bladen in één; Meerdere cellen / rijen / kolommen samenvoegen zonder gegevens te verliezen; Dubbele rijen en som samenvoegen ...
  • Split gereedschap: Gegevens splitsen in meerdere bladen op basis van waarde; Eén werkmap naar meerdere Excel-, PDF- of CSV-bestanden; Eén kolom naar meerdere kolommen ...
  • Plakken overslaan Verborgen / gefilterde rijen; Tel en som op achtergrondkleur; Maak een verzendlijst en Verzend e-mails op waarde van Cell...
  • Super filter: Maak geavanceerde filterschema's en pas deze toe op alle bladen; Soort per week, dag, frequentie en meer; filters door vetgedrukt, formules, commentaar ...
  • Meer dan 300 krachtige functies; Werkt met Office 2007-2019 en 365; Ondersteunt alle talen; Eenvoudig inzetbaar in bedrijf; Volledige functionaliteit 60-daagse gratis proefversie.

pijl blauwe rechterbel Extract eerste woord of achternaam uit tekststring met formules

Als u het eerste woord uit een lijst met tekenreeksen wilt halen, kunnen de volgende formules u helpen.

Voer deze formule in om het eerste woord uit te pakken = IF (ISERR (FIND ("", A2)), "", LEFT (A2, FIND ("", A2) -1)) in een lege cel en sleep vervolgens de AutoFill-hendel van deze cel naar het bereik dat u nodig hebt.

En nu zul je zien dat het eerste woord uit elke cel wordt gehaald. Zie screenshot hieronder:

Opmerkingen:

(1) In bovenstaande formule, A2 geeft de cel aan waarop u deze formule wilt toepassen.

(2) Pas deze formule toe om de laatste woorden uit elke cel te extraheren: = IF (ISERR (FIND ("", A2)), "", RIGHT (A2, LEN (A2) -FIND ("*", SUBSTITUTE (A2, "", "*", LEN (A2) -LEN ( SUBSTITUTE (A2, "", "")))))).

let op het lint Formule is te ingewikkeld om te onthouden? Sla de formule op als een Auto Text-vermelding voor hergebruik met slechts één klik in de toekomst!
Lees meer ... gratis trial

pijl blauwe rechterbel Extract nth word from text string met User Defined Function

Als u het tweede, derde of eenderde woord uit de tekenreeks wilt extraheren, kunt u een door de gebruiker gedefinieerde functie maken om hiermee om te gaan.

1. Houd de toets ingedrukt ALT + F11 toetsen om de te openen Microsoft Visual Basic for Applications-venster.

2. Klikken bijvoegsel > moduleen plak de volgende code in de module venster.

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. Sla vervolgens de code op, in dit voorbeeld krijg ik het derde woord uit de tekenreeks, dus type deze formule = Findword (A2,3) in een lege cel B2 en sleep vervolgens de AutoFill-hendel van deze cel naar het bereik dat u nodig hebt. Zie screenshot:

Let op: In de bovenstaande formule, A2 is de cel waar je het woord uit wilt halen, het nummer 3 geeft het derde woord in de reeks aan dat u wilt uitpakken, en u kunt ze naar behoefte wijzigen.


pijl blauwe rechterbel Pak elk woord uit een tekststring en noteer ze horizontaal of verticaal

Deze methode introduceert Kutools voor Excel's Gespleten cellen hulpprogramma om elk woord uit tekststringcellen te extraheren en vervolgens geëxtraheerde woorden horizontaal of verticaal weer te geven op basis van uw behoefte.

1. Selecteer de cellen van de tekstreeks waarvan u de woorden wilt uitpakken en klik op de Kutools > Tekst > Gespleten cellen.

2. Geef in het dialoogvenster Gesplitste cellen openen het splittype op in de Type sectie, controleer de Ruimte optie in het Geef een scheidingsteken op sectie en klik op de Ok knop. Zie screenshot:
Let op: Als u alle geëxtraheerde woorden van elke cel van een tekenreeks horizontaal wilt weergeven, controleert u de Splitsen naar kolommen keuze; Als u alle geëxtraheerde woorden van elke cel in de tekenreeks verticaal wilt weergeven, controleert u de Splitsen naar rijen keuze. In ons geval controleren we de Splitsen naar rijen optie.

3. Bij het openen van een nieuw dialoogvenster selecteert u een cel met een bereik waarin u geëxtraheerde woorden uitvoert en klikt u op OK knop. Zie screenshot hierboven:

Vervolgens ziet u dat alle woorden worden geëxtraheerd uit elke cel van de tekstreeks en de lijst verticaal wordt weergegeven, zoals hieronder een schermafbeelding wordt getoond:

Controleren Splitsen naar kolommen optie zal horizontaal alle uitgetrokken woorden van elke tekststring weergeven zoals onderstaand screenshot getoond:

Kutools for Excel - Bevat meer dan 300 handige tools voor Excel. Gratis proefversie 60-dag, geen creditcard vereist! Snap het nu


In deze video, Kutools en Kutools Plus tabbladen worden toegevoegd door Kutools for Excel. Klik indien nodig op voor 60-daagse gratis proef zonder beperking!

pijl blauwe rechterbelGerelateerde artikelen:


Kutools voor Excel - De beste Office-productiviteitstool Verhoog uw productiviteit met 80%

  • visfuik: Snel invoegen complexe formules, grafieken en alles wat je eerder hebt gebruikt; Coderen van cellen met wachtwoord; Maak een mailinglijst en stuur e-mails ...
  • Super Formula Bar (bewerk eenvoudig meerdere regels tekst en formule); Lay-out lezen (gemakkelijk grote aantallen cellen lezen en bewerken); Plakken op gefilterd bereik...
  • Cellen / rijen / kolommen samenvoegen zonder gegevens te verliezen; Inhoud gesplitste cellen; Combineer dubbele rijen / kolommen... voorkomen dubbele cellen; Ranges vergelijken...
  • Selecteer Dupliceren of Uniek rijen; Selecteer Lege rijen (alle cellen zijn leeg); Super Find en Fuzzy Find in veel werkboeken; Willekeurig selecteren ...
  • Exacte kopie Meerdere cellen zonder formule-referentie te wijzigen; Automatisch referenties maken naar meerdere vellen; Voeg kogels toe, Selectievakjes en meer ...
  • extract Text, Tekst toevoegen, verwijderen op positie, Verwijder de spatie; Subtotalen voor paging maken en afdrukken; Converteren tussen cellen Inhoud en opmerkingen...
  • Super filter (bewaar en pas filterschema's toe op andere bladen); Geavanceerde sortering per maand / week / dag, frequentie en meer; Speciaal filter door vet, cursief ...
  • Combineer werkmappen en werkbladen; Tabellen samenvoegen op basis van sleutelkolommen; Gegevens splitsen in meerdere bladen; Batch Converteer xls, xlsx en PDF...
  • Meer dan 300 krachtige functies. Ondersteunt Office / Excel 2007-2019 en 365. Ondersteunt alle talen. Eenvoudig te implementeren in uw onderneming of organisatie. Volledige functionaliteit 60-daagse gratis proefversie.
kte-tab 201905

Tabblad Office Brengt interface met tabbladen naar Office en maakt uw werk veel eenvoudiger

  • Bewerken en lezen met tabbladen inschakelen in Word, Excel, PowerPoint, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster, in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met 50% en verlaagt dagelijks honderden muisklikken voor u!
Officetab onderaan
Say something here...
symbols left.
You are guest ( Sign Up? )
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.
    murali · 1 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 · 2 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 · 2 years ago
    Thank you! It works fine called in a Sub.
  • To post as a guest, your comment is unpublished.
    DC2209 · 2 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 · 2 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 · 3 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 · 3 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 · 3 years ago
    Many thanks for sharing VBA code....saved me a lot of time
  • To post as a guest, your comment is unpublished.
    Dean · 3 years ago
    VBA is so useful - thanks for sharing!
  • To post as a guest, your comment is unpublished.
    Ron Hollingsworth · 3 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 · 3 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 · 3 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 · 3 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 · 3 years ago
    ITS WORKING that's good.
    really helpful for us.
  • To post as a guest, your comment is unpublished.
    Mark Bolton · 4 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 · 4 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 · 4 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 · 4 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 · 4 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 · 4 years ago
    Thank You soooo MUCH!!
  • To post as a guest, your comment is unpublished.
    Badan · 4 years ago
    Thanks, Alan, this is great, thanks! :)
  • To post as a guest, your comment is unpublished.
    Allart · 4 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 · 4 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 · 4 years ago
    Much appreciated. It helped me a lot.
  • To post as a guest, your comment is unpublished.
    yücel · 4 years ago
    how can we change fonts for nth word in a cell
  • To post as a guest, your comment is unpublished.
    MikeSyr · 4 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 · 4 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 · 4 years ago
    Good one. This worked very well
  • To post as a guest, your comment is unpublished.
    Balu · 4 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 · 5 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 · 5 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 · 5 years ago
    Thanks a lot! Worked fine! :-)
  • To post as a guest, your comment is unpublished.
    Jarad · 5 years ago
    This user-defined function is awesome! Thanks a ton for sharing it.
  • To post as a guest, your comment is unpublished.
    Edgar · 5 years ago
    That vba code is fantastic, thanks a lot.