前几日,有格友说客户要做仪表盘,其中有一个包含地域维度的图形不想用地图来展示,而想用下面的图, excel能否做出来呢?

经尝试,有三种方法可以实现,今天跟大家分享一下。
第一种是环形图叠加法,此法用于外围标签展示效果比较好。

第二种是环形+散点图法,第三种是环形+饼图+散点图法,两者方法相类似,只是一个用散点图加标签,一个用饼图加标签。个人感觉饼图标签效果相对好些,散点图这里不太好控制。
假设原始数据如下:

step1:先将区域数据汇总,用于做环形图。这里需要从区域数据中取不重复值。获取不重复值的方法有很多,例如高级筛选法、透视表法、删除重复项法、公式法,还有vba自定义函数法。本例使用了高级筛选法。
选择区域数据,然后找到数据>高级,设置高级筛选内容。


将筛选结果复制到新的单元格中,并选择不重复的记录,这样区域唯一值就被筛选出来了。再使用sumif函数进行求和,顺手把总和也求一下后续使用。

step2:构建散点图数据。

一共有7个区域,如果用不同颜色标识,也就意味着要有7组x、y值。区域个数可由公式计算获得(=COUNTA(F3:F9)),半径指定为5。
角度公式=K5*360/G$10+IF(ISNUMBER(L4),L4,0),有一个累加的效果。
x、y分别由sin和cos函数求得。(提问:以前很多散点图例子中是用cos求x值,这里为什么颠倒过来了?可以留言给小编哦〜)
因为要根据区域拆分x、y值,所以在公式中做些处理,以x1、y1为例,其它拖动填充即可。
X1:=IF($I5=INDEX($F$3:$F$9,COLUMNS($A:A)),$M$2*SIN(RADIANS($L5)),NA())
Y1:=IF($I5=INDEX($F$3:$F$9,COLUMNS($A:A)),$M$2*COS(RADIANS($L5)),NA())
逻辑就是如果原始数据与唯一区域汇总数据中的区域相同,就进行计算,否则为#n/a。
step3:插入散点图,依次添加7组x、y值,并将横、纵坐标轴的最大、小值设为10,-10。

step4:删除网格线和坐标轴。

step5:添加唯一区域汇总数据,更改图表类型为环形图,并设置圆环内径大小为85%,无线条。

如果用第二种方法,做到这一步后,添加区域和散点标签就可以了。如果用第三种方法,还需要再做两步。
Step6:添加销量数据,更改图表类型为饼图。

Step7:设置饼图无填充,无线条,并添加标签,位置为居中。

这时会发现标签和点挤在一起了,调整一下扇形图百分比。

最后手动添加区域标签。
如果用此方法让点和标签在外围显示,该如何做呢?
用图形叠加法的时候,标签可以由公式构建=IF(SUM(K$24:K24)/G$10<=0.55,"•"&J24,J24&"•"),然后用拆分x、y的方法拆分出7组标签,7个相同的饼图分别选择不同标签即可。
欢迎加入qq交流群(204563251),一起讨论学习
关注微信公众号(spreadsheetchina),查看更多精彩文章