话不多说,上才艺!
为了实现这个功能,类似于excel的STDEV()方法,我们需要写一个自定义函数,(报表属性=》代码)
因为我的数据里面有的值为“NAN”,所以我需要排除掉这些数据,排除的方法参照:去除NAN数据
接下来就是计算标准偏差了
#region "根据传入的数据集计算相对标准偏差"
public function getStandardDeviation(dataArr as Object()) as string
dim temp() as Object
dim length as integer
temp=arrayCheck(dataArr,"NAN")
if(IsNothing(temp)) then
return "NAN"
else
length=temp.length
end if
if(length=1) then
return temp(0)
end if
dim std as double
dim dataAvg as double=0
dim quadratic as double =0
dim ias long
for i=0 to length-1
dataAvg=dataAvg+CDbl(temp(i))/length
next i
dim j as long
for j=0 to length-1
quadratic=quadratic+((CDbl(temp(j))-dataAvg)^2/(length-1))
next j
std=Sqrt(quadratic)
if(Instr(CStr(std),".")>0) then
return mid(CStr(std),1,Instr(CStr(std),".")+3)
else
return CStr(std)
end if
end function
#end region
接下来就是调用所写的函数,获取需要计算的数据集所用的方法是:LookupSet()
语法:
=Code.getStandardDeviation(LookupSet(Fields!Product.Value,Fields!Product.Value,Fields!ActualBCT.Value,"DataSet_Data"))
以上就是本章所有内容,希望对您有所帮助!
开心也是一天,不开心也是一天,何必不开心,来,笑^_^