Как найти несколько значений в запятой ячейке и усреднить результаты в Excel? - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь создать формулу, которая может искать несколько кодов стран ISO, разделенных запятой, содержащейся в одной ячейке (ячейка A2, изображение 1), со ссылкой на список кодов стран и оценку образования (столбцы F и G, Изображение 1). Затем верните среднее значение по всем странам в ячейке B2. Кто-нибудь знает, могу ли я построить формулу для этого? enter image description here

Ответы [ 2 ]

0 голосов
/ 02 апреля 2019

Вы можете попробовать VBA:

Option Explicit

Sub test()

    Dim i As Long
    Dim strCode As String, strScore As String
    Dim rngVlookup As Range
    Dim Code As Variant

    With ThisWorkbook.Worksheets("Sheet1")

        Set rngVlookup = .Range("F2:G34")

        For i = 2 To 3

        strCode = ""
        strScore = ""

            strCode = .Range("A" & i).Value

            For Each Code In Split(strCode, ",")
                If strScore = "" Then
                    On Error Resume Next
                    strScore = Application.WorksheetFunction.VLookup(Trim(Code), rngVlookup, 2, False)
                Else
                    On Error Resume Next
                    strScore = strScore & ", " & Application.WorksheetFunction.VLookup(Trim(Code), rngVlookup, 2, False)
                End If

            Next Code

            With .Range("B" & i)
                .Value = strScore
                .NumberFormat = "0.000000"
            End With

        Next i

    End With

End Sub
0 голосов
/ 02 апреля 2019

Я не думал, что вы могли бы сделать это с формулой ячейки, но потом я увидел эту запись и придумал:

=AVERAGE(IF(ISNA(MATCH($F$2:$F$99, TRIM(MID(SUBSTITUTE(A2,",",REPT(" ",99)),(ROW(OFFSET($A$1,,,LEN(A2)-LEN(SUBSTITUTE(A2,",",""))+1))-1)*99+((ROW(OFFSET($A$1,,,LEN(A2)-LEN(SUBSTITUTE(A2,",",""))+1)))=1),99)), 0)), "",  $G$2:$G$99 ))

Попробуйте вставить в ячейку B2в виде формулы массива (Ctrl + Shift + Enter) и заполнения ... И не спрашивайте меня, как это работает.

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