有讀者提了這樣一個問題,想要制作如下的動態(tài)圖表,要怎么實現(xiàn)?
可以看到,這個動態(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)圖表揭秘:“動”的關(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)我們最初想要的功能了。
復(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)圖表!2,動態(tài)圖表!
2,動態(tài)圖表!
8,動態(tài)圖表!
3,1)”
同樣地,隨便選擇區(qū)域數(shù)據(jù)插入圖表,點擊柱子,將x軸部分改為x_data,Y軸部分改為yc_data。
這樣,當我們點擊顯示差額,這個圖就跟著顯示或不顯示了。
圖表美化
把組合框、復(fù)選框和數(shù)值調(diào)節(jié)鈕拖到第二行,并把這一片區(qū)域填充為橙色。
把 差額 做的這個表拉過來和大表對齊。
把后面那一片背景填充為金色。
把兩個圖表設(shè)置成無顏色填充無框線,再給這片區(qū)域加上粗線框,最后得到如下結(jié)果:
猜你喜歡:
什么是好的數(shù)據(jù)指標:精益數(shù)據(jù)分析
為什么要學(xué)統(tǒng)計學(xué):赤裸裸的統(tǒng)計學(xué)
@ 作者:可樂
@ 公眾號/知乎專欄/頭條/簡書:可樂的數(shù)據(jù)分析之路
@加個人微信:data_cola,備注:進群,拉你入 可樂的數(shù)據(jù)分析群 和各行各業(yè)的小伙伴交流探討數(shù)據(jù)分析相關(guān)內(nèi)容