讓你的Excel圖表動起來!

有讀者提了這樣一個問題,想要製作如下的動態圖表,要怎麼實現?

動態圖表展示.gif

動態圖表展示.gif

可以看到,這個動態效果裏有4種選擇器,左上方的組合框呈現出選擇不同的方案展示相應柱形圖的效果;

 


 


 

中間的複選框勾上顯示差額的圖表,不勾就不顯示;

 


 

右上角的滾動條則實現每頁顯示多少人,就有多少個柱子的功能;

 


 

下方的滾動條實現數據的滾動,因爲這個數據是有100多條,一個柱形圖顯然無法全部展示,所以要用滾動條去認爲地滾動展示。

 


 


下面我們就來實戰一下要怎麼實現。上面演示的是從網上找的模板,我們要做的真實數據是這樣的:

 

選擇器的製作

記得動態圖表是怎麼做的嗎?首先要有數據源,然後製作選擇器,接着取數,最後畫圖。如果你沒有動態圖表基礎,可以參考以下文章:
這樣用Excel動態交互圖表,還要什麼前端?

動態圖表交互揭祕:製作選擇器的奧祕

動態圖表揭祕:“動”的關鍵——取數

下面我們就來製作選擇器。

滾動條

總共122條數據,每個人們對應方案1和方案2的值,差異是方案1減去方案2,如果想要把122條數據放在一張圖裏,就需要用到滾動條了,所以我們先來做滾動條。

點擊【開發工具】-【插入】,找到【滾動條】的選項,在表格空白處畫一個滾動條。

 


畫好滾動條以後,右鍵點擊【設置控件格式】,在彈出的對話框中,修改以下選項,最小值爲1,最大值爲122,步長爲1,單元格鏈接是圖中標黃的G2單元格。

 


這樣,當我們移動滾動條時,G2單元格中的數值就會跟着變化。

 

數值調節鈕

原模板右上角的滾動條我們用數值調劑鈕來代替,同樣點擊【開發工具】中的【插入】,選擇【數值調節鈕】,在空白處畫一個調節鈕。

 


右鍵【設置控件格式】,在彈出的對話框中,修改最小值爲5,最大值爲15,意思是我們的一個圖表中最少有5個柱子, 最多有15個柱子,也可以根據自己的情況自由設置,鏈接到G3單元格中。

 


這樣,我們點一下數值調節鈕,G3單元格中的數字也會跟着變。

 

組合框

同樣在【開發工具】中插入【組合框】。

 


右鍵【設置控件格式】,數據源區域選擇提前寫好的I2:I4區域,也就是方案一、方案二和方案對比,結果鏈接到G4單元格中。

 

複選框

同樣我們做一個複選框的按鈕,把它鏈接到G5單元格中。

 

做好這4個選擇器以後,我們要開始做動態圖表了,大家要明確一個思路,圖表之所以會動,是因爲數據在動,數據動態變化,圖表自然而然就跟着變了。所以我們的關鍵在於讓數據動起來。

取數:定義動態名稱

之前我們一貫的思路是做了選擇器之後,做一個取數的區域,讓這個區域裏的數隨着選擇器裏數值的改變而變化,但是這裏我們不能固定一個動態區域了,因爲這個區域本身就不是固定的了,它會隨着數值調節鈕的改變而增加或減少區域,會隨着滾動條的改變選擇不同區域的數值,因此,我們需要用offset定義動態名稱來解決這個問題。

X軸

點擊【公式】裏的【定義名稱】,起個名字,命名爲x_data,意思是我們這裏要選擇的是圖表中的X軸。在引用位置處輸入公式

=OFFSET(動態圖表!$A$1,動態圖表!$G$2,0,動態圖表!$G$3,1)

這個公式的意思是,以A1單元格爲參考下,向下偏移G2單元格數值個行,也就是滾動條變化的值,向右偏移0列,選擇G3單元格數值個行,也就是數值調節鈕變化的值,選擇1列。

這裏滾動條的值是1,數值調節鈕的值是5,也就是以A1單元格爲參考系,向下偏移1行,向右偏移0列,這時就選中了A2單元格,再選擇5行,1列,這樣就選中了A2:A6區域,也就是圖裏虛線選中的部分。

Offset函數是實現通過給定參考系,按照偏移量返回特定引用區域的功能,也不復雜,只要想明白它是怎麼用的就好。

Offset(以什麼爲參考系,向下偏移幾行,向右偏移幾列,選擇幾行,選擇幾列)

 

我們試着改變一下滾動條和數值調劑鈕的值,發現x_data區域也跟着變化了,要想實現的就是這效果。

 

方案1

做好了X軸的動態變化,我們再來做方案1,也就是Y軸的動態變化,同樣用到offset動態名稱。命名爲y1_data,輸入公式

=OFFSET(動態圖表!$A$1,動態圖表!$G$2,1,動態圖表!$G$3,1)

可以看到虛線框選到了方案1列所在的區域,這個公式和X軸公式的唯一區別在於向右偏移幾列這個參數,這裏是1,X軸公式是0.

 

方案2

同樣給出方案2的動態變化,命名爲y2_data,輸入公式

=OFFSET(動態圖表!$A$1,動態圖表!$G$2,2,動態圖表!$G$3,1)

和方案1公式不同的還是在於向右偏移幾列這個參數,這裏是2,意思是向右偏移2列。

 

作圖

隨便選擇ABC3列數據中的區域做一個柱形圖,得到如圖所示的圖表,選中柱子右鍵【選擇數據】,在彈出的對話框中點擊右邊的水平軸標籤中的【編輯】按鈕。

 


把軸標籤裏的值替換成我們剛剛寫好的X軸也就是x_data,注意感嘆號!前面的不要動,這是表名。

 


同樣對方案1和方案2進行編輯

 


將方案1裏的系列值替換成y1_data,方案2替換成y2_data

 


這樣我們在調整滾動條和數值調節鈕的時候,圖表就會變化了,雛形差不多出來了。

 

方案1&2再細化

細心的你可能發現了,我們最初想要實現的是用組合框控制方案1、2的圖形變換,現在這樣是兩種方案同時呈現的圖,和組合框好像沒什麼關係。

對了,因此需要對方案1和方案2的offset函數再優化,在G6單元格寫一個判斷函數來告訴offset向右偏移幾列這個參數,如果G4單元格,也就是組合框的值爲1,也就是選擇了方案1的話,if的值爲1;否則的話再進行判斷,如果組合框的值爲3,也就是選擇了方案對比的話,if的值也爲1,否則爲0。這個意思是如果組合框選了方案1和方案3,都向右偏移1列,如果選擇了方案2,就偏移0列。(大家細細琢磨一下,得自己理解)

 

同樣給方案2一個if判斷,如果組合框選了方案2和方案對比,就向右偏移2列,否則偏移0列。

 

我們再來重新寫一下方案1的offset偏移公式,命名爲y11_data,輸入公式

=OFFSET(動態圖表!$A$1,動態圖表!$G$2,動態圖表!$G$6,動態圖表!$G$3,1)”

和y1_data公式唯一的區別在於向右偏移幾列這個參數,這裏要改成G6單元格,也就是我們剛if函數去判斷的那個單元格。

 

同樣把方案2的公式也改一下,命名爲y22_data,輸入公式

=OFFSET(動態圖表!$A$1,動態圖表!$G$2,動態圖表!$G$7,動態圖表!$G$3,1)

這裏也是向右偏移幾列寫成了G7單元格。

 

組合框動態圖表

我們選中圖表中的藍色柱子,將公式欄中的y1_data,改爲剛剛寫好的y11_data

 

選擇橙色的柱子,把y2_data改成剛剛寫好的y22_data。

 

這時我們改變組合框的選項,就實現我們最初想要的功能了。

組合框.gif

組合框.gif

複選框動態圖表

快完成了,別忘了還有一個複選框控件,要實現的功能是點擊“顯示差額”複選框,就輸出方案1和方案2的差額對比的圖表,數據源就是D列差額。思路還是用offset動態名稱加上條件判斷的方法。

先在G8單元格給定向右偏移幾列這個參數的條件判斷,如果G5單元格爲真,if判斷的值就爲3,否則爲0,意思是如果選擇了複選框,就向右偏移3列,否則就不偏移。

 

再來給定動態名稱,命名爲yc_data,輸入公式“=OFFSET(動態圖表!2,動態圖表!2,動態圖表!8,動態圖表!3,1)”

 

同樣地,隨便選擇區域數據插入圖表,點擊柱子,將x軸部分改爲x_data,Y軸部分改爲yc_data。

 

這樣,當我們點擊顯示差額,這個圖就跟着顯示或不顯示了。

圖表美化

把組合框、複選框和數值調節鈕拖到第二行,並把這一片區域填充爲橙色。

 

把 差額 做的這個表拉過來和大表對齊。

 

把後面那一片背景填充爲金色。

 

把兩個圖表設置成無顏色填充無框線,再給這片區域加上粗線框,最後得到如下結果:

 

成果.gif

成果.gif


猜你喜歡:
什麼是好的數據指標:精益數據分析

泰坦尼克號數據分析

深入淺出數據分析

數據分析都有哪些崗位?

爲什麼要學統計學:赤裸裸的統計學

成爲數據分析師的第三年,我寫了10W字

@ 作者:可樂
@ 公衆號/知乎專欄/頭條/簡書:可樂的數據分析之路
@加個人微信:data_cola,備註:進羣,拉你入 可樂的數據分析羣 和各行各業的小夥伴交流探討數據分析相關內容

微信公衆號

微信公衆號

個人微信號

個人微信號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章