在已故Frank Kabel撰写的Daily Dose of Excel网站上,有一些公式可以代表ATP功能。不是一个Excel大师,我正在努力将一个(到目前为止!)转换为VB6。 (为什么我这样做,一旦NDA耗尽,我可能会联系起来。)
我遇到的问题是代表SERIESSUM的代码,即
=SUMPRODUCT(coefficients,x^(n+m*(ROW(INDIRECT("1:"&ROWS(coefficients)))-1)))
现在我已经能够使用
简单地渲染SUMPRODUCT和ROWS函数了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
我还没有“得到”的是
x^(n+m*(ROW(INDIRECT("1:"&ROWS(coefficients)))-1))
如何评估数组那里有任何Excel大师吗?
答案 0 :(得分:2)
ROW(INDIRECT( “1:” &安培; ROWS(系数))) - 1
如果系数有5行,则返回数组{1,2,3,4,5}。其余的进展是
{1m,2m,3m,4m,5m)
{n + 1m,n + 2m,n + 3m,n + 4m,n + 5m)
{x ^ n + 1m,x ^ n + 2m,x ^ n + 3m,x ^ n + 4m,x ^ n + 5m)
结果数组对系数进行'系列求和'。
您可以在公式的突出显示部分使用Ctrl + =来查看Excel公式栏中的进度。您可以在公式栏中显示多少个字符,因此如果系数有很多行,您可能会收到错误“公式太长”
在公式栏中,选择ROW(INDIRECT(“1:”& ROWS(systems))) - 1并按Ctrl + =。然后选择公式的另一部分,确保匹配左括号和右括号,然后按Ctrl + =。您可以迭代这个,直到您计算出整个公式。完成后,请务必将ESCAPE退出单元格,这样就不会丢失原始公式。