Перейти к основному содержанию

Как извлечь первую букву каждого слова из ячейки?

Представьте, что у вас на листе есть список названий стран, и вы хотите извлечь первую букву каждого слова из этих названий. Excel не предоставляет прямой возможности извлечения начальных букв каждого слова в ячейке. Тем не менее, я представлю некоторые практические методы эффективного выполнения этой задачи, сделав процесс простым и эффективным.


Извлеките первую букву каждого слова из ячейки с помощью формулы

Чтобы получить первую букву каждого слова в ячейке, вам может помочь следующая формула массива.

1. Скопируйте следующую формулу в пустую ячейку, в которой вы хотите получить результат, а затем нажмите Shift + Ctrl + Enter ключи вместе, чтобы получить первый результат.

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

2. Затем потяните формулу вниз, чтобы заполнить другие ячейки. Это действие автоматически извлечет первую букву каждого слова в каждой ячейке одновременно. Смотрите скриншот:

Объяснение этой формулы:
  • ЗАМЕНИТЬ(A2," "," "):Эта функция заменяет каждый пробел в тексте в ячейке A2 на . Это эффективно разделяет каждое слово в тексте с помощью этих XML-тегов. Например, если A2 содержит «Hello World», эта часть формулы преобразует ее в «Hello World».
  • " "&...&" ": эта часть переносит результат функции ПОДСТАВИТЬ в начало и в конец. Продолжая пример, строка теперь становится Hello World , образуя действительную структуру XML, где каждое слово заключено в теги.
  • ФИЛЬТРXML(...,"//b"): FILTERXML используется для анализа строки XML, созданной на предыдущих шагах. Запрос XPath //b выбирает все элементы внутри тегов, т. е. каждое слово в исходной строке. В нашем примере FILTERXML вернет массив с двумя элементами: «Привет» и «Мир».
  • ВЛЕВО(...,1): функция LEFT затем применяется к каждому элементу массива, возвращаемого FILTERXML, извлекая первую букву каждого слова. В примере это приведет к буквам «H» и «W».
  • КОНКАТ(...): Наконец, функция CONCAT объединяет все элементы массива в одну строку. В нашем примере «Hello World» буквы «H» и «W» будут объединены в «HW».

Извлеките первую букву каждого слова из ячейки с помощью Kutools AI Aide

Быстро извлеките первую букву каждого слова в ячейке с помощью Kutools AI Помощник. Нет необходимости в сложных формулах; AI-помощник автоматизирует задачу за вас, делая обработку данных простой и эффективной. Оптимизируйте рабочий процесс Excel и сделайте свою работу проще. Пытаться Kutools AI Помощник и испытайте умные операции Excel!

Внимание: Чтобы использовать это Kutools AI Помощник of Kutools for Excel, Пожалуйста, скачайте и установите Kutools для Excel первый.

После установки Kutools for Excel, нажмите Кутулс ИИ > AI-помощник для открытия Kutools AI Помощник панель:

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


Извлеките первую букву каждого слова из ячейки с помощью функции, определяемой пользователем

Извлечение первой буквы каждого слова из ячейки — это задача, которую можно значительно оптимизировать с помощью пользовательской функции (UDF) в Excel. В этом разделе описывается, как создать и использовать пользовательскую функцию для эффективного выполнения этой задачи.

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. Затем сохраните и закройте этот код, вернитесь на лист и введите эту формулу. = GetFirstLetters (A2) в пустую ячейку. Затем перетащите маркер заполнения в ячейки, к которым вы хотите применить эту формулу. И все первые буквы были извлечены из ряда слов, см. скриншот:


Статьи по теме:

  • Извлечь первые или последние два или n слов из текстовой строки
  • Если у вас есть список текстовых строк, разделенных пробелом, и теперь вы хотите извлечь первые или последние три или n слов из значения ячейки, чтобы получить следующий результат скриншота. В этой статье я представлю несколько формул для извлечения первых или последних двух или n слов из текстовой строки в Excel.
  • Извлечь текст до/после пробела или только запятой
  • Если вы хотите извлечь текст до или после пробела из списка, как показано ниже, есть ли у вас хороший способ сделать это? Позвольте мне рассказать вам несколько хитрых способов извлечения текста до или после пробела только в Excel.
  • Извлечь адрес электронной почты из текстовой строки
  • Когда вы импортируете некоторые адреса электронной почты из веб-сайта в рабочий лист Excel, они всегда содержат нерелевантный текст, но теперь вы просто хотите извлечь чистые адреса электронной почты из текстовой строки (см. Следующие снимки экрана). Как можно быстро получить адреса электронной почты только из текста ячейки?
  • Извлечь строку между двумя разными символами
  • Если у вас есть список строк в Excel, из которого вам нужно извлечь часть строки между двумя символами, как показано на скриншоте ниже, как с ним справиться как можно быстрее? Здесь я расскажу о некоторых методах решения этой задачи.

Лучшие инструменты для офисной работы

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

Улучшите свои навыки работы с Excel с помощью Kutools for Excel и почувствуйте эффективность, как никогда раньше. Kutools for Excel предлагает более 300 расширенных функций для повышения производительности и экономии времени.  Нажмите здесь, чтобы получить функцию, которая вам нужна больше всего...

Описание


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 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