上篇帖子的足跡地圖做法,是基於幾年前《用地圖說話》書中的範例,使用形狀和vba,適合於 2003~2016 所有版本,不過略為麻煩。
如果你使用 365 版本的 Office,地圖的繪製已有內置功能來實現,那就非常簡單了。在這篇練習裡,除了複選框和地圖,我們再增加一個 「一鍵 Clear All 複選框」 的功能。完成的效果如下圖。
(足跡地圖練習小品第2篇效果演示)
原理簡介
使用省名和複選框勾選的結果插入365地圖,即可得到足跡地圖。複選框使用我們的個人宏代碼一鍵批量高效插入。
我們按如下步驟來練習:
1、製作複選框。
上篇已經說過,這麼多複選框要插入、對齊、改文字、連結單元格,手動做是太麻煩太累了。一鍵批量高效插入的方法,有點小複雜,參見《向經濟學人學圖表》第2季裡的介紹。
(一鍵批量高效插入複選框並連結單元格)
2、插入地圖。
使用圖中的B和D列,已經可以插入365版本的地圖了。不過為了便於理解,範例裡我們還是將TRUE和FASLE轉換為1和0來作圖。
這裡需要365版本,其他版本目前還沒有這個地圖功能。低版本打開本貼範例文件時這個地圖會顯示為報錯的空白。
(365版本的地圖功能)
現在的地圖默認是世界地圖,可在地圖區域選中「僅包含數據的區域」,則顯示為中國地圖。
這裡有個小問題,你的中國地圖可能不是像我們例圖裡昂首挺胸的雄雞狀,和國家標準的中國地圖形象有所區別。所有和國家標準中國地圖不一致的都不是好地圖。
(右側是正確的中國地圖投影)
你調整地圖投影為 麥卡託投影,略接近些,但公雞的頭是低著的,胸是比較小的。其他投影方式差別更大。
那怎樣才能設置出例圖裡昂首挺胸的中國地圖呢?這可能是微軟的一個bug。我的小技巧:
TIPS:你同時打開我們的範例文件,然後在自己的練習文件裡插入地圖,或許就是和範例一樣的昂首挺胸的中國地圖了。
現在,勾選複選框,地圖已經可以即時反映了,交互式足跡地圖已經有了。
3、增加一個 Clear All 的功能。
在這次的練習裡,我想給模型增加一個 Clear All 的功能,即可以批量勾選或取消勾選各省的複選框。這在分析儀錶板中是經常需要的。
不過,Excel並沒有提供這樣的功能。我們可以使用宏代碼來完成,很簡單,只有1句話,複雜的我不會,也不想會。
先命名 Clear All 複選框連結的單元格為 check_all,命名各省的連結單元格區域為 check_1by1。然後按Alt+F11插入模塊,輸入如下的宏代碼:
Sub clear_all()
[check_1by1] = [check_all]
End Sub
是不是太簡單?使用名稱後代碼變得簡潔易懂。把這個宏指定給 Clear All 複選框。
這樣,當勾選或取消勾選 Clear All 的時候,就執行宏代碼,將各省的連結單元格區域 check_1by1 全部填充為 check_all 單元格的值,實現了一鍵全選或全不選的功能。
(DIY一鍵全選或全不選的功能)
劃重點,這裡是我們這篇帖子想介紹給大家的做法和技巧,極其簡單但從沒有過的厲害用法。
4、完成模型。
其他收尾工作,統計勾選的省份個數,計算虛擬的比例,顯示動態文字和數字,排版布局等,做法和上篇帖子類似,不細述。完善細節,保護工作表,完成模型。
(完整的模型示意圖)
(足跡地圖練習小品第2篇效果演示)
練習到的知識點
在這個練習小品中,我們至少運用到以下知識點和技巧:
複選框的運用。批量插入的方法
365地圖的運用。投影方式、序列顏色的設置
定義名稱的運用
宏vba的簡單運用
函數的運用。如 text() 等
隱藏、鎖定與保護
範例下載
要獲取範例文件,先轉發朋友圈,再發送消息 「足跡地圖」。動手練習,你才會有收穫!
如果喜歡這個帖子和練習小品的話,請點擊下面的 「喜歡作者」,微信的新功能,用 iPhone 的朋友們,終於可以表達你的愛了!
即將618,點擊【閱讀原文】有驚喜,請特別注意今天的 模板大法,和明天開始的大合集。