Přejít k hlavnímu obsahu

Jak extrahovat první písmeno každého slova z buňky?

Představte si, že máte v pracovním listu seznam názvů zemí a chcete extrahovat první písmeno každého slova z těchto názvů. Excel neposkytuje přímou funkci pro extrahování počátečních písmen každého slova v buňce. Uvedu však některé praktické metody, jak tento úkol efektivně splnit, aby byl proces přímočarý a efektivní.


Extrahujte první písmeno každého slova z buňky pomocí vzorce

Chcete-li získat první písmeno každého slova v buňce, může vám pomoci následující maticový vzorec.

1. Zkopírujte prosím následující vzorec do prázdné buňky, kde chcete získat výsledek, a stiskněte Ctrl + Shift + Enter dohromady, abyste získali první výsledek.

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

2. Dále vytáhněte vzorec dolů, aby se vyplnily ostatní buňky. Tato akce automaticky extrahuje první písmeno každého slova v každé buňce najednou. Viz snímek obrazovky:

Vysvětlení tohoto vzorce:
  • SUBSTITUTE(A2," "," "):Tato funkce nahradí každou mezeru v textu v buňce A2 znakem . To efektivně odděluje každé slovo v textu pomocí těchto značek XML. Pokud například A2 obsahuje „Ahoj světe“, tato část vzorce jej změní na „Ahoj světe“.
  • " "&...&" ": Tato část zalamuje výsledek funkce SUBSTITUTE s na začátku a na konci. Pokračujeme-li v příkladu, řetězec se nyní změní na Hello World , čímž se vytvoří platná struktura XML, kde je každé slovo uzavřeno ve značkách.
  • FILTERXML(...,"//b"): FILTERXML se používá k analýze řetězce XML vytvořeného v předchozích krocích. Dotaz XPath //b vybere všechny prvky v rámci značek, tj. každé slovo v původním řetězci. V našem příkladu FILTERXML vrátí pole se dvěma prvky: „Ahoj“ a „Svět“.
  • VLEVO(...,1): Funkce LEFT je poté aplikována na každý prvek pole vráceného FILTERXML, přičemž se extrahuje první písmeno každého slova. V příkladu by to vedlo k "H" a "W".
  • CONCAT (...): Nakonec funkce CONCAT zřetězí všechny prvky pole do jednoho řetězce. V našem příkladu „Hello World“ by zřetězení „H“ a „W“ vytvořilo „HW“.

Extrahujte první písmeno každého slova z buňky pomocí Kutools AI Aide

Rychle extrahujte první písmeno každého slova v buňce pomocí Kutools AI asistent. Není potřeba složitých vzorců; asistent AI za vás automatizuje úkol, takže zpracování dat je jednoduché a efektivní. Zjednodušte si pracovní postup v Excelu a usnadněte si práci. Snaž se Kutools AI asistent a zažijte chytré operace Excelu!

Poznámka: Chcete-li použít toto Kutools AI asistent of Kutools pro Excel, Prosím stáhnout a nainstalovat Kutools pro Excel jako první.

Po instalaci Kutools pro Excel klikněte prosím Kutools AI > AI asistent k otevření Kutools AI asistent podokno:

  1. Vyberte seznam dat, zadejte svůj požadavek do pole chatu a klikněte Poslat nebo stiskněte tlačítko vstoupit klíč k odeslání otázky;
  2. Po analýze klikněte Provést tlačítko pro spuštění. Kutools AI Aide zpracuje váš požadavek pomocí AI a vrátí výsledky přímo v Excelu.


Extrahujte první písmeno každého slova z buňky pomocí funkce definované uživatelem

Extrahování prvního písmene každého slova z buňky je úkol, který lze výrazně optimalizovat pomocí uživatelem definované funkce (UDF) v aplikaci Excel. Tato část se zabývá tím, jak vytvořit a používat UDF k efektivnímu provedení tohoto úkolu.

1. Podržte ALT + F11 klávesy pro otevření Okno Microsoft Visual Basic pro aplikace.

2, klikněte Vložit > Modula vložte následující kód do Okno modulu.

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. Poté uložte a zavřete tento kód, vraťte se zpět do listu a zadejte tento vzorec = GetFirstLetters (A2) do prázdné buňky. A pak přetáhněte úchyt výplně k buňkám, na které chcete použít tento vzorec. A všechna první písmena byla extrahována ze série slov, viz snímek obrazovky:


Související články:

  • Extrahujte první nebo poslední dvě nebo n slov z textového řetězce
  • Pokud máte seznam textových řetězců oddělených mezerou a nyní chcete z hodnoty buňky extrahovat první nebo poslední tři nebo n slov, abyste získali následující výsledek obrazovky. V tomto článku uvedu některé vzorce pro extrakci prvních nebo posledních dvou nebo n slov z textového řetězce v aplikaci Excel.
  • Extrahujte text před/za mezerou nebo pouze čárkou
  • Chcete-li extrahovat text před nebo za mezerou ze seznamu, jak je znázorněno níže, máte dobrý způsob, jak to udělat? Řeknu vám několik trikových způsobů, jak extrahovat text před nebo za mezerou pouze v aplikaci Excel.
  • Extrahujte e-mailovou adresu z textového řetězce
  • Při importu některých e-mailových adres z webu do listu aplikace Excel vždy obsahuje irelevantní text, ale nyní chcete pouze extrahovat čisté e-mailové adresy z textového řetězce (viz následující screenshoty). Jak jste mohli rychle získat pouze e-mailové adresy z textu buňky?
  • Extrahujte řetězec mezi dvěma různými znaky
  • Pokud máte v aplikaci Excel seznam řetězců, které potřebujete extrahovat část řetězce mezi dvěma znaky z níže uvedeného snímku obrazovky, jak s ním zacházet co nejrychleji? Zde představuji některé metody řešení této práce.

Nejlepší nástroje pro produktivitu v kanceláři

🤖 Kutools AI asistent: Revoluční analýza dat založená na: Inteligentní provedení   |  Generovat kód  |  Vytvořte vlastní vzorce  |  Analyzujte data a generujte grafy  |  Vyvolejte funkce Kutools...
Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více

Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...

Popis


Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
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