У меня есть большой список групп пользователей и соответствующих им имен пользователей. Теперь я хотел бы отфильтровать их еще больше. Группы пользователей для каждого пользователя ВСЕ находятся в одной ячейке (имя пользователя - группы пользователей), так что это означает, что в одной ячейке может быть 10-15 групп пользователей. Мне нужны только строки, состоящие из "WTS", а затем размещение строк группы пользователей, состоящих из "WTS", в новую ячейку.

Как мне это сделать?

Пример данных:

Группы пользователей 1 WTS_A, BTS_B, WTS_C,

Я хочу WTS_A и WTS_C.

2 ответа2

1

У вас есть две задачи: найти действительные (интересные) данные, а затем отформатировать их.

1 Поиск строки:

Поиск строки, такой как WTS, можно выполнить с помощью функций Find или Search. Они оба покажут вам числовое значение при обнаружении строки, например: FIND("WTS"; A1) или SEARCH("WTS"; A1)

Сделайте это для первого ряда. Выберите ячейку с вашей копией формулы, а затем выберите ячейки под ней для всех ваших строк данных и вставьте. Формула автоматически обновится до НАЙТИ ("WTS"; B1)...FIND ("WTS"; C1)...

Я предлагаю ручную фильтрацию на этом этапе, чтобы скрыть строки, которые выдают ошибку: # ЗНАЧЕНИЕ!

Просто удалите те строки, которые не дают результатов.

2 Разделите данные групп пользователей:

Если в ячейке есть несколько записей, разделенных строкой (например, тире «-»), выберите ячейки и используйте «Данные» -> «Текст в столбцы» -> «С разделителями» -> «Добавить разделитель» - выберите «Другой» и введите тире.

Это возьмет ваши данные и поместит их в несколько ячеек, как эта Usergroup1 Usergroup2 Usergroup3 ...

3 Бонусный совет:

Если вы хотите использовать функцию поиска или поиска для нескольких ячеек, которые вы только что разделили, выполните объединение ячеек в одну ячейку (обратное в основном разделение), а затем выполните поиск по объединенным значениям. A7 = CONCATENATE (A1; A2; A3) A8 = НАЙТИ ("WTS"; A7)

0

Исходя из моего понимания вашего вопроса, я предлагаю двухэтапное решение.

Шаг 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

Дайте мне знать, если это работает для вас.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .