蛙蛙推荐:利用Excel进行销售量预测
摘要:利用excel做线性增长预测
昨天看了个帖子http://www.cnblogs.com/shenyisyn/archive/2008/05/20/1203061.html,自己写程序实现线性预测,其实excel也有这功能。假如我们知道了1季度的每天的销售额,我们要推算出后半年的销售额,以便制定原材料采购计划。当然销售量受很多因素影响,季节,营销,地区等,我们先不考虑这些情况,单纯利用线性公式来做预测,如果要把多种属性进行考虑和建模的话,得用sqlserver的BI功能了。
日期 销售额
2008-1-1 451
2008-1-2 477
2008-1-3 460
2008-1-4 432
2008-1-5 469
2008-1-6 456
2008-1-7 468
2008-1-8 495
2008-1-9 478
2008-1-10 492
2008-1-11 488
2008-1-12 476
2008-1-13 522
2008-1-14 492
2008-1-15 499
2008-1-16 488
2008-1-17 474
2008-1-18 529
2008-1-19 498
2008-1-20 499
2008-1-21 529
2008-1-22 545
2008-1-23 565
2008-1-24 583
2008-1-25 585
2008-1-26 557
2008-1-27 562
2008-1-28 606
2008-1-29 591
2008-1-30 570
2008-1-31 528
2008-2-1 628
2008-2-2 648
2008-2-3 661
2008-2-4 669
2008-2-5 700
2008-2-6 705
2008-2-7 692
2008-2-8 684
2008-2-9 682
2008-2-10 670
2008-2-11 703
2008-2-12 752
2008-2-13 751
2008-2-14 735
2008-2-15 741
2008-2-16 751
2008-2-17 768
2008-2-18 756
2008-2-19 719
2008-2-20 721
2008-2-21 742
2008-2-22 729
2008-2-23 729
2008-2-24 737
2008-2-25 734
2008-2-26 733
2008-2-27 698
2008-2-28 650
2008-2-29 628
2008-3-1 710
2008-3-2 779
2008-3-3 797
2008-3-4 802
2008-3-5 804
2008-3-6 796
2008-3-7 767
2008-3-8 778
2008-3-9 866
2008-3-10 890
2008-3-11 866
以上是已有的数据,把上面的数据复制到excel里面,连标题共72行,范围是a1,b1:a72,b72,先选中现有数据点击插入图标,生成一个曲线图,如下,表示第一季度的销售量曲线
然后拖动日期列最下面的一个单元格的右下角往下拉,一直往下填充,直到填充到2008-12-31,再在B73单元格输入以下“=TREND(B2:B72,A2:A72,A73)”公式,关于这个公式可以查看excel的帮助。
====================
TREND
返回一条线性回归拟合线的值。即找到适合已知数组 known_y's 和 known_x's 的直线(用最小二乘法),并返回指定数组 new_x's 在直线上对应的 y 值。
==语法
TREND(known_y's,known_x's,new_x's,const)
Known_y's 是关系表达式 y = mx + b 中已知的 y 值集合。
如果数组 known_y's 在单独一列中,则 known_x's 的每一列被视为一个独立的变量。
如果数组 known-y's 在单独一行中,则 known-x's 的每一行被视为一个独立的变量。
Known_x's 是关系表达式 y = mx + b 中已知的可选 x 值集合。
数组 known_x's 可以包含一组或多组变量。如果只用到一个变量,只要 known_y's 和 known_x's 维数相同,它们可以是任何形状的区域。如果用到多个变量,known_y's 必须为向量(即必须为一行或一列)。
如果省略 known_x's,则假设该数组为 {1,2,3,...},其大小与 known_y's 相同。
New_x's 为需要函数 TREND 返回对应 y 值的新 x 值。
New_x's 与 known_x's 一样,每个独立变量必须为单独的一行(或一列)。因此,如果 known_y's 是单列的,known_x's 和 new_x's 应该有同样的列数。如果 known_y's 是单行的,known_x's 和 new_x's 应该有同样的行数。
如果省略 new_x's,将假设它和 known_x's 一样。
如果 known_x's 和 new_x's 都省略,将假设它们为数组 {1,2,3,...},大小与 known_y's 相同。
Const 为一逻辑值,用于指定是否将常量 b 强制设为 0。
如果 const 为 TRUE 或省略,b 将按正常计算。
如果 const 为 FALSE,b 将被设为 0(零),m 将被调整以使 y = mx。
==说明
有关 Microsoft Excel 对数据进行直线拟合的详细信息,请参阅 LINEST 函数。
可以使用 TREND 函数计算同一变量的不同乘方的回归值来拟合多项式曲线。例如,假设 A 列包含 y 值,B 列含有 x 值。可以在 C 列中输入 x^2,在 D 列中输入 x^3,等等,然后根据 A 列,对 B 列到 D 列进行回归计算。
对于返回结果为数组的公式,必须以数组公式的形式输入。
当为参数(如 known_x's)输入数组常量时,应当使用逗号分隔同一行中的数据,用分号分隔不同行中的数据。
===========================
然后拉住b73单元格的右下角拉到最后,填充销售额列的单元格,最后再生成一条曲线图就行了。
完整excel下载地址如下
https://files.cnblogs.com/onlytiancai/xianxingyuce.zip