在前面的文章《Excel高阶图表之箭头批注n型》中我利用误差线和数据标签做出了n型箭头批注柱状图。直接指出了数据的同比情况。本篇我将做出带箭头的数据标签,并且将增长标记为红色,下降标记为绿色。利用颜色,更加直观的体现同比情况。效果如下图所示。
本图主要利用了组合图、数据自定义格式、VBA知识。
自定义格式为"↗+"0.0%;"↘-"0.0%;"="0.0%
首先我随机准备了一些数据。
第一步:选择数据,插入组合图。
第二步:点击图表,右键选择更改图表类型,修改成如下图所示结果。
第三步:点击散点,右键添加数据标签,点击数据标签右键设置数据标签格式。
第四步:点击任意柱状图,右键设置数据系列格式,调整系列层叠系数。
第五步:调整颜色,删除不需要的项。如果你做的图数据源是不会变动的,那么只需要逐个修改数据标签颜色即可。首先点击任意数据标签,然后点击你需要修改的数据标签即可。
如果你的数据源是变动的,比如我有一个下拉菜单控制着我的数据源,那么就需要下面一段代码。
代码放置位置如下图,其中图表名称,和散点数据第几个系列需要修改,别的不需要改动。然后点击组合框,右键指定宏,选择标签颜色,确定即可。
Sub 标签颜色()
Set M = ActiveSheet.ChartObjects("图表 1") '你的图表名称(需要修改)
M.Activate
Set N = ActiveChart.FullSeriesCollection(3) '散点数据第几个系列,此处3代表第个(需要修改)
'*****所有标签显示黑色*****
N.DataLabels.Select
Selection.Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(0, 0, 0)
'*****根据正负号修改标签颜色*****
For i = 1 To N.DataLabels.Count
N.DataLabels(i).Select
If Mid(N.DataLabels(i).Text, 2, 1) = "+" Then
Selection.Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(255, 0, 0)
Else
If Mid(N.DataLabels(i).Text, 2, 1) = "-" Then
Selection.Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(84, 130, 53)
End If
End If
Next
M.Activate
End Sub