Как взять среднее число клеток, которые последовательно разделяются в Excel? - PullRequest
0 голосов
/ 31 августа 2018

Я хотел бы взять среднее значение клетки каждые 7 клеток. Например, я хочу взять среднее значение для ячеек A1, A8, A15, A22 и т. Д. Затем еще одно среднее для A2, A9, A16, A23 и т. Д. Как я могу сделать это быстро, поскольку у меня большой набор данных.

Спасибо

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Может быть, пользовательская функция

Public Function Get7Average(ByVal rng As Range) As Variant
    Dim arr(), i, total As Long, counter As Long
    If rng.Columns.Count > 1 Or rng.Cells.Count < 7 Then
        Get7Average = CVErr(xlErrNA)
        Exit Function
    Else
        arr = rng.Value
        For i = LBound(arr, 1) To UBound(arr, 1) Step 7
            counter = counter + 1
            If IsNumeric(arr(i, 1)) Then
                total = total + arr(i, 1)
            End If
        Next
    End If
    If total = 0 Then
        Get7Average = CVErr(xlErrNA)
        Exit Function
    End If
    Get7Average = total / counter
End Function

В листе

image

0 голосов
/ 31 августа 2018

Поместите эту формулу массива в первую ячейку:

=AVERAGE(INDEX(A:A,N(IF({1},(ROW(A1:INDEX(A:A,MATCH(1E+99,A:A)/7))-1)*7+ROW(1:1)))))

Будучи формулой массива, она должна быть подтверждена с помощью Ctrl-Shift-Enter вместо Enter при выходе из режима редактирования.

Затем скопируйте / перетащите вниз 7 ячеек.

enter image description here

...