Excel做甘特圖,如何讓甘特圖的條形顏色隨著項目進度的變化而變化?
比如說完成100%是藍色,50%-100%是黃色,其他是紅色。當我改變進度欄的數字時條形圖顏色會變,最好不是手工調色。(或者可編程實現嗎)如圖:
開始以為你使用單元格填充做的條形圖,後來發現是 Chart。。。囧
因為平常做計劃都是 Project,所以對於 Excel 做甘特圖還是不熟悉,剛照虎畫貓做了一個:
其實接下來怎麼做我也不知道,但有神器: 錄製宏
開啟錄製器:
選中一個條條,改變它的顏色,結束錄製,Alt+F11 進入 VBE 看看代碼:
大概讀一下:
- 選區圖表,選區圖標的數據系列,選區圖表上的點也就是一個 Task 對應的甘特條
- 設置填充,也就是 ForeColor.RGB這一個賦值
剩下的工作就是刪除不需要的信息,比如 Visible,Transparency 啊這些:
另外要考慮的就是當你輸入的時候要自動更改,因此需要將代碼添加到 WorkSheet_Change 事件中,另外考慮到代碼復用性,可以寫一個模塊 SetColor,然後將 SetColor 插到 SheetChange 事件中:
試驗一下,是可以的,不過最後圖會被選擇,這樣:
解決辦法是在設置完顏色後加一個 Range("A1").Select,這樣執行完 Selection 就會被釋放,然後定位到 A1,當然你也可以設置其他的
剩下的工作就是針對其他點添加代碼,並測試完善
可以寫個 For 循環來實現。因為要調用單元格參考,這個時候 For Each 就不適用了,還是用循環變數來 For 吧
另外,你要將對應的點和單元格的關係對應起來:
If 那一塊的條件自己添加吧,我這個只是個簡單的示例,顏色自己更改
另外,弱弱的問一句為什麼不用 Project 呢……半小時基本就入門了,還能設置前置任務,關鍵路徑……
Code:Private Sub Worksheet_Change(ByVal Target As Range)
" Action After User Changed This Sheet
SetColor
End Sub
Sub SetColor()
" Set Color of Bar
ActiveSheet.ChartObjects("圖表 2").Activate
ActiveChart.SeriesCollection(2).Select
ActiveChart.SeriesCollection(2).Points(4).Select
With Selection.Format.Fill
If ActiveSheet.Cells(4, 8) &> 50 Then
.ForeColor.RGB = RGB(0, 176, 80)
Else
.ForeColor.RGB = RGB(255, 0, 0)
End If
End With
Range("A1").Select
End Sub
注意,放在你數據所在的那個 Sheet 之後可以去掉 ActiveSheet
可以用EXCEL實現,不需要VBA。先來拆解需求,完成100%是藍色,50%-100%是黃色,其他是紅色,這個可以理解為把數據分為3個系列,在圖表中不同系列不同顏色。
第一步,添加輔助列-系列,函數-LOOKUP
0到50%為1類,50%到100%為2類,100%為3類,利用公式=LOOKUP(D2,$J$1:$K$3)獲取分類列。如圖:
第二步,添加輔助列-系列123,函數VLOOKUP
將表格做成如下形式:
F2單元格中的公式為=IFERROR(VLOOKUP($A2F$1,IF({1,0},$A$2:$A$7$E$2:$E$7,$C$2:$C$7),2,FALSE),0)
填好之後使用Ctrl+Shift+Enter,因為公式中涉及數組,這樣才能得出結果。成功後公式外會自動顯示花括弧。然後拖動單元格填充即可。第三步,插入堆積條形圖
選擇ABFGH列插入後格式很亂,需要自己調整。
1、選擇數據-添加系列-選擇B列數據-移到首位
2、編輯分類標籤-選擇A列數據
圖表變成這個樣子:
3、選擇開始系列-修改為無填充
4、選擇水平坐標軸-邊界最小值填入7/26
5、選擇垂直坐標軸-勾選逆序類別
6、將系列填充為想要的顏色
結果如下:
這樣在修改進度時,系列會聯動變化,後面所屬系列值也會聯動改變。
完成。
用Excel畫甘特圖這麼複雜,畫出來的也不好看和專業。不如使用專業的甘特圖繪製軟體,比如Edraw億圖圖示。
打開億圖圖示,選擇開打-新建-甘特圖。
雙擊左側甘特圖,或者把甘特圖拖到中間。
在甘特圖選項窗口設置,日期單位,工作日,格式,開始結束時間和貨幣單位。
設置完畢後點擊ok按鈕,此時在繪圖面板內生成一個甘特圖樣板.
點擊左上的甘特圖按鈕可以添加刪除子任務。
可以在甘特圖中移動任務進度條,調整位置。
完成後可以導出為思維導圖和時間線
後期要跟蹤進度就要用專業的project編製進度表。還能表達各工序之間的搭接關係。
推薦閱讀:
TAG:MicrosoftExcel | 甘特圖GanttChart | 辦公軟體 | VBA | Excel公式 |