业务背景
Excel中可以为统计图添加趋势线,常用的线性趋势,如下图
在报表或者仪表板中的统计图需要显示趋势线的需求,需要在后台对数据进行计算。较理想的方式就是通过spl计算线性趋势数据。
实现方式
1、 首先找到线性趋势计算公式,如下图分别是斜率和截距的公式,
线性趋势=斜率*X+截距
2、 编写spl脚本实现线性趋势计算
=create(D) |
//创建一个D字段的序表 |
=data |
//数值数组参数 |
=A1.record(data,0) |
//将data数据插入序表 |
=A1.derive(#:X,float(D):Y) |
//序表添加X,Y字段 |
=A4.(X*Y).sum() |
//XY求和 |
=A4.count() |
//n |
=A4.avg(X) |
//X平均 |
=A4.avg(Y) |
//Y平均 |
=A5-A6*A7*A8 |
//斜率分子 |
=A4.(X*X).sum() |
//X平方和 |
=A6*A7*A7 |
//n*X平均*X平均 |
=A10-A11 |
//斜率分母 |
=A9/A12 |
//斜率 |
=A8-A13*A7 |
//截距 |
=A4.derive(A13*X+A14:L) |
//计算趋势 |
return A15.(L) |
//返回趋势数据 |