Вот какой код, который я написал для создания скользящего процентиля, оцененного в каждой строке массива. Этот код работает отлично, но он МЕДЛЕННЫЙ! Для запуска 8000 строк требуется 10 секунд, а мой компьютер не медленный. Кто-нибудь знает, как сделать этот запуск быстрее? Предостережения (все эти вычисления должны быть в памяти, поэтому ссылки на диапазон не допускаются). Я запустил формулу процентили как проверку с фиксированной точки, перетащил ее и быстрее, чем за одни и те же данные. Какие-нибудь советы?Как сделать скользящий процентиль оценен от начала до каждого элемента (через конец) в массиве
Большое вам спасибо! :)
Dim Current_MACD_Percentile() As Double
ReDim Preserve Current_MACD_Percentile(1 To UBound(MoveAvg5, 1), 1 To 1)
Dim Current_MACD_Percentile_Arr() As Double
Dim Current_MACD_Percentile_Elm_Arr As Variant
For x = 1 To UBound(MoveAvg5)
For w = 1 To x
ReDim Preserve Current_MACD_Percentile_Arr(1 To 1, 1 To x)
Current_MACD_Percentile_Arr(1, x) = MACD_SD_Pct(x, 1)
Next w
With Application.WorksheetFunction
Current_MACD_Percentile(x, 1) = Application.WorksheetFunction.Percentile(.Index(Current_MACD_Percentile_Arr, 1, 0), 0.985)
End With
Next x
With Worksheets("Program Requirements")
.Range(.Cells(5 + m - 1, 19), .Cells(Last_Row, 19)).Value = Current_MACD_Percentile
End With
FYI, код до этого выполняется примерно через 0,25 секунды, поэтому я точно знаю, что этот цикл является проблемой. – user2386878