KutoolsforOffice — Одно решение — пять мощных инструментов.Меньше усилий — больше результата.

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

АвторСяоянДата изменения

При работе с текстовыми данными в Excel вы часто сталкиваетесь со строками, содержащими несколько пробелов, запятых или других разделителей. Хотя функция Текст по столбцам в Excel позволяет разбить содержимое ячейки на отдельные столбцы на основе выбранного разделителя, иногда требуется более точное решение — например, извлечение всего текста до или после второго пробела или запятой в ячейке. В этой статье описаны несколько практических методов для решения этой задачи: формулы для извлечения текста до или после второго пробела/запятой, надёжные решения с использованием макросов VBA для автоматизации или обработки больших наборов данных, а также гибкие варианты с применением Power Query для расширенной предварительной обработки данных.

снимок экрана исходной текстовой строки и двух сегментов, разделенных вторым пробелом

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

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

Извлечь текст до или после второго разделителя (пробел/запятая) с помощью кода VBA


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

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

1. Введите следующую формулу в пустую ячейку, где вы хотите отобразить результат (например, в ячейку)C2):

=IF(ISERROR(FIND(" ",A2,FIND(" ",A2,1)+1)),A2,LEFT(A2,FIND(" ",A2,FIND(" ",A2,1)+1)))

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

Совет:Если вы хотите извлечь текст до второй запятой или другого разделителя, просто замените символ пробела ()" ") в формуле на нужный вам разделитель. Например, для запятой:

=IF(ISERROR(FIND(",",A2,FIND(",",A2,1)+1)),A2,LEFT(A2,FIND(",",A2,FIND(",",A2,1)+1)))

Этот подход обеспечивает быструю и эффективную работу при единичных извлечениях или обработке наборов данных умеренного размера. Однако если текст сильно неоднороден или количество разделителей существенно варьируется от строки к строке, может потребоваться дополнительная корректировка формулы. Также обращайте внимание на лишние пробелы и пустые ячейки — они способны повлиять на результаты. Всегда тщательно проверяйте вывод при работе с критически важными данными.

снимок экрана kutools for excel ai

Раскройте магию Excel с помощью KUTOOLS AI

  • Интеллектуальное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это доступно через простые команды.
  • Пользовательские формулы: создавайте индивидуальные формулы для оптимизации рабочих процессов.
  • Программирование на VBA: Пишите и внедряйте код VBA легко и без усилий.
  • Анализ формул: Легко разбирайтесь даже в самых сложных формулах.
  • Перевод текста: Ломайте языковые барьеры прямо в ваших таблицах.
Расширьте возможности Excel с помощью инструментов на базе ИИ.Скачать сейчаси ощутите эффективность, как никогда раньше!

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

Чтобы извлечь текст, расположенный после второго пробела-разделителя в ячейке, используйте функции ПСТР и НАЙТИ вместе.

1. Введите в целевую ячейку (например, D2) следующую формулу:

=MID(A2, FIND(" ", A2, FIND(" ", A2)+1)+1,256)

2. Нажмите Enter. Затем протяните маркер заполнения вниз по всем строкам, из которых нужно извлечь текст. В результате для каждой строки отобразится весь текст после второго пробела, как показано на скриншоте:

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

=MID(A2, FIND(",", A2, FIND(",", A2)+1)+1,256)

Извлечь текст до или после второго разделителя (пробел/запятая) с помощью кода VBA

Для работы с большими наборами данных, повторяющимися извлечениями или сценариями автоматизации эффективным решением станет использование макроса VBA. С его помощью вы сможете извлекать текст до или после второго пробела, запятой или любого другого разделителя, значительно повышая эффективность при обработке различных структур данных или при многократном выполнении одной и той же операции.

1. Выберите Разработчик > Visual Basic. В появившемся окне Microsoft Visual Basic для приложений нажмите Вставка > Модуль и введите следующий код в окно модуля:

Sub ExtractTextSecondDelimiter()
    Dim rng As Range
    Dim cell As Range
    Dim sep As String
    Dim direction As String
    Dim arr As Variant
    Dim result As String
    Dim pos1 As Long
    Dim pos2 As Long
    Dim xTitleId As String
    Dim outputCell As Range
    Dim i As Long
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    Set rng = Application.Selection
    Set rng = Application.InputBox("Select text range to extract from", xTitleId, rng.Address, Type:=8)
    If rng Is Nothing Then Exit Sub
    sep = Application.InputBox("Enter delimiter (e.g. space or comma)", xTitleId, " ", Type:=2)
    If sep = "" Then Exit Sub
    direction = Application.InputBox("Type 'before' for text before, 'after' for text after the 2nd delimiter", xTitleId, "before", Type:=2)
    If direction = "" Then Exit Sub
    Set outputCell = Application.InputBox("Select the first cell to output the result", xTitleId, Type:=8)
    If outputCell Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    i = 0
    For Each cell In rng
        If Not IsEmpty(cell.Value) Then
            pos1 = InStr(1, cell.Value, sep)
            If pos1 > 0 Then
                pos2 = InStr(pos1 + 1, cell.Value, sep)
                If pos2 > 0 Then
                    If LCase(direction) = "before" Then
                        result = Left(cell.Value, pos2 - 1)
                    ElseIf LCase(direction) = "after" Then
                        result = Mid(cell.Value, pos2 + Len(sep))
                    Else
                        result = cell.Value
                    End If
                Else
                    result = cell.Value
                End If
            Else
                result = cell.Value
            End If
            outputCell.Offset(i, 0).Value = result
        End If
        i = i + 1
    Next
    Application.ScreenUpdating = True
    MsgBox "Extraction completed.", vbInformation, xTitleId
End Sub

2. После вставки кода нажмите кнопку Кнопка «Выполнить»Выполнить или клавишу F5, чтобы запустить макрос. Появится диалоговое окно с запросом на выбор диапазона данных. Затем укажите разделитель, выберите, нужно ли извлечь текст «до» или «после» второго вхождения, и, наконец, задайте ячейку для вывода результата. Макрос поместит извлечённые данные в указанную вами ячейку.


Лучшие инструменты повышения продуктивности в Office

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

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


Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу

  • Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
  • Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!

Все надстройки Kutools — один установщик

Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.

ExcelWordOutlookTabsPowerPoint
  • Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
  • Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
  • Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
  • 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
  • Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек