如何用Excel畫出這樣的圖?

如圖,這個是自己手畫的,我不知道這叫什麼圖:

源數據格式是這個樣子:

這個表記錄了某個IP上線/下線事件的開始時間、結束時間以及這個事件的持續時間。以一天的數據為例,如果使用excel畫出上圖?或者有什麼更好的表現形式?


首先回答第一個問題:如果使用excel畫出上圖?

你給出的這個圖在Excel里叫做堆積條形圖,如果數據量小的話,可是使用這樣的堆積條形圖生產如你所示的圖形。

做法:

1、兩列數據分別為IP1、IP2的online和offline的持續時長;

2、選中兩列數據,插入圖標—條形圖——堆積條形圖

然後,出現了這樣的狀況:

這是什麼鬼東西?

這是因為Excel把橫坐標和列坐標搞混了,需要把行和列轉換一下。點擊下面的切換行和列。

然後見證奇蹟的時刻到了,確定之後會生成一個五彩斑斕的堆積條形圖,顯然並不是我們想要的。

再然後根據你的需要,修改圖表的顏色、修改橫坐標的數值。最終處理效果就是第一張圖那樣子的。

當然這樣的做法並不是很好,總結一下:

1、無法完全做到和你一樣的效果:橫坐標的數值無法用時間表示,如果費用要時間的表示方法,只能自己貼文本框;

2、只能處理少量數據,如果你導出的excel表中,online和offline的間隔頻率很高,那麼用這樣的方法,你懂的,雖然能做出來,但是效率極低;

3、無法自動化生產,你今天做了個表,到二天導出來數據後還要重新做;

最好的方式就是使用VBA,以逸待勞,每天只需要導出來數據就可自動生成你想要的圖表。

當然,前提是首先你得會VBA。

第二個問題:或者有什麼更好的表現形式?

個人理解,有。

分析你的事件,只有兩個維度:online和offline。可以聯想到很多:二進位、高低電平、是與否……所以,看下圖:

高電平表示online,低電平表示offline,橫軸表示持續的時長。這樣也是能夠非常清晰的表達出你想要的結果的。

要問這樣的圖怎麼做出來?

答案是:我這圖就是在excel里利用表格的邊框一段一段畫出來的。

這樣的圖也可以使用階梯圖的畫法製作,具體看下面的教程:

Excel2010使用X、Y誤差線畫步進圖(階梯圖,直角折線圖)

效率更高的、更自動化的方式,同樣是使用VBA。

當然,前提是首先你得會VBA。

關於VBA,這個論壇里有很多高手,你可以求助一下。

http://club.excelhome.net/forum.php

希望對你有幫助。


覺得好麻煩啊。

先處理數據,然後excel做柱狀堆積圖。

然後用VBA根據數據是上線還是下線,批量調節圖表格式和數據系列顏色。

思路大概是合併 甘特圖,我沒用VBA做過圖表,但是感覺還是可以的。

參考http://club.excelhome.net/thread-1073616-1-1.html


我個人覺得你可以借鑒一下 甘特圖的做法



沒人會嗎……好桑心,給點思路也好啊


堆積條形圖可以用,手動修改配色方案 即可。excel 2013


推薦閱讀:

Excel 2007 插入折線圖時,由於數據太多,導致線堆疊過於緊密。請問是否有辦法讓每條線錯開,並展示在一個圖表裡?
請問這樣的圖用excel可以做么?
如何變成excel高手?
如何快速的合併多個 Excel 工作簿成為一個工作簿?
如何快速有效地提高 Excel 技能水平?

TAG:MicrosoftExcel | Excel圖表繪製 |