Przejdź do głównej zawartości

Jak wyodrębnić pierwszą literę każdego słowa z komórki?

Autor: Xiaoyang Ostatnia modyfikacja: 2024-03-14

Wyobraź sobie, że masz w arkuszu listę nazw krajów i chcesz wyodrębnić pierwszą literę każdego słowa z tych nazw. Excel nie zapewnia bezpośredniej funkcji wyodrębniania początkowych liter każdego słowa w komórce. Przedstawię jednak kilka praktycznych metod skutecznej realizacji tego zadania, dzięki czemu proces będzie prosty i skuteczny.


Wyodrębnij pierwszą literę każdego słowa z komórki za pomocą formuły

Aby uzyskać pierwszą literę każdego słowa w komórce, może Ci pomóc poniższa formuła tablicowa.

1. Skopiuj poniższą formułę do pustej komórki, w której chcesz uzyskać wynik, a następnie naciśnij Ctrl + Shift + Enter klucze razem, aby uzyskać pierwszy wynik.

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

2. Następnie przeciągnij formułę w dół, aby wypełnić pozostałe komórki. Ta czynność automatycznie wyodrębni pierwszą literę każdego słowa w każdej komórce na raz. Zobacz zrzut ekranu:

Wyjaśnienie tego wzoru:
  • ZASTĄPIENIE(A2”, „”, „ ”):Ta funkcja zastępuje każdą spację w tekście w komórce A2 przez . To skutecznie oddziela każde słowo w tekście za pomocą tych znaczników XML. Na przykład, jeśli A2 zawiera „Hello World”, ta część formuły zamienia go na „Hello World”.
  • " "&...&" ": Ta część otacza wynik funkcji SUBSTITUTE na początku i na końcu. Kontynuując przykład, ciąg znaków przyjmuje teraz nazwę Hello World , tworząc prawidłową strukturę XML, w której każde słowo jest ujęte w znaczniki.
  • FILTRXML(..."//b"): FILTERXML służy do analizowania ciągu XML utworzonego w poprzednich krokach. Zapytanie XPath //b wybiera wszystkie elementy w obrębie znaczników, tj. każde słowo w oryginalnym ciągu. Korzystając z naszego przykładu, FILTERXML zwróci tablicę zawierającą dwa elementy: „Hello” i „World”.
  • LEWO(...,1): Funkcja LEFT jest następnie stosowana do każdego elementu tablicy zwróconej przez FILTERXML, wyodrębniając pierwszą literę każdego słowa. W tym przykładzie spowodowałoby to „H” i „W”.
  • POŁĄCZ (...): Na koniec funkcja CONCAT łączy wszystkie elementy tablicy w jeden ciąg. W naszym przykładzie „Hello World” połączylibyśmy „H” i „W”, tworząc „HW”.

Wyodrębnij pierwszą literę każdego słowa z komórki za pomocą Kutools AI Aide

Szybko wyodrębnij pierwszą literę każdego słowa w komórce za pomocą Pomocnik AI Kutools. Nie ma potrzeby stosowania skomplikowanych formuł; asystent AI automatyzuje zadanie za Ciebie, dzięki czemu przetwarzanie danych jest proste i wydajne. Usprawnij przepływ pracy w programie Excel i ułatw sobie pracę. Próbować Pomocnik AI Kutools i doświadcz inteligentnych operacji w Excelu!

Note: Aby tego użyć Pomocnik AI Kutools of Kutools dla programu ExcelProszę pobierz i zainstaluj Kutools dla Excela pierwszy.

Po zainstalowaniu Kutools dla programu Excel kliknij Kutools AI > Doradca AI otworzyć Pomocnik AI Kutools szkło:

  1. Wybierz listę danych, następnie wpisz swoje wymagania w polu czatu i kliknij Wyślij lub naciśnij Wchodzę klucz do wysłania pytania;
  2. Po analizie kliknij Wykonać przycisk, aby uruchomić. Kutools AI Aide przetworzy Twoje żądanie za pomocą AI i zwróci wyniki bezpośrednio w Excelu.


Wyodrębnij pierwszą literę każdego słowa z komórki z funkcją zdefiniowaną przez użytkownika

Wyodrębnianie pierwszej litery każdego słowa z komórki to zadanie, które można znacznie zoptymalizować, korzystając z funkcji zdefiniowanej przez użytkownika (UDF) w programie Excel. W tej sekcji omówiono sposób tworzenia i używania formatu UDF w celu wydajnego wykonywania tego zadania.

1. Przytrzymaj ALT + F11 klawisze, aby otworzyć Okno Microsoft Visual Basic for Applications.

2. Kliknij wstawka > Modułi wklej następujący kod w Okno modułu.

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. Następnie zapisz i zamknij ten kod, wróć do arkusza i wprowadź tę formułę = GetFirstLetters (A2) do pustej komórki. Następnie przeciągnij uchwyt wypełniania do komórek, do których chcesz zastosować tę formułę. Z serii słów wyodrębniono wszystkie pierwsze litery, patrz zrzut ekranu:


Podobne artykuły:

  • Wyodrębnij pierwsze lub ostatnie dwa lub n słów z ciągu tekstowego
  • Jeśli masz listę ciągów tekstowych oddzielonych spacją, a teraz chcesz wyodrębnić pierwsze lub ostatnie trzy lub n słów z wartości komórki, aby uzyskać następujący wynik zrzutu ekranu. W tym artykule przedstawię kilka formuł do wyodrębnienia pierwszych lub ostatnich dwóch lub n słów z ciągu tekstowego w programie Excel.
  • Wyodrębnij tekst przed/po spacji lub tylko przecinkiem
  • Jeśli chcesz wyodrębnić tekst przed lub po spacji z listy, jak pokazano poniżej, czy masz dobry sposób, aby to zrobić? Pozwól, że powiem ci kilka sztuczek, aby wyodrębnić tekst przed lub po spacji tylko w programie Excel.
  • Wyodrębnij adres e-mail z ciągu tekstowego
  • Podczas importowania niektórych adresów e-mail z witryny internetowej do arkusza programu Excel zawsze zawiera nieistotny tekst, ale teraz chcesz po prostu wyodrębnić czyste adresy e-mail z ciągu tekstowego (patrz poniższe zrzuty ekranu). Jak możesz szybko uzyskać adresy e-mail tylko z tekstu komórki?
  • Wyodrębnij ciąg znaków pomiędzy dwoma różnymi znakami
  • Jeśli masz listę ciągów w programie Excel, które musisz wyodrębnić część ciągu między dwoma znakami z pokazanego poniżej zrzutu ekranu, jak sobie z tym poradzić tak szybko, jak to możliwe? Tutaj przedstawiam kilka metod rozwiązywania tej pracy.

Najlepsze narzędzia biurowe

🤖 Pomocnik AI Kutools: Zrewolucjonizuj analizę danych w oparciu o: Inteligentne wykonanie   |  Wygeneruj kod  |  Twórz niestandardowe formuły  |  Analizuj dane i generuj wykresy  |  Wywołaj funkcje Kutools...
Popularne funkcje: Znajdź, wyróżnij lub zidentyfikuj duplikaty   |  Usuń puste wiersze   |  Łącz kolumny lub komórki bez utraty danych   |   Okrągły bez wzoru ...
Super wyszukiwanie: Wiele kryteriów VLookup    Wiele wartości VLookup  |   Przeglądanie pionowe na wielu arkuszach   |   Wyszukiwanie rozmyte ....
Zaawansowana lista rozwijana: Szybko twórz listę rozwijaną   |  Zależna lista rozwijana   |  Lista rozwijana wielokrotnego wyboru ....
Menedżer kolumn: Dodaj określoną liczbę kolumn  |  Przesuń kolumny  |  Przełącz stan widoczności ukrytych kolumn  |  Porównaj zakresy i kolumny ...
Polecane funkcje: Fokus siatki   |  Widok projektu   |   Duży pasek formuły    Menedżer skoroszytów i arkuszy   |  Biblioteka zasobów (Automatyczny tekst)   |  Selektor dat   |  Połącz arkusze   |  Szyfruj/odszyfruj komórki    Wysyłaj e-maile według listy   |  Super filtr   |   Specjalny filtr (filtruj pogrubienie/kursywa/przekreślenie...) ...
15 najlepszych zestawów narzędzi12 Tekst Tools (Dodaj tekst, Usuń znaki, ...)   |   50 + Wykres rodzaje (Wykres Gantta, ...)   |   40+ Praktyczne Wzory (Oblicz wiek na podstawie urodzin, ...)   |   19 Wprowadzenie Tools (Wstaw kod QR, Wstaw obraz ze ścieżki, ...)   |   12 Konwersja Tools (Liczby na słowa, Przeliczanie walut, ...)   |   7 Połącz i podziel Tools (Zaawansowane wiersze łączenia, Podział komórki, ...)   |   ... i więcej

Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas.  Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...

Opis


Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
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