专栏名称: Excel图表之道
畅销书《Excel图表之道》同名公众号。作者@刘万祥ExcelPro,专注于专业有效、简单实用的商务图表沟通之道,帮助您用Excel制作出具有杂志级品质的商业图表。
目录
相关文章推荐
Excel之家ExcelHome  ·  WPS表格中的几个实用功能 ·  2 天前  
Excel之家ExcelHome  ·  TEXT函数用处多,多干工作多背锅 ·  2 天前  
Excel之家ExcelHome  ·  还在手动筛选数据?FILTER函数这几种典型 ... ·  昨天  
完美Excel  ·  使用deepseek自动合并“复杂的”Exc ... ·  6 天前  
完美Excel  ·  可以在微信上使用deepseek了 ·  3 天前  
51好读  ›  专栏  ›  Excel图表之道

这个图表竟然是用Excel做的?!--续:刘老师,我做的比你更好!

Excel图表之道  · 公众号  · Excel  · 2017-06-16 07:04

正文

按:咱们的读者和粉丝都是完美控、强迫症。上次《 这个动态图表竟然是用Excel做的?! 》帖子发出后,读者杨小府发来了自己的做法,把柱形图做成了堆积的小方块,更接近原例。我请他写了个教程,供大家参考。谢谢小府童鞋分享!欢迎大家打赏,给小府发红包:)




上次在Excel图表之道公众号看过刘万祥老师题目为《这个动态图表居然是用 Excel 做的?!》之后,再一次被刘老师的技艺折服,翘课的同学可以再学习下,原文链接是: http://mp.weixin.qq.com/s/FtRS1bwg2yRSKHFFxqRm3Q


下面的两张图就分别是原《财新》杂志的范例和刘老师做的模仿图。

1.《财新》杂志范例


2.Excel图表之道模仿图


是不是吊吊哒?这张图的特点我就不讲了,上次刘老师讲的已经很详尽了。但是呢,对比下来,感觉刘老师的模仿图做到了神似,形上还有些地方可以改进,这么说希望老师别介意:-)。


为什么这么说呢,细心的同学应该可以发现,《财新》原图是用不同的圆点元素代表特定单元值,所以大多数数据表的顶端是不平齐的,而刘老师的模仿图采用的是针对堆积柱形图进行图案填充,也就没有了这种特点,在精细、美观两点尚有待提高。


作为一个不逼死自己不罢休的强迫症患者,我就会想,用Excel是不是可以做到更逼真的模仿呢?经过一些尝试,确实是可以的。接下来我就跟大家分享下我的小方法——用条件格式模仿中国对外房地产投资动态图。


分享形式呢,就模仿老师的方式吧,分为作图思路、制作步骤、知识回顾三部分,一方面更容易比较两种方法的异同,一方面也是致敬刘老师。


作图思路


  1. 选择器。图表之道用的是单选按钮控件来做的,这种方法更接近原图,起初我也尝试着用这种方法,但是按钮控件位置的锁定上总是有些小问题,所以就改用了比较简单的组合框控件。

  2. 条件格式“柱形图”。要实现单元点的方式绘制柱形图表暂时没想到什么可行的方法,之前尝试过一种通过多组柱形图并列组合,针对每组柱形图采用色块图片层叠填充的方式做过类似的图,但是效果一般,有兴趣的可以自己尝试下。这里我采用的是缩小excel界面显示比例,并通过条件格式控制单元格填充的方式,做出类“柱形图”的效果。

  3. 柱形图切换。通过更改组合控件,改变作图区的值,通过条件格式控制对应单元格填充色,即可针对三种不同分类进行区别呈现。

  4. 3个柱形图的类别标签,这里采用的比较笨拙的方式,插入文本框,并对文本框进行单元格引用,这样就可以实现切换分类时显示对应标签的效果,当然也可以按照刘老师的方法使用散点图,我这里只是提供一种思路。


    以上就是我们的作图思路,下面就是具体的实现方法了。


制作步骤


1. 首先,制作选择器。

我们的选择器比较简单,插入组合框控件即可,在calc!$AL$7:$AL$9分别输入按整体年份、按国家及地区、按房产类型,并将其作为控件的数据源区域,控件的单元格链接我们选择calc!$H$1。calc!$H$1这个单元格很重要,后面的数据设置基本跟它相关。


2. 第二大步骤是组织作图数据。


数据源我们采用刘老师图表中的数据,处理方法有一部分基本类似,类似的部分我偷个懒直接复制下来,版权为刘老师所有。


先把这个原数据,通过选择性粘贴、粘贴链接的方式引用到新的工作表。这样做是为了方便我们后期好更新源数据。

按国家和按房产类型的堆积柱形图,它是需要悬空以后水平对齐的,所以说我们就要在每行数据下面插入一个空行,组织占位数据。



图中,D16的公式:=$E$2+MAX($D15:$N15)-D15

公式的意思是说我们取上1行的最大值减去上一格的值,然后再加上一个留空值。这个留空的间隔$E$2,我们把它做成一个参数方便调整,暂时取值为整个分类数据里的最大值除以6。

这个公式注意写法,锁定列号,行号不锁定。向右复制到整行,然后能把这一行复制粘贴到余下的所有占位行。检查公式和结果正确。

然后,我们要根据用户的选择,分别引用这3块里面的1块,到作图数据区域。


由于作图方式不同,所以我们的作图数据区域会有所调整,见上图红框部分,这里有2个注意点:

①   合计部分为0是因为设置条件格式的作图区域使用了vlookup的模糊引用,在这里vlookup相当于“>=”的作用,具体的用法后面介绍。

②   受vlookup的影响,季度前一列的数字与左边的相比统一向上平移一个单元格,左边序列下空出的单元格采用较大的数字进行填充,这里采用的是100-。

3个区域的公式相应进行调整:

第一块区域:S9:=IF($H$1=1,SUM(D$9:D9),NA()),复制到满区域;

第二块区域:S15:=IF($H$1=2,D15,NA()),

S16:=IF($H$1=2,INT((D16+S15)/($E$1*10))*$E$1*10,NA()),

S17:=IF($H$1=2,D17+S16,NA()),

将S16、S17对应的复制到满区域;

第三块区域:S40:=IF($H$1=3,D40,NA()),

S41:=IF($H$1=3,INT((D41+S40)/($E$1*10))*$E$1*10,NA())

S42:=IF($H$1=3,D42+S41,NA()),

将S41、S42对应的复制到满区域;


3.第三步骤,填充作图区域辅助表数据及填写作图区域数据,并设置条件格式

①   填充作图区域辅助表数据

新建一个sup插页,作为作图区域的辅助内容。

其中D120=0,E120=D120+calc!$E$1,D119 =M120+calc!$E$1,calc!$E$1代表一个单元值,按照这种方式将D1:M120填满,这样就构成了10*120个单元数据,每个单元数据比相邻左方单元格大一个单元值。

这就构成了2007年图的辅助区域,将D1:M120依次向右复制10次,作图区域的辅助表数据我们就完成了。

②   填写作图区域数据

新建一个sub2插页,图片将在这个插页生成!

在sub2插页中中我们选用和上述等宽等高的区域N12:EC131(最开始其实选用的是D1:M120,只不过后期作图存放标签需要空间,进行了相应的调整),将该区域等分成10份10*120的间隔小区域。

第一块区域,N131:=IFERROR(VLOOKUP(sup!D120,IF(calc!$H$1=1,IF({1,0}, calc!$S$8:$S$12 ,calc!$Q$8:$Q$12),IF(calc!$H$1=2,IF({1,0}, calc!$S$14:$S$37 , calc!$Q$14:$Q$37),IF({1,0}, calc!$S$39:$S$50 ,calc!$Q$39:$Q$50))),2,1),0),复制到满区域;

第二块区域,Y131:=IFERROR(VLOOKUP(sup!O120,IF(calc!$H$1=1,IF({1,0}, calc!$T$8:$T$12 ,calc!$Q$8:$Q$12),IF(calc!$H$1=2,IF({1,0}, calc!$T$14:$T$37 ,calc!$Q$14:$Q$37),IF({1,0}, calc!$T$39:$T$50 ,calc!$Q$39:$Q$50))),2,1),0),复制到满区域;

第三块区域,AJ131:=IFERROR(VLOOKUP(sup!Z120,IF(calc!$H$1=1,IF({1,0}, calc!$U$8:$U$12 ,calc!$Q$8:$Q$12),IF(calc!$H$1=2,IF({1,0}, calc!$U$14:$U$37 ,calc!$Q$14:$Q$37),IF({1,0}, calc!$U$39:$U$50 ,calc!$Q$39:$Q$50))),2,1),0) ,复制到满区域;

依次对后续区域进行填充即可,最后使用自定义数字格式“;;;”将数字隐藏。

注:加粗部分代表的是之前calc插页中框住的三个区域不同日期对应的数据。

③设置条件格式

选中N131单元格,通过条件格式>>新建规则>>使用公式确定要设置格式的单元格的方法设置填充色。这里共设置了22次条件格式,举例如下:

.

.

.

具体格式见范例文件。







请到「今天看啥」查看全文