Note: The other languages of the website are Google-translated. Back to English

Як витягти перше / останнє / n-те слово з текстового рядка в Excel?

Ви коли-небудь стикалися з проблемою, що вам потрібно витягти певне слово з текстового рядка на аркуші? Наприклад, у вас є наступний діапазон текстових рядків, необхідних для отримання першого / останнього або n-го слова з них, тут я можу розповісти про деякі ефективні способи вирішення цього питання.


Витягніть перше слово або прізвище з текстового рядка за допомогою формул

Якщо вам потрібно витягти перше слово зі списку текстових рядків, вам можуть допомогти наступні формули.

Щоб витягти перше слово, введіть формулу нижче в порожню комірку, а потім перетягніть маркер автозаповнення цієї комірки до діапазону, як вам потрібно.

= IF (ISERR (FIND ("", A2)), "", LEFT (A2, FIND ("", A2) -1))

Щоб витягти останнє слово з кожної комірки, застосуйте цю формулу:

= IF (ISERR (FIND ("", A2)), "", ПРАВО (A2, LEN (A2) -FIND ("*", ЗАМІНА (A2, "", "*", LEN (A2) -LEN ( ЗАМІНИТИ (A2, "", "")))))))

І тепер ви побачите, як з кожної клітинки витягнуто перше або останнє слово.

Примітки: У наведених вище формулах A2 позначає клітинку, з якої ви витягнете перше або останнє слово.

Важко запам’ятати довгі складні формули? Дивовижний інструмент допоможе вам витягти n-те слово wлише кількома кліками!

Вище довгі формули можуть витягувати лише перше і останнє слово, але буде марно витягувати вказане n-те слово, говорить друге слово, шосте слово і т. Д. Навіть ви можете зрозуміти формули для вирішення проблеми, формули повинні бути занадто складний для запам’ятовування та застосування. Тут рекомендується виділити n-те слово в клітинку функції Kutools для Excel, і це допоможе вам якомога простіше витягти n-те слово!


Kutools для Excel - Включає понад 300 зручних інструментів для Excel. Повна безкоштовна пробна версія 30-день, кредитна картка не потрібна! Get It Now

Витягніть n-те слово з текстового рядка за допомогою визначеної користувачем функції

Якщо ви хочете витягти друге, третє або яке-небудь n-те слово з текстового рядка, ви можете створити визначену користувачем функцію для роботи з ним.

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

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

Function FindWord(Source As String, Position As Integer)
'Update 20131202
Dim arr() As String
arr = VBA.Split(Source, " ")
xCount = UBound(arr)
If xCount < 1 Or (Position - 1) > xCount Or Position < 0 Then
    FindWord = ""
Else
    FindWord = arr(Position - 1)
End If
End Function

3. Потім збережіть код, у цьому прикладі я отримаю третє слово із рядка, тому введіть цю формулу = пошукове слово (A2,3) у порожню комірку B2, а потім перетягніть маркер автозаповнення цієї комірки до діапазону, як вам потрібно. Дивіться знімок екрана:

Примітка: У наведеній вище формулі A2 - це клітинка, з якої потрібно витягти слово, номер 3 позначає третє слово в рядку, яке ви витягнете, і ви можете змінити їх, як вам потрібно.


Витягніть кожне слово з текстового рядка та перелічіть їх горизонтально або вертикально

Цей метод запровадить Kutools для Excel Розділені клітини утиліта для вилучення кожного слова з комірок текстового рядка, а потім перерахування вилучених слів по горизонталі чи вертикалі залежно від ваших потреб.

Kutools для Excel - Включає понад 300 зручних інструментів для Excel. Повна безкоштовна пробна версія 30-день, кредитна картка не потрібна! Безкоштовна пробна версія зараз!

1. Виділіть комірки текстового рядка, з яких ви будете витягувати їхні слова, та клацніть на Кутулс > Злиття та розділення > Розділені клітини.

2. У діалоговому вікні Розділити клітинки вкажіть тип розділення в полі тип розділ перевірити Простір опція в Вкажіть роздільник і натисніть на Ok кнопку. Дивіться знімок екрана:

3. Тепер вкажіть діапазон призначення, в який ви будете виводити витягнуті слова, і натисніть на OK button

Якщо ви позначили Розділити на стовпці у діалоговому вікні "Розділити клітинки" кожне слово витягується з кожного текстового рядка та перераховується вертикально.

Якщо ви позначили Розділити на ряди у діалоговому вікні "Розділити клітинки" кожне слово витягується з кожного текстового рядка та перераховується горизонтально.


Вийміть n-те слово з текстового рядка в Excel за допомогою дивовижного інструменту

Якщо ви встановили Kutools для Excel, ви можете скористатися його Помічником формул> Видобути n-те слово в клітинці, щоб швидко швидко витягти n-те слово з вказаної комірки.

Kutools для Excel - Включає понад 300 зручних інструментів для Excel. Повна безкоштовна пробна версія 30-день, кредитна картка не потрібна! Безкоштовна пробна версія зараз!

1. Виділіть клітинку, куди ви помістите витягнуте слово, і натисніть Кутулс > Помічник формули > Помічник формули щоб увімкнути цю функцію.

2. У діалоговому вікні «Помічник формул» виконайте такі дії:
(1) Виберіть текст від Тип формули випадаючий список;
(2) Клацніть, щоб виділити Витягніть n-те слово в клітинку в Виберіть формулу вікно списку;
(3) В Осередок у полі вкажіть клітинку, з якої ви будете витягувати слово;
(4) в N-й вкажіть номер.

3. Натисніть Ok кнопку. Якщо потрібно, перетягніть маркер автозаповнення комірки формули та скопіюйте формулу в інші комірки.


Демонстрація: витягніть кожне слово з текстового рядка та перелічіть їх горизонтально або вертикально


Kutools для Excel включає більше 300 зручних інструментів для Excel, які можна спробувати без обмежень протягом 30 днів. Завантажте та безкоштовно пробну версію зараз!

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


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

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2021 і 365. Підтримує всі мови. Легке розгортання на вашому підприємстві чи в організації. 30-денна безкоштовна пробна версія повних функцій. 60-денна гарантія повернення грошей.
вкладка kte 201905

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (38)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Цей код vba фантастичний, велике спасибі.
Цей коментар був мінімізований модератором на сайті
Ця функція, визначена користувачем, чудова! Дуже дякую, що поділилися.
Цей коментар був мінімізований модератором на сайті
Дуже дякую! Працювало добре! :-)
Цей коментар був мінімізований модератором на сайті
Це було СУПЕР корисно, мені було цікаво, чи хтось знав про список корисних функцій, зроблених своїми руками, таких як "FindWord", які можна було б завантажити або скопіювати та вставляти.
Цей коментар був мінімізований модератором на сайті
Привіт, мені просто цікаво, що ще я міг би вставити до формули Visual Basic, щоб витягнути коми або тире відразу після даних.. наприклад, Fortin-
Цей коментар був мінімізований модератором на сайті
Привіт, це чудово. Це спрацювало дуже добре і зменшує наше навантаження, заощаджуючи багато часу на цій операції. Дякую всім, хто працював над цим і ділився...
Цей коментар був мінімізований модератором на сайті
Хороший. Це спрацювало дуже добре
Цей коментар був мінімізований модератором на сайті
Привіт! Це дійсно економить багато часу. Дякую за поширення. Чи може хтось також підказати, як ми можемо витягнути слова за допомогою vba у зворотний спосіб, наприклад, останнє слово — 1, друге справа наліво — 2 тощо. Це буде високо оцінено.
Цей коментар був мінімізований модератором на сайті
Це не працює належним чином для вихідного рядка, що складається з не слів (наприклад, назви постачальників з наступними номерами деталей)
Цей коментар був мінімізований модератором на сайті
як ми можемо змінити шрифти для n-го слова в клітинці
Цей коментар був мінімізований модератором на сайті
Цінується. Мені це дуже допомогло.
Цей коментар був мінімізований модератором на сайті
Привіт, дякую за ваш фрагмент коду. Це надихнуло мене трохи розширитися. У наступних рядках ви можете вибрати: останнє слово (0), передостаннє (-1), передостаннє (-2) тощо. Незалежно від кількості слів. Функція FindWord(Source As String, Position As Integer) 'Оновити 20150504 Dim arr() As String arr = VBA.Split(Source, " ") xCount = UBound(arr) Виберіть Case Position Case -xCount до 0 FindWord = arr(xCount + Позиція) Регістр 1 До (xCount + 1) FindWord = arr(Позиція - 1) Регістр Інший FindWord = "" Кінець Вибір Кінець Функція
Цей коментар був мінімізований модератором на сайті
Привіт, лише вчорашнє доповнення до коду. Це додає додатковий рядок для налаштування зайвих пробілів у вихідному рядку: arr = VBA.Split(WorksheetFunction.Trim(Source), " ") з повагою, Allart
Цей коментар був мінімізований модератором на сайті
Дякую, Алане, це чудово, дякую! :)
Цей коментар був мінімізований модератором на сайті
ВЕЛИКЕ дякую!!
Цей коментар був мінімізований модератором на сайті
Привіт. Дякую за ваш код, у мене є речення зі списком, і одне з них складається лише з 1 слова, і ваш код не працює, якщо він містить лише 1 слово.
Цей коментар був мінімізований модератором на сайті
Я не можу змусити код для першого слова працювати, якщо деякий із мого списку містить лише одне слово в клітинці. наприклад, перше слово ---> перша друга ---> [нуль] останнє слово ---> останнє
Цей коментар був мінімізований модератором на сайті
Спробуйте це (дивіться мою відповідь вище): Функція FindWord(Source As String, Position As Integer) ' отримує 1-й, 2-й, останній(0), передостанній (-2) тощо, слово з рядка ' Оновлення 20150505 Dim arr( ) Як рядок arr = VBA.Split(WorksheetFunction.Trim(Source), " ") xCount = UBound(arr) Виберіть Case Position Case -xCount To 0 FindWord = arr(Position + xCount) Case 1 To xCount + 1 FindWord = arr (Позиція - 1) Інший регістр FindWord = "" End Select
Цей коментар був мінімізований модератором на сайті
Привіт гіки, у мене є така клітинка: 1 ABCD; 2 DEDF; 1 DED#3d; 4 FDWDS; 1 ED І я хотів би витягти символ після 1. Тому я хочу отримати результат, наведений нижче: ABCD;DED#3d;ED
Цей коментар був мінімізований модератором на сайті
У мене є 64-розрядна версія Excel 2013, і мені не вистачає надбудови Morefunc. На основі наведеного вище коду я придумав цю заміну функції WMID Morefunc. Я був би вдячний, якби хтось, більш досвідчений, ніж я, зміг його прибрати. Функція WMid1(Джерело як рядок, необов'язкова позиція як ціле, необов'язкова кількість слова як ціле число, необов'язковий роздільник як рядок) Dim arr() як рядок Dim xCount як ціле число Dim wCount як ціле число Dim wFirst як ціле число Dim wLast як ціле, якщо Position = 0 Потім Posi = 1 Якщо WordCount = 0 Тоді WordCount = 1 Якщо роздільник = "" Тоді роздільник = " " arr = VBA.Split(Trim(Source), Separator) xCount = UBound(arr) + 1 Якщо Position < 1 Тоді wFirst = Application. Макс(xCount + Position - WordCount + 1, 0) wLast = xCount + Position Else wFirst = Position - 1 wLast = Application.Min(xCount - 1, Position + WordCount - 2) End, якщо xCount < 2 або Abs(Position) > xCount Тоді WMid1 = "" Інакше WMid1 = arr(wFirst) Для wCount = wFirst + 1 To wLast WMid1 = WMid1 & Separator & arr(wCount) Next End Якщо WMid1 = Trim(WMid1) End Function
There are no comments posted here yet
Load More
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця

Слідуй за нами

Copyright © 2009 - WWW.extendoffice.com. | Всі права захищені. На основі ExtendOffice. | Карта сайту
Microsoft та логотип Office є товарними знаками або зареєстрованими товарними знаками Microsoft Corporation у США та / або інших країнах.
Захищений Sectigo SSL