图中,D16的公式:=MAX($D15:$N15)-D15+vgap_2
公式的意思是说我们取上1行的最大值减去上一格的值,然后再加上一个留空值。这个留空的间隔vgap_2,我们把它做成一个参数方便调整,暂时取值为整个分类数据里的最大值除以5。
这个公式注意写法,锁定列号,行号不锁定。向右复制到整行,然后能把这一行复制粘贴到余下的所有占位行。检查公式和结果正确。
然后,我们要根据用户的选择,分别引用这3块里面的1块,到作图数据区域,
第1块区域,Q9:=IF(control!$C$3=3,calc!D9,NA()),复制到满区域;
第2块区域,Q15:=IF(control!$C$3=1,calc!D15,NA()),复制到满区域;
第3块区域,Q40:=IF(control!$C$3=2,calc!D40,NA()),复制到满区域;
3、第三步骤,做图表。
现在我们以P8:AA50 数据区域插入堆积柱形图,并对所有的占位行数据序列的柱形图设置为无填充色。这一步你要分别通过选择器选择 按国家和地区、按房产类型,和刷新复原情况下的图表,把所有占位数据的柱形图都设置为无填充色。
现在你测试选择,应该可以看到动态图表的变化,检查确认正确。下面我们来给它加上那个类别标签。
我们需要准备一列辅助数据,是一个散点图的序列xy,也是分3块分别取值:
第1块区域,显示季度数据时,标签放右侧,x,AC9:=IF(control!$C$3=3,11,NA()),y,AD10:=SUM($Z$9:Z10)-Z10/2。这里第1行有一点特别处理,需要看看。
第2块区域,显示国家数据时,标签放左侧,x,AC15:=IF(control!$C$3=1,0.5,NA()),y,AD15:=SUM($Q$15:Q15)-Q15。往下复制到满区域。
第3块区域,显示类型数据时,标签放左侧,x,AC40:=IF(control!$C$3=2,0.5,NA()),y,AD40:=SUM($Q$40:Q40)-Q40。往下复制到满区域。
数据准备好之后,我们往图表里面添加一个新的序列,数据源暂时不管,确定,然后把这个序列更改图表类型为散点图,确认,再选择数据,给他的数据源指定xy序列,分别是AC、AD列,确定之后,图表里应该出现一组散点图,给它添加数据标签,指定为P列的的类别名称,位置靠左。
现在我们通过选择按钮来切换图表,检查标签的位置,发现当用户选择刷新复原后,那个1234季度的标签位置靠左是不合适的,单独把这四个标签的位置分别调整为居中,以及第1季度的标签靠右。
4、第四步,美化与收尾。
现在动态图表模型已经完成,切换图表确认是正确的,然后让我们来做一些格式美化。为了实现类似财新杂志的风格,我们可以把这个图表拷到ppt里面去,利用ppt里面的取色器,从财新例图取色,来对柱形图快速进行逐一的填色。
我们还可以通过柱形图的图案填充,选择一种方块格的图案,比较接近于财新的这个圆点风格。这两步都是重复操作,略微有些繁琐。
在点刷新复原按钮选的时候,封面图里面有一些文字说明,我们也可以利用一个文本框来动态引用。先在 control表的B12 写好说明文字,然后在B15:=IF(cur_sel=3,B12,""),根据用户的选择,如果等于3,就引用这个说明文字,否则为空。然后在图表区域里面插入一个文本框,在公式栏里链接等于这个B15,就可以动态链接的文字出现与否。
现在图表的基本完成,我们可以进行收尾了。我们还可以做个事情,把单选按钮的那个圆点点,用一个形状把它遮住,让用户看不出来这是个单选按钮。因为这两个单元格底色可能会发生变化,所以我们用来遮挡的形状来要利用一个条件格式单元格的链接图片,这个单元格设置条件格式,和前面选择器单元格类似。那么这个遮挡的图片就会根据用户的选择是显示为白色还是黑色,来智能化地遮住那个圆形按钮。
最后的动态图表效果如下图: