Перейти к содержимому

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

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

Author Xiaoyang Last modified

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

a screenshot of the original text string and the two segments separated by the second space

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

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

Извлечение текста до или после второго разделителя (пробела/запятой) с помощью кода 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)))

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

a screenshot of 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 является эффективным решением. VBA позволяет вам извлекать текст до или после второго пробела, запятой или любого другого разделителя — повышая эффективность при работе с разными структурами данных или необходимости повторяемости рутинных операций.

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

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После вставки кода нажмите Run button Выполнить кнопку или нажмите F5 для выполнения. Диалоговое окно запросит вас выбрать диапазон данных, затем ввести разделитель, указать, хотите ли вы текст «до» или «после» второго вхождения, и, наконец, выбрать ячейку для вывода результата. Макрос выведет извлеченный результат в указанную вами ячейку.


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

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных благодаря: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Kutools Functions
Популярные функции: Поиск, выделение или отметка дубликатов | Удалить пустые строки | Объединить столбцы или адреса без потери данных | Округлить ...
Супер ПОИСК: 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.

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