2015-09-17 1 views
-1

, а не поиск наивысшей одиночной записи, я хочу наивысшую общую сумму для последовательной группы из n записей, например, в столбце из 100 значений, которые я хочу посмотреть найти 10 последовательных ячеек, сумма которых максимальнанахождение наивысшего итога для последовательной группы записей в столбце - EXCEL

В качестве примера я говорю 10, я хочу, чтобы это было легко изменить.

+0

Вы хотите максимальную сумму ** ** или ** местоположение ** последовательных ячеек? –

+0

Это очень сложная задача для формулы. Вы открываете решение для функции User Defined Function? –

ответ

0

На сегодняшний день самый чистый способ сделать это - с помощью функции, определяемой пользователем (UDF).

Вот небольшая процедура, которая сделает это. Поместите эту процедуру в стандартный модуль кода:

Function MaxN(n&, r As Range) 
    Dim i&, j&, m#, t#, v 
    v = r.Value2 
    For i = 1 To UBound(v) 
     If UBound(v) - i + 1 >= n Then 
      t = 0 
      For j = i To i + n - 1 
       t = t + v(j, 1) 
      Next 
      If t > m Then m = t 
     Else 
      Exit For 
     End If 
    Next 
    MaxN = m 
End Function 

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

=MaxN(10,A1:A100) 

Вот и все.

С помощью этого UDF вы можете легко изменить «10» на все, что захотите, и вы можете легко отрегулировать расположение и размер вертикального диапазона, изменив формулу.

+0

Это прекрасно, что я искал. – yusufzub

1

С данными A1 через A100, в B10 входят:

=SUM(A1:A10) 

и скопировать вниз через B100

Затем в другой клетке, использование:

=MAX(B:B) 
0

массив формула версия (должна быть подтверждена с Ctrl + Shift + Enter)

=MAX(A1:A100+A2:A101+A3:A102+A4:A103+A5:A104+A6:A105+A7:A106+A8:A107+A9:A108+A10:A109) 

(вероятно, не самый простой для поддержания в будущем).

Смежные вопросы