Формула сигмы Excel VBA - PullRequest
1 голос
/ 06 мая 2020

Я пытался написать эту формулу excel vba в чем я ошибаюсь

For i = 1 To (N - 1)
    H = H + N- (i / (N) ^ P)
Next

enter image description here

Ответы [ 3 ]

2 голосов
/ 06 мая 2020

l oop используется только для того, что стоит за знаком суммы Σ, а N - Σ должно быть вычислено после l oop. Также необходимо правильно разместить перентез:

Public Function H(ByVal N As Long, ByVal P As Double) As Double
    'Calculate the sum Σ
    Dim S As Double 'result of the sum Σ
    Dim i As Long
    For i = 1 To (N - 1)
        S = S + ((i / N) ^ P)
    Next

    'Then calculate the rest
    H = N - S
End Function
1 голос
/ 06 мая 2020

Если вы хотите, чтобы это выполняла формула:

=B1 -SUMPRODUCT((ROW($ZZ1:INDEX($ZZ:$ZZ,B1-1))/B1)^B2)

enter image description here

0 голосов
/ 06 мая 2020

Что касается объяснений, VBA следует за приоритетом операторов, поэтому мы должны осторожно использовать круглые скобки вокруг вычислений, чтобы изменить предопределение операторов. Отсутствие круглых скобок в нужном месте в приведенных выше расчетах могло стать причиной неожиданного результата. Пожалуйста, перейдите по ссылке ниже, чтобы увидеть приоритет оператора:

https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/operator-precedence

...