收藏 分享(赏)

2012-05-07 简单易学 图文并茂 Excel VBA 制作正态分布曲线.pdf

上传人:HR专家 文档编号:6998507 上传时间:2019-04-30 格式:PDF 页数:8 大小:427.25KB
下载 相关 举报
2012-05-07 简单易学 图文并茂 Excel VBA 制作正态分布曲线.pdf_第1页
第1页 / 共8页
2012-05-07 简单易学 图文并茂 Excel VBA 制作正态分布曲线.pdf_第2页
第2页 / 共8页
2012-05-07 简单易学 图文并茂 Excel VBA 制作正态分布曲线.pdf_第3页
第3页 / 共8页
2012-05-07 简单易学 图文并茂 Excel VBA 制作正态分布曲线.pdf_第4页
第4页 / 共8页
2012-05-07 简单易学 图文并茂 Excel VBA 制作正态分布曲线.pdf_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、 Excel VBA 制作正态分布曲线 简介 正态分布与 Excel 测量数据的正态分布,对相关工作有很重要的判定意义;特别是直观的分布曲线,让人对数据质量一目了然。 http:/ 参看不少文档,没有见到 Excel 有直接绘制正态分布曲线的函数,故考虑使用 VBA 编程的方法,实现从测量数据自动生成正态分布曲线的功能。 约定和程序 假设有 Excel 数据表,把测试数据放在第一张表的第一列中: 在 VBA 编辑器中新建一个模块,名字默认,输入如下代码(代码已经包含注释,请自行参看): * Public Sub myDistrib() Dim Aver As Double 平均数 Dim St

2、d As Double 标准差 Dim Max As Double 最大值 Dim Min As Double 最小值 Dim Limit As Double 极限值 Aver = Application.WorksheetFunction.Average(Selection) Std = Application.WorksheetFunction.StDev(Selection) Max = Application.WorksheetFunction.Max(Selection) Min = Application.WorksheetFunction.Min(Selection) 取极值的三

3、倍作为今后绘图的上下限 Limit = Application.WorksheetFunction.Max(Max - Aver, Aver - Min) * 2 在上下限间创建 100 个单点值 step = Limit * 2 / 100 Selection.Copy 创建一个新的表 生成需要的数据 这是绘制分布曲线需要的数据 Worksheets.Add , Worksheets(Worksheets.Count), 1 Worksheets(Worksheets.Count).Name = “【正态分布】 “ & Trim(Str(Sheets.Count) Range(“A1“).S

4、elect ActiveSheet.Paste C1 = “平均值 “ D1 = Round(Aver, 2) C2 = “标准差 “ D2 = Round(Std, 2) C3 = “绘图上限 (X2)“ D3 = Round(Aver + Limit, 2) C4 = “绘图下限 (X2)“ D4 = Round(Aver - Limit, 2) For I = 1 To 100 Cells(I, 6).Value = (I - 1) * step + (Aver - Limit) Cells(I, 7).Value = Application.WorksheetFunction.Norm

5、Dist(Cells(I, 6).Value, Aver, Std, 0) Next I 这是绘制上下标识和平均值需要的数据 C6 = “最大值 “ D6 = Max E6 = Max D7 = 0 E7 = G51 C9 = “最小值 “ D9 = Min E9 = Min C10 = “绘图上标值 “ D10 = 0 E10 = G51 C12 = “平均值 “ D12 = Aver E12 = Aver C13 = “绘图上标值 “ D13 = 0 E13 = G51 Columns.AutoFit 绘制图形 ActiveSheet.Shapes.AddChart.Select Acti

6、veChart.ChartType = xlXYScatterSmoothNoMarkers ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(1).XValues = “=【正态分布】 4!$F$1:$F$100“ ActiveChart.SeriesCollection(1).Values = “=【正态分布】 4!$G$1:$G$100“ ActiveChart.SeriesCollection(1).Name = “=“分布曲线 “ ActiveChart.SeriesCollection(2).De

7、lete ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(2).XValues = “=【正态分布】 4!$D$6:$E$6“ ActiveChart.SeriesCollection(2).Values = “=【正态分布】 4!$D$7:$E$7“ ActiveChart.SeriesCollection(2).Name = “=“最大值 “ ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(3).XValues =

8、“=【正态分布】 4!$D$9:$E$9“ ActiveChart.SeriesCollection(3).Values = “=【正态分布】 4!$D$10:$E$10“ ActiveChart.SeriesCollection(3).Name = “=“最小值 “ ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(4).XValues = “=【正态分布】 4!$D$12:$E$12“ ActiveChart.SeriesCollection(4).Values = “=【正态分布】 4!$D$13:$E

9、$13“ ActiveChart.SeriesCollection(4).Name = “=“平均值 “ 调整图形的位置 ActiveSheet.Shapes(1).IncrementLeft 185 ActiveSheet.Shapes(1).IncrementTop -93.75 End Sub * 使用方法为:选择 Sheet1 上,第一列的原始数据;按 Alt+F8。运行“ myDistrib”即可。 这个程序,在现有的 Excel 表后面,插入一张新的数据表,名为“ 【正态分布】 4”。其上有绘制好的正态分布图,和绘图需要的中间数据。 程序思路 1. 首先计算绘制正态分布的两个重要参数:平均值和基本方差 2. 根据实测数据,取最大值的 2 倍作为正态曲线的上下限 3. 将上下限间的数据,分成 100 份,计算其正态分布值 4. 绘制 曲线 5. 绘制测量数据的上下限和平均值位置 总结 VBA 自动程序绘制正态分布曲线的效率可观 。本文 仅 给出一个思路,读者可根据需要,参照本文思路, 修改程序得到 更为详尽的分布曲线图。 文档历史 2012-5-7 创建文档并在百度文库上发布 联系方式 欢迎联系出书 欢迎文档勘误

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报