Gå til hovedindhold

Hvordan udtrækker første bogstav i hvert ord fra celle?

Forestil dig, at du har en liste over landenavne i dit regneark, og du vil udtrække det første bogstav i hvert ord i disse navne. Excel har ikke en direkte funktion til at udtrække de første bogstaver i hvert ord i en celle. Jeg vil dog introducere nogle praktiske metoder til effektivt at udføre denne opgave, hvilket gør processen ligetil og effektiv.


Udtræk det første bogstav i hvert ord fra celle med formel

For at få det første bogstav i hvert ord i en celle kan følgende matrixformel hjælpe dig.

1. Kopier venligst følgende formel ind i en tom celle, hvor du vil have resultatet, og tryk derefter Ctrl + Skift + Enter tasterne sammen for at få det første resultat.

=CONCAT(LEFT(FILTERXML("<a><b>"&SUBSTITUTE(A2," ","</b><b>")&"</b></a>","//b"),1))

2. Træk derefter formlen ned for at udfylde de andre celler. Denne handling vil automatisk udtrække det første bogstav i hvert ord i hver celle på én gang. Se skærmbillede:

Forklaring af denne formel:
  • ERSTAT(A2," "," "):Denne funktion erstatter hvert mellemrum i teksten i celle A2 med . Dette adskiller effektivt hvert ord i teksten med disse XML-tags. For eksempel, hvis A2 indeholder "Hello World", gør denne del af formlen den til "Hello World".
  • " "&...&" ": Denne del ombryder resultatet af SUBSTITUTE-funktionen med i begyndelsen og i slutningen. For at fortsætte med eksemplet bliver strengen nu til Hello World , der danner en gyldig XML-struktur, hvor hvert ord er indesluttet i tags.
  • FILTERXML(...,"//b"): FILTERXML bruges til at parse den XML-streng, der blev oprettet i de foregående trin. XPath-forespørgslen //b vælger alle elementer i taggene, dvs. hvert ord i den originale streng. Ved at bruge vores eksempel ville FILTERXML returnere et array med to elementer: "Hello" og "World".
  • VENSTRE(...,1): VENSTRE-funktionen anvendes derefter på hvert element i arrayet, der returneres af FILTERXML, og trækker det første bogstav i hvert ord ud. I eksemplet ville dette resultere i "H" og "W".
  • KONCAT(...): Endelig sammenkæder CONCAT-funktionen alle elementer i arrayet i en enkelt streng. For vores "Hello World" eksempel ville det sammenkæde "H" og "W" for at producere "HW".

Uddrag det første bogstav i hvert ord fra Cell med Kutools AI Aide

Udtræk hurtigt det første bogstav i hvert ord i en celle med Kutools AI Aide. Intet behov for komplekse formler; AI-assistenten automatiserer opgaven for dig, hvilket gør databehandlingen enkel og effektiv. Strømlin din Excel-arbejdsgang og gør dit arbejde lettere. Prøve Kutools AI Aide og oplev smarte Excel-operationer!

Bemærk: For at bruge dette Kutools AI Aide of Kutools til Excel, Bedes download og installer Kutools til Excel først.

Efter installation af Kutools til Excel skal du klikke Kutools AI > AI-hjælper at åbne Kutools AI Aide rude:

  1. Vælg datalisten, indtast derefter dit krav i chatboksen, og klik Send knappen eller tryk på Indtast nøgle til at sende spørgsmålet;
  2. Klik efter at have analyseret Udfør knappen for at køre. Kutools AI Aide vil behandle din anmodning ved hjælp af AI og returnere resultaterne direkte i Excel.


Uddrag første bogstav i hvert ord fra celle med brugerdefineret funktion

At udtrække det første bogstav i hvert ord fra en celle er en opgave, der kan optimeres meget ved at bruge en brugerdefineret funktion (UDF) i Excel. Dette afsnit undersøger, hvordan du opretter og bruger en UDF til effektivt at udføre denne opgave.

1. Hold nede ALT + F11 nøgler til at åbne Vinduet Microsoft Visual Basic til applikationer.

2. Klik indsatte > Moduler, og indsæt følgende kode i Modul vindue.

Function GetFirstLetters(rng As Range) As String
'Updateby Extendoffice
    Dim arr
    Dim I As Long
    arr = VBA.Split(rng, " ")
    If IsArray(arr) Then
        For I = LBound(arr) To UBound(arr)
            GetFirstLetters = GetFirstLetters & Left(arr(I), 1)
        Next I
    Else
        GetFirstLetters = Left(arr, 1)
    End If
End Function

3. Gem og luk derefter denne kode, gå tilbage i regnearket, og indtast denne formel = GetFirstLetters (A2) ind i en tom celle. Og træk derefter udfyldningshåndtaget til de celler, som du vil anvende denne formel. Og alle de første bogstaver er blevet udtrukket fra rækken af ​​ord, se skærmbillede:


Relaterede artikler:

  • Uddrag de første eller sidste to eller n ord fra tekststrengen
  • Hvis du har en liste over tekststrenge, der er adskilt af mellemrum, og nu vil du udtrække de første eller sidste tre eller n ord fra celleværdien for at få følgende skærmbillede-resultat. Denne artikel vil jeg introducere nogle formler til at udtrække første eller sidste to eller n ord fra tekststreng i Excel.
  • Udtræk kun tekst før/efter mellemrum eller komma
  • Når du vil udtrække teksten før eller efter mellemrummet fra listen som vist nedenfor, har du en god måde at få det gjort på? Lad mig fortælle dig nogle trick måder at udtrække tekst før eller efter plads kun i Excel.
  • Udpak e-mail-adresse fra tekststreng
  • Når du importerer nogle e-mail-adresser fra webstedet til Excel-regneark, indeholder der altid irrelevant tekst, men nu vil du bare udtrække de rene e-mail-adresser fra tekststrengen (se følgende skærmbilleder). Hvordan kunne du hurtigt kun få e-mail-adresserne fra celleteksten?
  • Udtræk streng mellem to forskellige tegn
  • Hvis du har en liste over streng i Excel, som du har brug for at udtrække en del af streng mellem to tegn fra som vist nedenstående skærmbillede, hvordan håndteres det så hurtigt som muligt? Her introducerer jeg nogle metoder til løsning af dette job.

Bedste kontorproduktivitetsværktøjer

🤖 Kutools AI Aide: Revolutionér dataanalyse baseret på: Intelligent udførelse   |  Generer kode  |  Opret brugerdefinerede formler  |  Analyser data og generer diagrammer  |  Aktiver Kutools funktioner...
Populære funktioner: Find, fremhæv eller identificer dubletter   |  Slet tomme rækker   |  Kombiner kolonner eller celler uden at miste data   |   Runde uden formel ...
Super opslag: VLookup med flere kriterier    Multiple Value VLookup  |   VOpslag på tværs af flere ark   |   Fuzzy Lookup ....
Avanceret rulleliste: Opret hurtigt rulleliste   |  Afhængig rulleliste   |  Multivælg rulleliste ....
Column Manager: Tilføj et bestemt antal kolonner  |  Flyt kolonner  |  Skift synlighedsstatus for skjulte kolonner  |  Sammenlign områder og kolonner ...
Fremhævede funktioner: Grid fokus   |  Designvisning   |   Stor Formel Bar    Arbejdsbog & Ark Manager   |  Ressourcebibliotek (Autotekst)   |  Datovælger   |  Kombiner regneark   |  Krypter/Dekrypter celler    Send e-mails efter liste   |  Superfilter   |   Specielt filter (filter fed/kursiv/gennemstreget...) ...
Top 15 værktøjssæt12 tekst Værktøjer (tilføje tekst, Fjern tegn, ...)   |   50 + Chart Typer (Gantt kort, ...)   |   40+ Praktisk formler (Beregn alder baseret på fødselsdag, ...)   |   19 Indsættelse Værktøjer (Indsæt QR-kode, Indsæt billede fra sti, ...)   |   12 Konvertering Værktøjer (Tal til ord, Valutaomregning, ...)   |   7 Flet og del Værktøjer (Avancerede kombinere rækker, Opdel celler, ...)   |   ... og mere

Overlad dine Excel-færdigheder med Kutools til Excel, og oplev effektivitet som aldrig før. Kutools til Excel tilbyder over 300 avancerede funktioner for at øge produktiviteten og spare tid.  Klik her for at få den funktion, du har mest brug for...

Beskrivelse


Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
Comments (18)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hello, If the the nth Word is enclosed in a (), it is returning the ( since it comes before the First Letter.

Example:
Word Word (Word)

How to return WWW instead of WW( ?
This comment was minimized by the moderator on the site
Hello, Sharmane
Maybe the following code can help you:
Function GetFirstLetters(rng As Range) As String
    Dim arr() As String
    Dim i As Long
    
    arr = VBA.Split(rng.Value, " ")
    
    For i = LBound(arr) To UBound(arr)
        If Left(arr(i), 1) <> "(" And Right(arr(i), 1) <> ")" Then
            GetFirstLetters = GetFirstLetters & Left(arr(i), 1)
        ElseIf Left(arr(i), 1) = "(" And Right(arr(i), 1) = ")" Then
            GetFirstLetters = GetFirstLetters & Mid(arr(i), 2, 1)
        End If
    Next i
End Function


Please have a try, thank you!
This comment was minimized by the moderator on the site
Another suggestion if using Microsoft 365: =TEXTJOIN("",,LEFT(TEXTSPLIT(D9," "),1)) where the source string is in B9.
Wrap in UPPER function to enforce uppercase: =UPPER(TEXTJOIN("",,LEFT(TEXTSPLIT(D9," "),1)))
@Pradeep Gyawali -> add space: =UPPER(TEXTJOIN(" ",,LEFT(TEXTSPLIT(D9," "),1)))
This comment was minimized by the moderator on the site
Wondering how to add this into the existing formula I have that works to bring the value over from a cell in another sheet? I only want to bring over the first character in each cell. Here's the formula

=IF(LOOKUP(2,1/(OriginalSubmission!D:D<>""),ROW(OriginalSubmission!D:D))=ROW(OriginalSubmission!D4),"",INDIRECT("OriginalSubmission!D5:"&"D"&(LOOKUP(2,1/(OriginalSubmission!D:D<>""),ROW(OriginalSubmission!D:D)))))
This comment was minimized by the moderator on the site
Hello, SARAH
Do you mean extracting each first character in cells from another worksheet? If so, you just need to copy and paste the code in this article, and then apply this formula into another sheet.
=GetFirstLetters(OriginalSubmission!D4)


Note: OriginalSubmission is the sheet name that you want to extract charatcers from.
Please try, hope it can help you!
This comment was minimized by the moderator on the site
How to create space between the letters?

South Korea= S K
This comment was minimized by the moderator on the site
Hi, Gyawali
If you want to add space for each character, please apply the following VBA code:
Function GetFirstLetters(Rng As Range) As String
'Updateby Extendoffice
    Dim xStr
    Dim arr
    Dim I As Long
    xStr = " "
    arr = VBA.Split(Rng, " ")
    If IsArray(arr) Then
        For I = LBound(arr) To UBound(arr)
            GetFirstLetters = GetFirstLetters & Left(arr(I), 1) & xStr
        Next I
    Else
        GetFirstLetters = Left(arr, 1) & xStr
    End If
End Function


After insert the code, and then apply this formula: =GetFirstLetters(A2) to get the result you need.
Please try, hope it can help you!
This comment was minimized by the moderator on the site
Why is this giving me the first 2 letters in each word?
This comment was minimized by the moderator on the site
This is awesome. Such a time saver
This comment was minimized by the moderator on the site
This code is good for upto five words, where D20 is the cell with data.



=IF(ISERR(LEFT($D$20,1)&MID($D$20,SEARCH(" ",$D$20)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",
$D$20)+1)+1)+1)+1,1)),IF(ISERR(LEFT($D$20,1)&MID($D$20,SEARCH(" ",$D$20)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1)+1,1)),
IF(ISERR(LEFT($D$20,1)&MID($D$20,SEARCH(" ",$D$20)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1,1)),
IF(ISERR(LEFT($D$20,1)&MID($D$20,SEARCH(" ",$D$20)+1,1)),
IF(ISERR(LEFT($D$20,1)),"",LEFT($D$20,1)),LEFT($D$20,1)
&MID($D$20,SEARCH(" ",$D$20)+1,1)),LEFT($D$20,1)&MID($D$20,SEARCH(" ",$D$20)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1,1)),
LEFT($D$20,1)&MID($D$20,SEARCH(" ",$D$20)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1)+1,1)),LEFT($D$20,1)
&MID($D$20,SEARCH(" ",$D$20)+1,1)&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)
+1)+1)+1,1))
This comment was minimized by the moderator on the site
Подскажите пожалуйста, можно ли модифицировать код чтобы забиралась не первые а Заглавные буквы?
This comment was minimized by the moderator on the site
i think it has one bug, it's automatically removed from module when sheet is closed, need to again every time when open sheet same process to be required, please advice how to save this formula in excel permanently.
This comment was minimized by the moderator on the site
Pls save excel as Excel Macro-Enablel work book.
This comment was minimized by the moderator on the site
Please include this part: If you create a function called DISCOUNT in a workbook called Personal.xlsb and you call that function from another workbook, you must type =personal.xlsb!discount(), not simply =discount(). https://support.office.com/en-us/article/Create-Custom-Functions-in-Excel-2007-2f06c10b-3622-40d6-a1b2-b6748ae8231f
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations