Поиск нескольких значений из одной ячейки

У меня есть набор данных, в котором много разных категорий и данных были помещены в одну ячейку.

Например, у меня есть одна ячейка с именами лиц и процентами:

Jess 15%, Frank 20%, Allan 50%, Steve 15%

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

2 ответа

Если Text-To-Columns не является опцией, поскольку это поле повторяется во многих записях, а количество имен в поле варьируется, тогда вы можете использовать UDF для выполнения поиска:

Function findPercent(searchname As String, namelist As String) As String
    Dim nameArray() As String

    nameArray = Split(namelist, ",")

    For arrCounter = 0 To UBound(nameArray)
        If Left(Trim(nameArray(arrCounter)), Len(searchname)) = searchname Then
            findPercent = Trim(Right(Trim(nameArray(arrCounter)), Len(Trim(nameArray(arrCounter))) - Len(searchname)))
            Exit For
        End If
    Next
End Function

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

Вставьте это в новый модуль, и тогда вы сможете использовать его в своей таблице, например:

=findPercent("Steve", A1)

куда A1 ваша ячейка с этими запятыми / процентами.

Если ваша ячейка A1 и выбранное вами имя в A3, попробуйте:

=MID(A1,FIND(A3,A1)+LEN(A3),4)
Другие вопросы по тегам