乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > excel数据分析-EXCEL数据分析与可视化教程

excel数据分析-EXCEL数据分析与可视化教程

作者:乔山办公网日期:

返回目录:excel表格制作

网上有很多关于中国GDP在世界各国中排名变化的视频,相信大家都有看到过,数据变动的过程看起来非常震撼,让人热血沸腾。


厉害了我的国#1969-2018世界GDP排名


感兴趣的小伙伴们请摆好姿势继续往下看,动态柱形图制作教程。







一、世界各国的GDP数据从哪儿来?


1. 浏览器搜索:世界银行数据库中文版。






2. 搜索GDP,选择第一个GDP(现价美元)。






3.右边有个下载数据,可以根据需要下载对应的数据类型,本次咱们下载Excel数据。






4.如果下载不了,可以点击查看详细信息。






5.点击所有元数据。








6.跳转到世行中文数据库网站。








6.设置数据的查询条件,设置Time为50年。








7.条件设置完毕右边的下载选项中选择Excel即可下载。






8.下载下来的数据因为金额太大显示成科学计数方式了,在制作图表前还需要对数据进行降位处理。








二、图表中还用到另一份数据,我国年度大事记


这份数据小伙伴们可以直接用搜索引擎去查找,文末也会提供下载方式。








三、数据准备完毕即可开始图表制作


第一步:对GDP数据进行降位处理。


技巧:选择性粘贴--运算--除 1000000000,这么多个零数数清楚了吗?


答案:十亿。














第二步:以2018年的数据为基准做一次降序排列。


目的是让数据按GDP按从大到小进行排列,但是这只是一个年度的,其他年代的GDP数据也需要排序怎么办?请继续往下看,答案即将揭晓。








第三步:新建一个辅助表,复制数据源中第一个年度前50个国家的数据。


为啥是50,而不是100?因为我们的图表最终只取排名前10的国家,前面我们对原数据以2018年度做了一次降序排列,所以取前50个足够,排名太后的已经没有分析意义了。








第四步:对辅助表中的数据进行动态排名


用到排名函数=Rank(当前数字,需排名的数据区域,1升序或0降序排列)


A列的国家固定不变,B列需要动态的换成1969至2018年的数据,C列的排名函数会自动计算出当前最新的排名。








第五步:从动态排名的数据中取出排名前十的国家和金额


这时候需要用到一个万金油组合公式MATCH和INDEX


MATCH函数负责根据排名数字查找它在动态排名中的位置(行位置)


INDEX函数负责根据行位置取在同一行中的国家和GDP数据


排名1-10是固定不变的,需要根据这个不变的数字去左边动态的取出这个数字对应的国家和DGP数据。


例如:


固定排名2--Match对应动态排名中转2所在的行为第4行--index从A列中取出第四行的数据=日本,同理可取出对应的GDP数据。








第六步:对中国的GDP数据单独显示


因为数据会动态变化, 为了保证中国永远显示成红色柱子,所以再加一列用来只显示我们中国的GDP数据,这个用IF函数很容易处理。


=IF(F2="中国",G2,0)








第七步:对数据生成柱形图并设置样式。


7.1 选中数据区域,插入一个簇状柱形图










7.2 设置系列格式,系列重叠为100%,这样中国有两跟柱子会重叠成一个红色的柱子。






7.3设置坐标轴格式为逆序类别,让金额大的线上最前面。








7.4 修改图表标题、删除横向坐标、删除表格网线














7.5 调整分类间距到50%,让柱子变大些、设置图表区域为浅灰色。








7.6 给每个柱子填充你喜欢的颜色并添加数据标签。








7.7 插入一个矩形链接到单元格=$F$1,用来显示当前数据的年份。








7.8 再插入一个矩形框链接到单元格=$I$1,I1单元格通过VLOOKUP公式去我们提前准备的[大事记]里面查找对应的事项。








至此我们的动态图表终于完成了50%






四、让柱形图动起来


如何才能动起来?


只要能让1969~2018的数据一年一年的按顺序更新到这里即可。














手动搬动这些数据是不可能的,接下来祭出咱们的王炸VBA代码,让它来帮我们完成这些数据更新。


'这个是用来延时的,防止图表刷新过快Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)Sub DynamicChart() '总共是50年的数据,存放在第2列至第51列 For col = 2 To 51 '取出前四位组合成年份 ThisWorkbook.Sheets("demo").Range("B1") = Left(ThisWorkbook.Sheets("Data").Cells(1, col).Value, 4) & "年" '将数据分割成5份,目的是让数据变动的更欢快些、看起来效果更明显 For i = 1 To 5 '禁止刷新公式,自动计算 Application.Calculation = xlCalculationManual '将数据填充到辅助表中 For rw = 2 To ThisWorkbook.Sheets("demo").Range("A65536").End(xlUp).Row '因为辅助表中的国家位置是和数据源的位置保持一致的,所以只需要将GDP数据更新过去,分5次更新过去 ThisWorkbook.Sheets("demo").Range("B" & rw) = (ThisWorkbook.Sheets("Data").Cells(rw, col).Value / 5) * i Next '数据填充完成,刷新公式,自动计算 Application.Calculation = xlCalculationAutomatic '延时100毫秒 Sleep 100 Next NextEnd Sub



五、VBA代码如何使用?


  1. 在Excel界面,按快捷键ALT+F11进入VBE界面。
  2. 点击左边的工程窗口,点击鼠标右键,新建一个模块。
  3. 把代码贴入到模块中。
  4. 按Crtl+S保存,关掉当前界面即可回到原来的Excel界面。











六、代码保存进去了如何使用(触发)它?


在开发工具选项卡中插入一个按钮到Excel表中,会弹出一个关联代码函数的弹窗,选中函数名关联即可。














最终实现效果,点击按钮图表就可以动起来了。








还没关注的老铁,赶紧点击关注吧!


回复"GDP"获取本次案例文件


相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网