上一帖介紹了斜率圖的簡單做法和優(yōu)化做法,學(xué)員們練習(xí)的圖表都很漂亮!下面是學(xué)員阿思貓的作品。
本帖介紹第3種做法,能交互式突出顯示的智能斜率圖,這個做法比較極客,屬于Excel作圖的高階程度。我們先看完成后的交互演示效果。
作圖思路
圖表和交互功能的主要特征有:
根據(jù)指標(biāo)的上升或者下降,折線圖自動分為兩組,用不同顏色區(qū)別顯示,方便閱讀和理解。
兩側(cè)標(biāo)簽均顯示類別名稱和指標(biāo),分別左右對齊,也是方便閱讀。
左側(cè)表格里的類別名稱帶有單選框按鈕,選擇后,表格和圖表都能突出顯示。
本例我們使用散點圖來制作,包括折線圖和數(shù)據(jù)標(biāo)簽。并且,考慮在左側(cè)列表上增加單選按鈕,給圖表增加動態(tài)交互的功能。
要實現(xiàn)這些效果,需要多少組數(shù)據(jù)呢?
上升和下降的折線圖,2組散點圖,根據(jù)指標(biāo)升降計算分別準(zhǔn)備。
左右分別對齊的數(shù)據(jù)標(biāo)簽,2組散點圖。
突出顯示的折線圖和標(biāo)簽,1組散點圖。
頂上的指標(biāo)名稱標(biāo)簽,1組散點圖。
因此總共需要6組散點圖xy數(shù)據(jù)。
數(shù)據(jù)組織及圖表制作
為方便理解,本帖把數(shù)據(jù)組織和制作步驟合起來講解。
1、兩組分色的折線圖
兩組分色的折線圖,用兩組散點圖來繪制,根據(jù)指標(biāo)是上升還是下降來判斷,準(zhǔn)備K、L和M、N兩組xy數(shù)據(jù)。
一個散點圖序列要實現(xiàn)分段的效果,每個線段需要3個數(shù)據(jù)點,即左側(cè)起點(before)、右側(cè)止點(after)、空。為方便簡化不費腦地寫公式,我準(zhǔn)備了3列輔助id數(shù)據(jù),
* id1,1到36*3=108
* id2,1到36,每個重復(fù)3次
* id3,1到3,重復(fù)36次
對于上升的部分,xy取值公式如下:
x值,K7:=IF(INDEX($F$7:$F$42,I7)>=0,CHOOSE(J7,1,2,NA()),NA()),意思是,如果是上升,則按id3每123依次取值 1、2、空值。
y值,L7:=IF(INDEX($F$7:$F$42,I7)>=0,CHOOSE(J7,INDEX($D$7:$D$42,I7),INDEX($E$7:$E$42,I7),NA()),NA()),意思是,如果是上升,則按id3每123依次取值 起點值、止點值、空值。
下降的部分則剛好相反:
x值,M7:=IF(INDEX($F$7:$F$42,I7)<>
y值,N7:=IF(INDEX($F$7:$F$42,I7)<>
以上公式都要下拉到36*3=108行。
為實現(xiàn)斷開的效果,要篩選出所有id3=3的行,刪除清空其xy數(shù)據(jù),刪除后取消篩選。這樣散點圖就不會繪制這些數(shù)據(jù)點,得到斷開的線段。
作圖步驟1:現(xiàn)在,以 K6:N114 區(qū)域插入帶折線和標(biāo)記的散點圖,就得到如下的圖表。注:2013以上版本可以這樣一次插入,2010版本前需要先用K、L列做散點圖后,再添加M、N列數(shù)據(jù)。對上升和下降的折線圖,可以使用具有涵義的紅綠色來表示,也可以都使用灰色。
2、左右兩側(cè)的數(shù)據(jù)標(biāo)簽
兩側(cè)分別左右對齊的數(shù)據(jù)標(biāo)簽,也是使用兩組散點圖來顯示,只需要與數(shù)據(jù)源一致的行數(shù),Q~V列。
以左側(cè)標(biāo)簽為例,xy和標(biāo)簽的取值如下,右側(cè)標(biāo)簽與此類似。
x值,Q列,全取1。右側(cè)標(biāo)簽則全取2
y值,R列,取起點的指標(biāo)。右側(cè)標(biāo)簽則取止點的指標(biāo)
標(biāo)簽值,S列,取名稱列+起點值,=C7&' '&TEXT(D7,0)
作圖步驟2:圖表添加1個序列,指定xy數(shù)據(jù)為Q、R列,添加數(shù)據(jù)標(biāo)簽,指定為S列,在左。同樣方式添加右側(cè)標(biāo)簽序列,指定數(shù)據(jù)標(biāo)簽為V列,在右。
3、表格里的選擇按鈕
現(xiàn)在,考慮把數(shù)據(jù)源的C列分類名稱,添加單選框按鈕,提供給用戶選擇,給圖表添加交互功能。
作圖步驟3:插入一個單選框按鈕,文字清空,錨定 對齊到B7單元格,結(jié)果鏈接到$B$6,然后下拉復(fù)制B7到B42,得到36個單選框按鈕。試著選擇這些單選框,選擇結(jié)果會反映在$B$6。
不過,我做的時候,是利用自己寫的自定義宏按鈕,可以一鍵批量插入單選框,非常高效,演示如下圖。
這個做法我們在《向經(jīng)濟學(xué)人學(xué)圖表第2季》里有介紹類似做法,那里是一鍵批量插入對齊在單元格里的復(fù)選框。想學(xué)習(xí)這個一鍵高效的方法,可以參加經(jīng)2季課程。
4、圖表里的突出顯示
然后準(zhǔn)備用來突出顯示當(dāng)前選中類別的輔助數(shù)據(jù),X~Z列。
x取值分別為1、2,y取值則根據(jù)單選框的結(jié)果B6來提取,分別為 Y7:=INDEX(D7:D42,B6),Y8:=INDEX(E7:E42,B6),數(shù)據(jù)標(biāo)簽為類別名稱+指標(biāo)。
作圖步驟4:圖表里再添加1個序列,指定xy為X、Y列,添加數(shù)據(jù)標(biāo)簽指定為Z列,兩個標(biāo)簽分別靠左和靠右,黃色填充。這個散點圖的線條可以粗點,亮色,并添加個末端箭頭。
現(xiàn)在選擇表格上的單選框,圖表中應(yīng)該有動態(tài)突出顯示。
5、頂上的指標(biāo)名稱標(biāo)簽
頂上的指標(biāo)名稱標(biāo)簽,可以直接使用文本框來畫,不過這里我們還是使用散點圖來顯示,能更加精準(zhǔn)對齊。準(zhǔn)備xy數(shù)據(jù),AB~AD列。
x取值分別是1、2,y取值,=COUNTA(C7:C42)+1。不過,這里因為是排名,y軸需要逆序類別后符合閱讀習(xí)慣,因此這里直接取0。數(shù)據(jù)標(biāo)簽AD列,則直接引用指標(biāo)名稱。
作圖步驟5:圖表里再添加1個序列,指定xy為AB、AC列,添加數(shù)據(jù)標(biāo)簽指定為AD列,兩個標(biāo)簽分別靠左和靠右。
6、左側(cè)表格的突出顯示
用戶選擇后,我們給左側(cè)表格也添加一個突出顯示的效果,反饋用戶選擇。根據(jù)選擇突出顯示行,是使用了條件格式,我們在《向經(jīng)濟學(xué)人學(xué)圖表第2季》里也有過介紹。
作圖步驟6:選中表格 C7:E42,條件格式,使用公式的條件格式,=ROW(C7)-6=$B$6(注意這里$B$6的寫法,是固定的),設(shè)置條件格式為黃色填充。
7、完成和檢查圖表
作圖步驟7:最后,清除圖表中不必要的元素,格式化圖表,檢查圖表的正確性,測試單選按鈕選擇不同的類別,檢查表格和圖表的突出顯示是否正確。
至此完成圖表。誒,寫教程比做范例要更費腦費時啊,因為要考慮怎樣講解才簡單、清晰、易懂,新手也都可以看得懂、學(xué)得會。
涉及知識點
本例屬于Excel高級作圖,綜合運用到很多知識點:
構(gòu)圖思路,重要
多序列的散點圖做法,不斷添加新序列
散點圖標(biāo)簽的添加,對齊,xy標(biāo)簽工具
index,choose,text,row 等函數(shù)運用
單選框按鈕的制作,錨定與復(fù)制技巧,或者自定義宏按鈕
條件格式,絕對地址與相對地址的原理
難度指數(shù):★★★★★,屬于綜合性高級作圖
實用指數(shù):★★★★★,適合兩個時期數(shù)據(jù)升降變化的反映和比較,如 before vs after
范例下載