|
說起Excel交互式圖表的制作,很多人首先會想到利用控件來實現(xiàn)。其實,我們也可以不使用控件,只用3行簡短的VBA代碼,再加少量函數(shù),就能實現(xiàn)光標過處、圖表變化的交互效果,這樣便可以省去使用控件的繁瑣設置過程。在本文中,我們將實現(xiàn)當光標在各部門間移動時,對應圖表自動變換的效果(圖1)。
1. 設置交互代碼 打開數(shù)據(jù)工作表,切換到“開發(fā)工具”選項卡(如果沒有這個選項卡,點擊“文件→選項”,在彈出的“Excel選項”窗口中選擇“自定義功能區(qū)”,然后勾選“開發(fā)工具”就可以了),點擊“Visual Basic”,在出現(xiàn)的VBA窗口中,點擊“插入→模塊”,在代碼窗口輸入圖中所示3行簡單代碼(圖2)。
小提示: 這段代碼的核心部分是中間一句,其意思是讓p1單元格獲取tmp這個參數(shù)所對應的單元格的值。 2. 改造原數(shù)據(jù) 要想圖表具有交互性,還需要對原數(shù)據(jù)進行一下改造。在A2單元格輸入“=IFERROR(HYPERLINK(changetmp(A2)),"A部門")”,在A3單元格輸入“=IFERROR(HYPERLINK(changetmp(A3)),"B部門")”,本列單元格的輸入內(nèi)容依此類推(圖3)。
小提示: 在輸入公式過程中會出現(xiàn)警告提示,這時,直接點擊“確定”即可。 3. 構(gòu)造圖表數(shù)據(jù)源 切換到“公式”選項卡,點擊“名稱管理器”,在彈出窗口點擊“新建”,在新彈出窗口“名稱”處輸入“TEMP”,“引用位置”處輸入“=OFFSET(Sheet1!$A$1,MATCH(Sheet1!$P$1,Sheet1!$A$2:$A$5,0),1,1,12)”。這樣,就為圖表構(gòu)建了數(shù)據(jù)源(圖4)。
4. 建立圖表 選中一空白單元格,插入一個帶數(shù)據(jù)點的折線圖。右擊這個空白圖表,選擇“選擇數(shù)據(jù)”,在新彈出窗口的“圖例項”處點擊“添加”,在彈出窗口的“系列值”處輸入“=SHEET1!TEMP”,確定;在“水平(分類)軸標簽”處點擊“編輯”,軸標簽區(qū)域選擇“=Sheet1!$B$1:$M$1”。這樣,圖表就構(gòu)建完成了,當鼠標在各部門滑過,圖表交互的效果就出現(xiàn)了(圖5)。
在Q1單元格輸入“=$P$1&"2019年1-12月銷售變化情況"”,選中圖表標題,在公式編輯欄輸入“=Sheet1!$Q$1”(或者將光標點擊到公式編輯欄后,用鼠標點取Q1單元格)。這樣,圖表標題也會跟隨變化(圖6)。
5. 美化圖表 為了讓圖表看起來更加漂亮,需要對圖表執(zhí)行進一步的美化處理。刪除圖表的橫向網(wǎng)格線,右擊圖表的縱坐標軸,選擇“設置坐標格式”,在坐標軸選項中,“最大值”處設置為“120”,刪除縱坐標軸;切換到“圖表設計”選項卡,點擊“添加圖表元素→數(shù)據(jù)標簽→上方”,設置好標簽所需要字體、顏色及大小;選中圖表中的數(shù)據(jù)點,在右側(cè)的“設置數(shù)據(jù)系列格式→填充與線條→標記”選項卡中,“標記選項”處選擇“內(nèi)置”,“類型”處選擇圖片,在彈出窗口選擇所需要的圖片,“邊框”處選擇“無線條”;設置好橫坐標軸的字體顏色及大小等(圖7)。
6. 保存文件 因為交互過程用到了VBA代碼,所以需要將文件保存成啟用宏的文件。點擊“文件→另存為”,在彈出窗口輸入所需文件名,保存類型處選擇“Excel啟用宏的工作簿”,點擊“保存”就可以了(圖8)。
應用擴展: 其實,圖表數(shù)據(jù)源的獲取還可通過VLOOKUP函數(shù),在Q2單元格中輸入“=VLOOKUP($P$1,$A$2:$M$5,COLUMN()-14,FALSE)”,并向右拖動至AA2單元格,這樣也可以獲得圖表所需要的數(shù)據(jù)源(圖9)。
|
|
|