Day35 - 数据分析工具(2)
今日学习目标
- 掌握多类型图表创建
- 实现数据对比分析
- 完成趋势预测和可视化
知识点
### 1. 图表类型选择
- 柱状图:类别比较
- 折线图:趋势变化
- 饼图:占比分析
- 散点图:相关性分析
### 2. 数据对比技术
- 差异对比:Actual vs Budget
- 时间对比:YoY、MoM
- 多维度对比:分组柱状图
### 3. 趋势分析
- 移动平均计算
- 线性趋势线
- 预测函数Forecast
今日代码
' 创建组合图表
Sub CreateComboChart()
Dim chartObj As ChartObject
Dim ws As Worksheet
Set ws = Worksheets("分析数据")
' 创建图表
Set chartObj = ws.ChartObjects.Add( _
Left:=100, Width:=500, Top:=50, Height:=350)
With chartObj.Chart
.SetSourceData Source:=ws.Range("A1:C10")
.ChartType = xlColumnClustered
.HasTitle = True
.ChartTitle.Text = "销售趋势分析"
' 添加趋势线
.SeriesCollection(1).Trendlines.Add(Type:=xlLinear)
End With
' 创建第二个图表 - 折线图
Set chartObj = ws.ChartObjects.Add( _
Left:=100, Width:=500, Top:=420, Height:=300)
With chartObj.Chart
.SetSourceData Source:=ws.Range("A1:A10,B1:B10")
.ChartType = xlLineMarkers
.HasTitle = True
.ChartTitle.Text = "增长率趋势"
End With
End Sub
' 移动平均计算
Sub CalculateMovingAverage()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim ma As Double
Set ws = Worksheets("销售数据")
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
' 计算3个月移动平均
For i = 4 To lastRow
ma = Application.WorksheetFunction.Average( _
ws.Cells(i - 1, 2), ws.Cells(i - 2, 2), ws.Cells(i - 3, 2))
ws.Cells(i, 3).Value = ma
Next i
ws.Range("C1").Value = "移动平均"
End Sub练习题
- 创建双轴图表显示销售额和利润率
- 实现同比环比自动计算
- 添加数据标签和注释