Note: The other languages of the website are Google-translated. Back to English

Hur extraherar jag första / sista / nte ordet från textsträng i Excel?

Har du någonsin drabbats av problemet att du behöver extrahera ett visst ord från textsträngen i ett kalkylblad? Till exempel har du följande rad textsträngar som behövs för att få det första / sista eller det nte ordet från dem, här kan jag prata om några effektiva sätt för dig att lösa det.


Extrahera första ordet eller efternamnet från textsträngen med formler

Om du behöver extrahera det första ordet från en lista med textsträngar kan följande formler hjälpa dig.

För att extrahera det första ordet, ange nedanstående formel i en tom cell och dra sedan cellens autofyllhandtag till det intervall som du behöver.

= IF (ISERR (HITTA ("", A2)), "", VÄNSTER (A2, HITTA ("", A2) -1))

För att extrahera det sista ordet från varje cell, använd denna formel:

= IF (ISERR (HITTA ("", A2)), "", HÖGER (A2, LENN (A2) -FIND ("*", SUBSTITUT (A2, "", "*", LENN (A2) -LEN ( SUBSTITUT (A2, "", "")))))

Och nu ser du att det första eller det sista ordet extraheras från varje cell.

Anmärkningar: I ovanstående formler, A2 anger cellen du kommer att extrahera det första eller det sista ordet från.

Svårt att memorera långa komplicerade formler? Fantastiskt verktyg hjälper dig att extrahera det n: e Word wbara med flera klick!

Ovan långa formler kan bara extrahera det första och det sista ordet, men kommer att vara värdelösa för att extrahera det angivna n: a ordet, säger det andra ordet, det sjätte ordet, etc. Även om du kan räkna ut formler för att lösa problemet måste formlerna vara för komplicerat för att memoreras och tillämpas. Här rekommenderas Extract the nth word in cell-funktionen i Kutools for Excel, och det hjälper dig att extrahera det nte ordet så enkelt som möjligt!


Kutools för Excel - Innehåller mer än 300 praktiska verktyg för Excel. Fullständig gratis provperiod 30-dag, inget kreditkort krävs! Hämta den nu

Extrahera det n: a ordet från textsträngen med användardefinierad funktion

Om du vill extrahera det andra, tredje eller något nte ordet från textsträngen kan du skapa en användardefinierad funktion för att hantera det.

1. Håll ner ALT + F11 nycklar för att öppna Microsoft Visual Basic for Applications-fönstret.

2. Klicka Insert > Modulernaoch klistra in följande kod i Modulerna fönster.

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. Spara sedan koden, i det här exemplet får jag det tredje ordet från strängen, så skriv den här formeln = sökord (A2,3) in i en tom cell B2 och dra sedan cellens AutoFill-handtag till det intervall som du behöver. Se skärmdump:

Notera: I ovanstående formel, A2 är cellen där du vill extrahera ord från, numret 3 anger det tredje ordet i strängen som du extraherar och du kan ändra dem efter behov.


Extrahera varje ord från textsträngen och lista dem horisontellt eller vertikalt

Denna metod kommer att introducera Kutools för Excel Dela celler verktyg för att extrahera varje ord från textsträngceller och sedan lista extraherade ord horisontellt eller vertikalt baserat på ditt behov.

Kutools för Excel - Innehåller mer än 300 praktiska verktyg för Excel. Fullständig gratis provperiod 30-dag, inget kreditkort krävs! Gratis testversion nu!

1. Välj de textsträngceller som du kommer att extrahera deras ord från och klicka på Kutools > Slå ihop och dela > Dela celler.

2. I dialogrutan Öppna delade celler anger du delningstypen i Typ avsnitt, kolla på Utrymme alternativet i Ange en separator avsnittet och klicka på Ok knapp. Se skärmdump:

3. Ange nu destinationsområdet som du ska mata ut extraherade ord till och klicka på OK Knappen

Om du kollade Dela upp till kolumner alternativet i dialogrutan Dela celler ovan, extraheras varje ord från varje textsträng och listas vertikalt.

Om du kollade Dela till rader alternativet i dialogrutan Dela celler ovan, extraheras varje ord från varje textsträng och listas horisontellt.


Extrahera det nionde ordet från textsträngen i Excel med ett fantastiskt verktyg

Om du har installerat Kutools för Excel kan du använda dess Formel Helper> Extrahera det n: a ordet i cellfunktionen för att snabbt extrahera det n: e ordet från den angivna cellen.

Kutools för Excel - Innehåller mer än 300 praktiska verktyg för Excel. Fullständig gratis provperiod 30-dag, inget kreditkort krävs! Gratis testversion nu!

1. Välj cellen som du vill lägga till det extraherade ordet och klicka på Kutools > Formel Helper > Formel Helper för att aktivera den här funktionen.

2. Gör så här i dialogrutan Formel Helper:
(1) Välj text från Formeltyp rullgardinsmeny
(2) Klicka för att markera Extrahera det nionde ordet i cellen i Välj en formel listruta;
(3) I Cell rutan, ange cellen som du ska extrahera ord från;
(4) In Den nionde rutan, ange numret.

3. Klicka på Ok knapp. Dra vid behov AutoFill-handtaget för formelcellen och kopiera formeln till andra celler.


Demo: extrahera varje ord från textsträngen och lista dem horisontellt eller vertikalt


Kutools för Excel innehåller mer än 300 praktiska verktyg för Excel, gratis att prova utan begränsning på 30 dagar. Ladda ner och gratis testversion nu!

Relaterade artiklar:


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (38)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Den vba-koden är fantastisk, tack så mycket.
Denna kommentar minimerades av moderatoren på webbplatsen
Denna användardefinierade funktion är fantastisk! Tusen tack för att du delar med dig.
Denna kommentar minimerades av moderatoren på webbplatsen
Tack så mycket! Fungerade bra! :-)
Denna kommentar minimerades av moderatoren på webbplatsen
Det här var SUPER användbart, jag undrade om någon kände till en nedladdningsbar eller en kopieringsbar lista med användbara handgjorda funktioner som "FindWord" som jag skulle kunna använda.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, jag undrade bara vad jag skulle kunna infoga i Visual Basic-formeln som kunde extrahera och kommatecken eller bindestreck direkt efter data.. till exempel Fortin-
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, det här är utmärkt. Det fungerade mycket bra och minskar vår belastning sparar mycket tid i denna operation. Tack till alla som arbetat med detta och delat...
Denna kommentar minimerades av moderatoren på webbplatsen
Bra en. Detta fungerade väldigt bra
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, Detta sparar verkligen mycket tid. Tack för att du delar Kan någon också föreslå hur vi kan extrahera orden med vba på ett omvänt sätt, t.ex. sista ordet är 1, andra från höger till vänster är 2 och så vidare. Detta kommer att uppskattas mycket.
Denna kommentar minimerades av moderatoren på webbplatsen
Detta fungerar inte korrekt på en källsträng som består av icke-ord (som leverantörsnamn följt av artikelnummer)
Denna kommentar minimerades av moderatoren på webbplatsen
hur kan vi ändra typsnitt för n:te ordet i en cell
Denna kommentar minimerades av moderatoren på webbplatsen
Mycket uppskattat. Det hjälpte mig mycket.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, tack för din kodbit. Det inspirerade mig att expandera lite. Med nästa rader kan du välja: sista ordet (0), ett men sista (-1), näst sista (-2) etc. Oavsett antal ord. Funktion FindWord(Source As String, Position As Integer) 'Uppdatera 20150504 Dim arr() As String arr = VBA.Split(Source, " ") xCount = UBound(arr) Välj Case Position Case -xCount Till 0 FindWord = arr(xCount + Position) Case 1 Till (xCount + 1) FindWord = arr(Position - 1) Case Else FindWord = "" Avsluta Välj Avsluta funktion
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, bara ett tillägg till koden igår. Detta lägger till en extra rad för att justera för redundanta mellanslag i källsträngen: arr = VBA.Split(WorksheetFunction.Trim(Source), " ") med vänliga hälsningar, Allart
Denna kommentar minimerades av moderatoren på webbplatsen
Tack, Alan, det här är bra, tack! :)
Denna kommentar minimerades av moderatoren på webbplatsen
Tack sååå MYCKET!!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej .. Tack för din kod, jag har listameningar, och en av dem bara 1 ord, och din kod fungerar inte om den bara har 1 ord..
Denna kommentar minimerades av moderatoren på webbplatsen
Jag kan inte få koden för det första ordet att fungera om en del av min lista bara har ett ord i cellen. t.ex. första ordet ---> första andra ---> [null] sista ordet ---> sista
Denna kommentar minimerades av moderatoren på webbplatsen
Prova detta (se mitt svar ovan): Funktionen FindWord(Source As String, Position As Integer) ' får 1:a, 2:a, sista(0), näst sist (-2) etc, ord från en sträng ' Uppdatering 20150505 Dim arr( ) As String arr = VBA.Split(WorksheetFunction.Trim(Source), " ") xCount = UBound(arr) Välj Case Position Case -xCount To 0 FindWord = arr(Position + xCount) Case 1 To xCount + 1 FindWord = arr (Position - 1) Case Else FindWord = "" Slutval
Denna kommentar minimerades av moderatoren på webbplatsen
Hej nördar, jag har en cell så här: 1 ABCD; 2 DEDF; 1 DED#3d; 4 FDWDS; 1 ED Och jag skulle vilja extrahera tecken efter 1. Så önskade att få ett resultat enligt nedan: ABCD;DED#3d;ED
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har 64bit Excel 2013 och saknar Morefunc-tillägget. Baserat på koden ovan har jag kommit på denna ersättning för Morefuncs WMID-funktion. Jag skulle vara tacksam om någon mer expert än jag kunde göra någon städning av det. Funktion WMid1(Källa som sträng, valfri position som heltal, valfri ordräkning som heltal, valfri avskiljare som sträng) Dim arr() Som sträng Dim xCount Som heltal Dim wCount Som heltal Dim wFirst As heltal Dim wLast As heltal Om position = 0 Då position = 1 Om WordCount = 0 Då WordCount = 1 Om Separator = "" Då 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 Eller Abs(Position) > xCount Sedan WMid1 = "" Annars WMid1 = arr(wFirst) För wCount = wFirst + 1 To wLast WMid1 = WMid1 & Separator & arr(wCount) Next End Om WMid1 = Trim(WMid1) Slutfunktion
Det finns inga kommentarer här ännu
Ladda fler
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL