Прескочи на основното съдържание

Как да извлека първата буква на всяка дума от клетка?

Автор: Xiaoyang Последна промяна: 2024-03-14

Представете си, че имате списък с имена на държави в работния си лист и искате да извлечете първата буква от всяка дума в тези имена. Excel не предоставя директна функция за извличане на началните букви на всяка дума в клетка. Въпреки това ще представя някои практически методи за ефективно изпълнение на тази задача, правейки процеса лесен и ефективен.


Извлечете първата буква от всяка дума от клетка с формула

За да получите първата буква от всяка дума в клетка, може да ви помогне следната формула за масив.

1. Моля, копирайте следната формула в празна клетка, където искате да получите резултата, и след това натиснете Ctrl + Shift + Enter ключове заедно, за да получите първия резултат.

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

2. След това издърпайте формулата надолу, за да попълните другите клетки. Това действие автоматично ще извлече първата буква от всяка дума във всяка клетка наведнъж. Вижте екранна снимка:

Обяснение на тази формула:
  • ЗАМЕСТВАНЕ(A2," "," "): Тази функция замества всеки интервал в текста в клетка A2 с . Това ефективно разделя всяка дума в текста с тези XML тагове. Например, ако A2 съдържа „Hello World“, тази част от формулата го превръща в „Hello World“.
  • " "&...&" ": Тази част обвива резултата от функцията SUBSTITUTE с в началото и в края. Продължавайки с примера, низът сега става Hello World , образувайки валидна XML структура, където всяка дума е затворена в тагове.
  • FILTERXML(...,"//b"): FILTERXML се използва за анализиране на XML низ, създаден в предишните стъпки. XPath заявката //b избира всички елементи в етикетите, т.е. всяка дума в оригиналния низ. Използвайки нашия пример, FILTERXML ще върне масив с два елемента: „Hello“ и „World“.
  • НАЛЯВО(...,1): След това функцията LEFT се прилага към всеки елемент от масива, върнат от FILTERXML, като се извлича първата буква от всяка дума. В примера това ще доведе до "H" и "W".
  • CONCAT(...): И накрая, функцията CONCAT обединява всички елементи на масива в един низ. За нашия пример "Hello World" той ще свърже "H" и "W", за да произведе "HW".

Извлечете първата буква от всяка дума от Cell с Kutools AI Aide

Бързо извличане на първата буква от всяка дума в клетка с Kutools AI помощник. Няма нужда от сложни формули; AI асистентът автоматизира задачата вместо вас, правейки обработката на данни проста и ефективна. Рационализирайте своя работен процес в Excel и улеснете работата си. Опитвам Kutools AI помощник и изпитайте интелигентни операции на Excel!

Забележка: За да използвате това Kutools AI помощник of Kutools за Excel, Моля те изтеглете и инсталирайте Kutools за Excel на първо място.

След като инсталирате Kutools за Excel, моля, щракнете Kutools AI > AI помощник за да отворите Kutools AI помощник панел:

  1. Изберете списъка с данни, след това въведете вашето изискване в полето за чат и щракнете Изпрати бутон или натиснете Въведете ключ за изпращане на въпроса;
  2. След като анализирате, щракнете Изпълнение бутон за бягане. Kutools AI Aide ще обработи вашата заявка с помощта на AI и ще върне резултатите директно в Excel.


Извличане на първата буква от всяка дума от клетка с дефинирана от потребителя функция

Извличането на първата буква на всяка дума от клетка е задача, която може да бъде значително оптимизирана чрез използване на дефинирана от потребителя функция (UDF) в Excel. Този раздел изследва как да създадете и използвате UDF за ефективно изпълнение на тази задача.

1. Задръжте натиснат ALT + F11 за да отворите Прозорец на Microsoft Visual Basic за приложения.

2. Щракнете Поставете > Модулии поставете следния код в Прозорец на модула.

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. След това запазете и затворете този код, върнете се обратно в работния лист и въведете тази формула =Получаване на първи букви(A2) в празна клетка. И след това плъзнете манипулатора за попълване към клетките, към които искате да приложите тази формула. И всички първи букви са извлечени от поредицата от думи, вижте екранната снимка:


Още по темата:

  • Извлечете първите или последните две или n думи от текстов низ
  • Ако имате списък с текстови низове, които са разделени с интервал, и сега искате да извлечете първите или последните три или n думи от стойността на клетката, за да получите следния резултат от екранна снимка. В тази статия ще представя някои формули за извличане на първите или последните две или n думи от текстов низ в Excel.
  • Извличане на текст само преди/след интервал или запетая
  • Когато искате да извлечете текста преди или след интервала от списъка, както е показано по-долу, имате ли добър начин да го направите? Позволете ми да ви кажа някои трикове за извличане на текст преди или след интервал само в Excel.
  • Извличане на имейл адрес от текстов низ
  • Когато импортирате някои имейл адреси от уебсайт в работен лист на Excel, там винаги се съдържа неуместен текст, но сега просто искате да извлечете чистите имейл адреси от текстовия низ (вижте следващите екранни снимки). Как можете бързо да получите само имейл адресите от текста на клетката?
  • Извличане на низ между два различни знака
  • Ако имате списък с низове в Excel, които трябва да извлечете част от низ между два знака от показаната по-долу екранна снимка, как да се справите с него възможно най-бързо? Тук представям някои методи за решаване на тази задача.

Най-добрите инструменти за продуктивност в офиса

🤖 Kutools AI помощник: Революционизирайте анализа на данни въз основа на: Интелигентно изпълнение   |  Генериране на код  |  Създаване на персонализирани формули  |  Анализирайте данни и генерирайте диаграми  |  Извикване на функциите на Kutools...
Популярни функции: Намерете, маркирайте или идентифицирайте дубликати   |  Изтриване на празни редове   |  Комбинирайте колони или клетки без загуба на данни   |   Кръг без формула ...
Супер търсене: VLookup с множество критерии    VLookup с множество стойности  |   VLookup в няколко листа   |   Размито търсене ....
Разширен падащ списък: Бързо създаване на падащ списък   |  Зависим падащ списък   |  Падащ списък с множество избори ....
Мениджър на колони: Добавете конкретен брой колони  |  Преместване на колони  |  Превключване на състоянието на видимост на скритите колони  |  Сравнете диапазони и колони ...
Препоръчани функции: Мрежов фокус   |  Изглед на дизайна   |   Голям формула бар    Мениджър на работни книги и листове   |  Библиотека с ресурси (Автоматичен текст)   |  Избор на дата   |  Комбинирайте работни листове   |  Шифроване/декриптиране на клетки    Изпращайте имейли по списък   |  Супер филтър   |   Специален филтър (филтър получер/курсив/зачертано...) ...
Топ 15 комплекта инструменти12 Текст Инструменти (добавяне на текст, Премахване на символи, ...)   |   50 + Графика Видове (диаграма на Гант, ...)   |   40+ Практичен формули (Изчислете възрастта въз основа на рождения ден, ...)   |   19 вмъкване Инструменти (Въведете QR код, Вмъкване на картина от пътя, ...)   |   12 Конверсия Инструменти (Числа към думи, Валутен обмен, ...)   |   7 Обединяване и разделяне Инструменти (Разширено комбиниране на редове, Разделени клетки, ...)   |   ... и още

Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време.  Щракнете тук, за да получите функцията, от която се нуждаете най-много...

Описание


Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна

  • Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
  • Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!
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