Перейти до основного матеріалу

Як витягти першу літеру кожного слова з комірки?

Уявіть, що у вашому аркуші є список назв країн, і ви хочете витягти першу літеру кожного слова в цих назвах. 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 Aide. Немає необхідності в складних формулах; помічник AI автоматизує завдання за вас, роблячи обробку даних простою та ефективною. Оптимізуйте робочий процес Excel і зробіть свою роботу легшою. Спробуй Kutools AI Aide і відчуйте розумні операції Excel!

примітки: Щоб використовувати це Kutools AI Aide of Kutools для Excel, будь ласка завантажте та встановіть Kutools для Excel перший.

Після встановлення Kutools для Excel натисніть Kutools AI > А. І. помічник відкрити Kutools AI Aide панель:

  1. Виберіть список даних, потім введіть свою вимогу у вікно чату та натисніть Відправити кнопку або натисніть Що натомість? Створіть віртуальну версію себе у ключ для відправки питання;
  2. Після аналізу натисніть Виконати кнопку для запуску. Kutools AI Aide обробить ваш запит за допомогою штучного інтелекту та поверне результати безпосередньо в Excel.


Витягніть першу літеру кожного слова з комірки з користувацькою функцією

Вилучення першої літери кожного слова з клітинки – це завдання, яке можна значно оптимізувати за допомогою функції, визначеної користувачем (UDF) у Excel. У цьому розділі розглядається, як створити та використовувати UDF для ефективного виконання цього завдання.

1. Утримуйте клавішу ALT + F11 ключі, щоб відкрити Вікно Microsoft Visual Basic для програм.

2. Клацання Insert > Модуліта вставте наступний код у Вікно модуля.

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. Потім збережіть і закрийте цей код, поверніться на аркуш і введіть цю формулу = GetFirstLetters (A2) у порожню клітинку. А потім перетягніть маркер заповнення до клітинок, до яких потрібно застосувати цю формулу. І всі перші літери були виділені з серії слів, див. скріншот:


Статті по темі:

  • Виділіть перші чи останні два чи n слів із текстового рядка
  • Якщо у вас є список текстових рядків, розділених пробілом, і зараз, ви хочете витягти перші або останні три або n слів зі значення комірки, щоб отримати такий результат скріншоту. У цій статті я представив деякі формули для вилучення перших або останніх двох або n слів із текстового рядка в Excel.
  • Видалення тексту лише перед/після пробілу або коми
  • Коли ви хочете витягти текст до або після пробілу зі списку, як показано нижче, чи є у вас хороший спосіб це зробити? Дозвольте розповісти кілька хитрих способів вилучення тексту до або після пробілу лише в Excel.
  • Витягти адресу електронної пошти з текстового рядка
  • Коли ви імпортуєте деякі електронні адреси з веб-сайту на робочий аркуш Excel, там завжди міститься нерелевантний текст, але тепер ви просто хочете витягти чисті електронні адреси з текстового рядка (див. Наступні знімки екрана). Як ви могли швидко отримати адреси електронної пошти лише з тексту комірки?
  • Витягти рядок між двома різними символами
  • Якщо у вас є список рядків у програмі Excel, який вам потрібно витягти частину рядка між двома символами з наведеного нижче знімка екрана, як обробити це якомога швидше? Тут я представляю деякі методи вирішення цієї роботи.

Найкращі інструменти продуктивності офісу

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

Покращуйте свої навички 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