作者:绿色风
分类:
时间:2022-08-17
浏览:195
楼主 嘉昆2011 |
声明 素材来源及网页展示:- http://visualization.geblogs.com/visualization/aging/
ExcelHero—— Daniel Ferry大师作品:- http://www.excelhero.com/blog/2010/09/animated-business-chart-3.html
仿制效果:
发帖初衷: 主要梳理回顾制作动态图表的一些常用知识,对其作出归纳,分类,给出链接。
知识点回顾: 数据透视表及切片器 函数:VLookup,Match,Offset,Cell 基础应用:条件格式,名称框使用,保护工作表,添加超链接 图表:柱型图 简单VBA:宏录制,Intersect,调用模块(过程),图片调用显示
制作要点 1,通过数据透视表及切片器的配合使用,不失为对大数据展示动态图的一种取巧方法。
相关案例可以参考下列链接: a,税负经年变化面板图仿制
b,百年奥运百米短跑展示图
c,交互式日历图表
2,通过函数建立链接,读取读取数据,方便后期使用。
图中左起,函数从数据透视表中读取相应数据,制作标签- =IF(SelYear="","",SelYear & " Population: " & ROUND(SUM(D4:E24)/1000,0) & " million")
中间为各国家国旗,用函数读取各国国旗的秩序号- =MATCH(B1,CountryA,0)
右边为各国对应颜色的查询表,方便在VBA调用*(参考第五点代码部分) 对各数据序列使用VBA上色可以参考下列链接: 散点图:体质指数
3,插入柱型图,注意设置主次坐标轴的极值对称,美化图表。
4,(1)简易VBA,通过单击单元格建立交互查询- Private Sub Worksheet_SelectionChange(ByVal Target As Range)
- If Not Application.Intersect(Target, [CountryA]) Is Nothing Then
- If Target <> Sheet2.PivotTables("PT_B").PivotFields("Country").CurrentPage Then
- Sheet2.PivotTables("PT_A").PivotFields("Country").CurrentPage = Target.Value
- ShowFlag "A"
- Color Target, "A"
- End If
- ElseIf Not Application.Intersect(Target, [CountryB]) Is Nothing Then
- If Target <> Sheet2.PivotTables("PT_A").PivotFields("Country").CurrentPage Then
- Sheet2.PivotTables("PT_B").PivotFields("Country").CurrentPage = Target.Value
- ShowFlag "B"
- Color Target, "B"
- End If
- End If
- 'Target.Parent.Calculate
- End Sub
注:数据透视表部分由录制宏改写。 其他Intersect在简易VBA及单击单元格切换选项查询,可以参考: a,如何制作交互式产品销售图表
b,同场加映:百年奥运百米短跑展示图(续)
c,单元格调用文本框
4,(2)调用图片,过程- Sub ShowFlag(s As String)
- With ActiveSheet.Shapes("Flag_" & s)
- .Left = ActiveCell.Left - 50
- .Top = ActiveCell.Top
- '.Visible = True
- End With
- End Sub
相关实例: 单元格调用文本框
5,对相应国家序列选择性着色- Private Function GetVLookup(rValue As Range, sList As String, lngColumn As Long) As Variant
- GetVLookup = Application.Evaluate("Vlookup(""" & rValue & """," & sList & "," & lngColumn & ",0)")
- End Function
- Sub Color(Rng As Range, s As String)
- Select Case s
- Case "A"
- With ActiveSheet.ChartObjects(1).Chart
- .SeriesCollection(1).Format.Fill.ForeColor.RGB = GetVLookup(Rng, "ColorList", 2)
- .SeriesCollection(2).Format.Fill.ForeColor.RGB = GetVLookup(Rng, "ColorList", 3)
- End With
- Case "B"
- With ActiveSheet.ChartObjects(1).Chart
- .SeriesCollection(3).Format.Fill.ForeColor.RGB = GetVLookup(Rng, "ColorList", 2)
- .SeriesCollection(4).Format.Fill.ForeColor.RGB = GetVLookup(Rng, "ColorList", 3)
- End With
- End Select
- End Sub
6,美化图表,条件格式,保护工作表,添加超链接 条件格式用于区别当前所选项目,非激活态项目,所禁选项目。 保护工作表用于只对有效区域进行单击选择。 超链接图标给出原作出处。
条件格式相关实例: a,如何制作交互式产品销售图表
b,如何制作客服仪表盘
c,同场加映:百年奥运百米短跑展示图(续)
相比Daniel Ferry大师作品,在不加入动画的情况下,VBA代码有一定程度缩减,可读性和学习性增强。
人口变化图其他相关实例: 1,如何制作动态人口风暴图?
2,Population pyramid(人口金字塔图)
附件:
GE2.rar
|
2楼 Eric__宇 |
原来有些10的文件是用07打不开的,今天终于知道了,昆哥好样的。 |
3楼 嘉昆2011 |
谢谢E哥哥支持。 切片器是Excel 2010才有的,所以Excel 2007是不能用的。所以适用版本写了Excel 2010以上。 |
4楼 dgxsdr |
下载学习了! |
5楼 海洋之星 |
不错,值得学习,谢谢分享 |
6楼 wise |
学习了 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一