Исходя из моего понимания вашего вопроса, я предлагаю двухэтапное решение.
Шаг 1 - Используйте функцию «Текст в столбцы» в Excel и преобразуйте текст из одного столбца в несколько столбцов. Используйте пробел и запятую как разделители.
Шаг 2. Используйте пользовательскую функцию VBA для объединения только предполагаемых ячеек в одну ячейку, разделенную запятой.
После завершения процесса «Текст в столбцы» нажмите ALT + F11 на листе, чтобы открыть редактор VBA. Из меню Вставка Вставить модуль. Модуль 1 должен быть создан, и его редактор кода должен открыться. Если нет, дважды щелкните Module1 в левой панели, чтобы открыть его редактор кода.
Вставьте следующий код в тот же.
Public Function TXTJOIN(argument1 As Range) 'Accept input range
result = ""
colcounter = argument1.Columns.Count
rowcounter = argument1.Rows.Count
If rowcounter > 1 Then
TXTJOIN = CVErr(xlErrValue) 'If row counter > 1 return #VALUE! Error
Exit Function
End If
If colcounter > 255 Then
TXTJOIN = CVErr(xlErrValue) 'If col counter > 255 return #VALUE! Error
Exit Function
End If
For Each element In argument1
If Left(element, 3) = "WTS" And Len(element) > 3 Then
result = result & element & ","
End If
Next element
If result = "" Then
TXTJOIN = result
Else
TXTJOIN = Left(result, Len(result) - 1)
End If
End Function
Это создает пользовательскую функцию TXTJOIN для проверки запуска String как "WTS" и объединения всех таких столбцов, разделенных запятой.
Сохраните и выйдите из редактора VBA. Вернитесь к рабочему листу, теперь перейдите в крайний правый столбец и введите эту функцию, указав применимый диапазон столбцов. Скопируйте или перетащите его вниз по длине соответствующих строк. Вы должны получить нужную строку в соответствующих ячейках. Скопируйте только значения в другом месте и удалите оставшиеся столбцы, чтобы очистить лист.
Вы получите # ЗНАЧЕНИЕ! Ошибка от этой функции в ситуациях, подобных.
Вы передаете ему многомерный массив, например, A1:D12
Вы передаете ему более 255 столбцов.
Вы передаете ему массив из нескольких строк, например A1:A12
Дайте мне знать, если это работает для вас.
Ограничение. Предполагается, что идентификаторы пользователей разделяются пробелом или запятой. Если два вместе без запятой или пробела, эта функция не будет определять два отдельно.