你这个要求不能实现啊,我用了paramarray
关键字,用来指定一个
任意元素个数
的数组
共参考:
---------
function
shuzu(paramarray
x())
application.volatile
dim
i,
n,
m,
tmp
n
=
ubound(x)
-
lbound(x)
+
1
if
n
mod
2
<>
0
then
tmp
=
"#err_x()":
goto
1000
n
=
n
/
2
m
=
lbound(x)
for
i
=
1
to
n
tmp
=
tmp
+
x(m
+
i
-
1)
*
x(m
+
i
-
1
+
n)
next
1000:
shuzu
=
tmp
end
function
-----------
输入公式的时候,需要
成对
的元素,套用你的公式如下:
=shuzu((k5,l5,m7,n9),(m13,l15,k13,m17))
可以输入任意
成对的
元素,比如使用10个参数:
=shuzu((k5,l5,m7,n9,m10),(m13,l15,k13,m17,n20))
=SUMPRODUCT(B1:B7,C1:C7)
这个可以满足吧
平均算法
Public
Function
AVERAGEx(x
As
Range,
y
As
Range)
Dim
m
For
i
=
0
To
x.Count
-
1
If
Cells(y.Row
+
i,
y.Column).Value
<>
0
Then
m
=
m
+
Cells(x.Row
+
i,
x.Column).Value
End
If
Next
AVERAGEx
=
m
End
Function
这是自定义函数,试试吧
1.怎么判断这些不连续的列?无论是写function还是用原有的函数,这个你都得说清楚
2.=average(if(A1:F1<>0,A2:F2))
crtl+shift+enter结束公式
直接用函数比较简单:
=Sumproduct(A1:N1,B1:N1)/N