讓你的Excel圖表動起來!

有讀者提了這樣一個問題,想要制作如下的動態(tài)圖表,要怎么實現(xiàn)?


動態(tài)圖表展示.gif

可以看到,這個動態(tài)效果里有4種選擇器,左上方的組合框呈現(xiàn)出選擇不同的方案展示相應(yīng)柱形圖的效果;



中間的復(fù)選框勾上顯示差額的圖表,不勾就不顯示;


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


下方的滾動條實現(xiàn)數(shù)據(jù)的滾動,因為這個數(shù)據(jù)是有100多條,一個柱形圖顯然無法全部展示,所以要用滾動條去認為地滾動展示。



下面我們就來實戰(zhàn)一下要怎么實現(xiàn)。上面演示的是從網(wǎng)上找的模板,我們要做的真實數(shù)據(jù)是這樣的:

選擇器的制作

記得動態(tài)圖表是怎么做的嗎?首先要有數(shù)據(jù)源,然后制作選擇器,接著取數(shù),最后畫圖。如果你沒有動態(tài)圖表基礎(chǔ),可以參考以下文章:
這樣用Excel動態(tài)交互圖表,還要什么前端?

動態(tài)圖表交互揭秘:制作選擇器的奧秘

動態(tài)圖表揭秘:“動”的關(guān)鍵——取數(shù)

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

滾動條

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

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



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



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

數(shù)值調(diào)節(jié)鈕

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



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



這樣,我們點一下數(shù)值調(diào)節(jié)鈕,G3單元格中的數(shù)字也會跟著變。

組合框

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



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


復(fù)選框

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


做好這4個選擇器以后,我們要開始做動態(tài)圖表了,大家要明確一個思路,圖表之所以會動,是因為數(shù)據(jù)在動,數(shù)據(jù)動態(tài)變化,圖表自然而然就跟著變了。所以我們的關(guān)鍵在于讓數(shù)據(jù)動起來。

取數(shù):定義動態(tài)名稱

之前我們一貫的思路是做了選擇器之后,做一個取數(shù)的區(qū)域,讓這個區(qū)域里的數(shù)隨著選擇器里數(shù)值的改變而變化,但是這里我們不能固定一個動態(tài)區(qū)域了,因為這個區(qū)域本身就不是固定的了,它會隨著數(shù)值調(diào)節(jié)鈕的改變而增加或減少區(qū)域,會隨著滾動條的改變選擇不同區(qū)域的數(shù)值,因此,我們需要用offset定義動態(tài)名稱來解決這個問題。

X軸

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

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

這個公式的意思是,以A1單元格為參考下,向下偏移G2單元格數(shù)值個行,也就是滾動條變化的值,向右偏移0列,選擇G3單元格數(shù)值個行,也就是數(shù)值調(diào)節(jié)鈕變化的值,選擇1列。

這里滾動條的值是1,數(shù)值調(diào)節(jié)鈕的值是5,也就是以A1單元格為參考系,向下偏移1行,向右偏移0列,這時就選中了A2單元格,再選擇5行,1列,這樣就選中了A2:A6區(qū)域,也就是圖里虛線選中的部分。

Offset函數(shù)是實現(xiàn)通過給定參考系,按照偏移量返回特定引用區(qū)域的功能,也不復(fù)雜,只要想明白它是怎么用的就好。

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

我們試著改變一下滾動條和數(shù)值調(diào)劑鈕的值,發(fā)現(xiàn)x_data區(qū)域也跟著變化了,要想實現(xiàn)的就是這效果。


方案1

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

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

可以看到虛線框選到了方案1列所在的區(qū)域,這個公式和X軸公式的唯一區(qū)別在于向右偏移幾列這個參數(shù),這里是1,X軸公式是0.


方案2

同樣給出方案2的動態(tài)變化,命名為y2_data,輸入公式

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

和方案1公式不同的還是在于向右偏移幾列這個參數(shù),這里是2,意思是向右偏移2列。


作圖

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



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



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

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



這樣我們在調(diào)整滾動條和數(shù)值調(diào)節(jié)鈕的時候,圖表就會變化了,雛形差不多出來了。

方案1&2再細化

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

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


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


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

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

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


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

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

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


組合框動態(tài)圖表

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


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


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


組合框.gif

復(fù)選框動態(tài)圖表

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

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

再來給定動態(tài)名稱,命名為yc_data,輸入公式“=OFFSET(動態(tài)圖表!A2,動態(tài)圖表!G2,動態(tài)圖表!G8,動態(tài)圖表!G3,1)”

同樣地,隨便選擇區(qū)域數(shù)據(jù)插入圖表,點擊柱子,將x軸部分改為x_data,Y軸部分改為yc_data。


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

圖表美化

把組合框、復(fù)選框和數(shù)值調(diào)節(jié)鈕拖到第二行,并把這一片區(qū)域填充為橙色。


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


把后面那一片背景填充為金色。


把兩個圖表設(shè)置成無顏色填充無框線,再給這片區(qū)域加上粗線框,最后得到如下結(jié)果:


成果.gif

猜你喜歡:
什么是好的數(shù)據(jù)指標:精益數(shù)據(jù)分析

泰坦尼克號數(shù)據(jù)分析

深入淺出數(shù)據(jù)分析

數(shù)據(jù)分析都有哪些崗位?

為什么要學(xué)統(tǒng)計學(xué):赤裸裸的統(tǒng)計學(xué)

成為數(shù)據(jù)分析師的第三年,我寫了10W字

@ 作者:可樂
@ 公眾號/知乎專欄/頭條/簡書:可樂的數(shù)據(jù)分析之路
@加個人微信:data_cola,備注:進群,拉你入 可樂的數(shù)據(jù)分析群 和各行各業(yè)的小伙伴交流探討數(shù)據(jù)分析相關(guān)內(nèi)容

微信公眾號
個人微信號
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。