在前面的文章《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