Поиск нескольких значений из одной ячейки
У меня есть набор данных, в котором много разных категорий и данных были помещены в одну ячейку.
Например, у меня есть одна ячейка с именами лиц и процентами:
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)