Pergunta

Na Dose diária do site Excel , escrito pelo falecido Frank Kabel, existem algumas fórmulas que podem substituir funções ATP. Não sendo um guru Excel, eu estou lutando com a conversão de um (até agora!) Para VB6. (Por que eu estou fazendo isso eu posso relacionar uma vez que o NDA se esgote.)

O problema que estou tendo é com o código que está dentro para SERIESSUM, ou seja,

=SUMPRODUCT(coefficients,x^(n+m*(ROW(INDIRECT("1:"&ROWS(coefficients)))-1)))

Agora, as funções SUMPRODUCT e linhas Eu tenho sido capaz de prestar bastante simples com

Public Function SUMPRODUCT(a1 As Variant, a2 As Variant) As Double
    Dim dRes As Double
    Dim dVal As Double
    Dim i As Long
    If LBound(a1) = LBound(a2) And UBound(a1) = UBound(a2) Then
        For i = LBound(a1) To UBound(a1)
            dVal = a1(i) * a2(i)
            dRes = dRes + dVal
        Next
    End If
    SUMPRODUCT = dRes
End Function

Public Function ROWS(a1 As Variant)
    ROWS = UBound(a1) - LBound(a1) + 1
End Function

O que eu não 'get' ainda é

  • Como avalia x^(n+m*(ROW(INDIRECT("1:"&ROWS(coefficients)))-1)) para uma matriz
  • e que essa matriz pode conter

Qualquer gurus Excel lá fora?

Foi útil?

Solução

linha (indireta ( "1:" & linhas (coeficientes))) - 1

Se coeficientes tem 5 linhas, isso irá retornar a matriz {1,2,3,4,5}. O resto da progressão é

{1m, 2m, 3m, 4m, 5m)

{n + 1m, n + 2m, n + 3m, 4m + n, n + 5m)

{x ^ n + 1m, ^ x n + 2m, x ^ n + 3m, x ^ n + 4m, x ^ n + 5m)

Isso resulta Array Obtém 'série somados' contra coeffecients.

Você pode ver a progressão na barra de fórmulas do Excel usando Ctrl + = em partes destacadas das fórmulas. Há um limite de quantos caracteres que você pode exibir na barra de fórmulas, por isso, se coeficientes tem um monte de linhas, você pode receber o erro "fórmula demasiado longo"

Na barra de fórmulas, seleccione ROW (indireta ( "1:" & linhas (coeficientes))) - 1 e pressione Ctrl + =. Em seguida, selecione uma outra parte de sua fórmula, certificando-se de corresponder abrir e fechar parênteses, e pressione Ctrl + =. Você pode interagir este até que você tenha toda a fórmula calculada. Quando estiver pronto, certifique-se de escapar para fora da célula para que você não perca a sua fórmula original.

Veja também Episódio 474 aqui .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top