Wie kann ich die SERIESSUM Funktion VB6 konvertieren?
-
21-08-2019 - |
Frage
Auf der tägliche Dosis von Excel Webseite, von dem verstorbenen Frank Kabel geschrieben, gibt es einige Formeln, die für die ATP-Funktionen stehen in können. Nicht einen Excel-Guru zu sein, ich bin zu kämpfen mit einer Umwandlung (bisher!) Zu VB6. (Warum ich dies tun, ich beziehen kann, wenn die NDA abläuft.)
Das Problem Ich bin mit dem Code steht in für SERIESSUM, nämlich
=SUMPRODUCT(coefficients,x^(n+m*(ROW(INDIRECT("1:"&ROWS(coefficients)))-1)))
Nun ist die SUMPRODUCT und ROWS Funktionen Ich habe in der Lage ziemlich einfach mit machen
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
Was ich nicht 'get' noch ist
- , wie
x^(n+m*(ROW(INDIRECT("1:"&ROWS(coefficients)))-1))
wertet auf ein Array - und was das Array enthält möglicherweise
Jede Excel-Gurus da draußen?
Lösung
ROW (INDIREKT ( "1:" & ROWS (Koeffizienten))) - 1
Wenn Koeffizienten 5 Zeilen hat, wird dies die Array zurück {1,2,3,4,5}. Der Rest der Progression ist
{1m, 2m, 3m, 4m, 5m)
{n + 1 m, n + 2m, n + 3 m, n + 4 m, n + 5m)
{x ^ n + 1 M, x ^ n + 2m, x ^ n + 3 M, x ^ n + 4m, x ^ n + 5m)
Das Array resultierende bekommt 'Serie summiert' gegen coeffecients.
Sie können die Progression in Excel-Formel Leiste von Strg + = auf markierten Teile der Formeln. Es gibt eine Grenze, wie viele Zeichen, die Sie in der Bearbeitungsleiste angezeigt werden können, so dass, wenn Koeffizienten viele Zeilen hat, können Sie die Fehlermeldung „Formel zu lang“
erhaltenIn der Bearbeitungsleiste, wählen Sie ROW (INDIREKT ( "1:" & ROWS (Koeffizienten))) - 1 und drücken Sie Strg + =. Dann wählen Sie einen anderen Teil Ihrer Formel, dafür, dass Sie übereinstimmen Öffnen und Schließen Klammern und Strg Hit + =. Sie können dies wiederholen, bis Sie die ganze Formel berechnet haben. Wenn Sie fertig sind, sollten Sie aus der Zelle ESCAPE, so dass Sie Ihre ursprüngliche Formel nicht verlieren.
Siehe auch Folge 474 hier .