編按:哈嘍,大家好!看完昨天用VBA製作的全國疫情地圖的文章,相信不少同學都被震撼到了,一邊感嘆excel的強大,一邊又覺得VBA門檻高,難學!今天我們就教大家一個相對簡單的製作疫情地圖的方法,趕緊來看看吧!
【前言】
上一篇關於「新冠肺炎」動態地圖色階圖的文章,很多同學都覺得「門檻」有點高。當然,VBA作為EXCEL使用門檻較高的技能,製作的內容也會有一個較好的展示。那今天我們就來學習一些可以「摸得到」的技術吧。
特別聲明:本次數據系網絡手動摘錄,因數據條近萬行,故有可能「數據內容」、「GPS坐標」等數值會有出入,歡迎告知。本文只做EXCEL「三維圖表」方面技術分享與交流,數據真實性仍以「國家官方網站」為準!
【正文】
首先我們依然是需要數據源的(本文沿用上一期的數據源,可以通過部落窩群找客服老師索要),在工作中,也是如此。我們這些EXCELER操作的是EXCEL,操作的是數據;手裡沒有數據談何「技巧」的發揮,而在作者的認知中,一直覺得,數據源整理也應該算是學習EXCEL的基礎之一。
一、創建第一張地圖圖表
在作者看來,製作「三維地圖」的方法習慣和我們平時做常規圖表的感覺還是不太一樣的。我們先一起來做一張圖表感受一下效果。
步驟1:首先確定我們的第一張地圖要做什麼,選中一個主題,我們還是以「各省累計確診病例」開始循序漸進。在剛才的《源數據》表中,插入一個新的SHEET,命名為「各省累計確診病例」。複製出「省份」一列,粘貼到《各省累計確診病例》工作表中,然後「去重」,再使用SUMIFS函數匯總出「截止到統計日期,各省最後一次公布的累計確診人數」,得到下表:本文主旨為「三維圖表」,故函數解析部分從簡。
B3單元格函數:
=SUMIFS(源數據!D:D,源數據!A:A,"="&源數據!$G$2,源數據!B:B,A3)
然後雙擊填充柄填充函數到相應區域。
步驟2:選中數據區域A2:B36,在工具欄中選擇「插入」——「三維地圖」:
如果是第一次使用「三維地圖」,有可能會提示安裝模塊,按照步驟操作即可,一般來說EXCEL2016版是自帶此模塊的。點選之後,我們就可以進入「三維地圖」界面了,如下圖:三維地圖操作界面布局圖
這個界面的內容非常簡約,大部分的操作都是在圖層設置窗口中操作,而且比常規圖表的格式設置要簡單得多!
步驟3:按照下圖內容,設置圖層一:
步驟4:步驟4是……,沒了,是的,已經做完了,就是這麼簡單,而且滑鼠懸停在圖表色塊上,還可以顯示數據內容。
二、向已有的「三維地圖」添加數據
相對於每日增長的數據,作者也在關注病情治療的情況,那我們就把治癒率也放入這個「三維地圖圖表」中吧!
步驟1:新建一張SHEET,命名為「治癒率」,使用函數手段製作數據源,如下:
C3單元格函數為:
=SUMIFS(源數據!F:F,源數據!A:A,"="&源數據!$G$2,源數據!B:B,A3)
D3單元格函數為:
=IFERROR(ROUND(C3/B3*100,2),0)
(注意治癒率計算公式只做教程使用,數據真實性仍以「國家官方網站」為準!)
步驟2:選中數據區域A2:D36,還是點擊工具欄中「三維圖表」按鈕,但此時我們需點擊「將選定數據添加到三維地圖」的選項,如下:
因為我們只有一個「演示」,所以會自動跳轉到「演示」中,如果我們有多個「演示」,那麼會有一個新的窗口,可以選擇添加到指定的「演示」中。
步驟3:當我們再次來到「三維圖表」界面後,就會發現,此時的圖層設置窗口中,當前的圖層叫做「圖層2」,這個功能和PPT中的感覺很像,我們可以對圖層的「顯示/隱藏」、「名稱」進行操作,還可以「刪掉」這個圖層。
將剛才的「圖層1」命名「各省累計確診病例」,將現在的「圖層2」更名為「治癒率%」。然後按照下圖的內容設置圖層2。
藉此「添加」新數據的操作完成!
三、任何圖表都是為「數據分析」做服務
這樣的一張地圖,看著是很「炫酷」,但也僅是「耍酷」而已。任何形式的「圖表」都應該是為數據分析做服務的!
我國幅員遼闊,地大物博。但是人口密度、行政區域劃分不盡相同,而且差異還比較大。此次疫情的數據,也是有著這樣的特點,因為疫情波及我國大面積省份,但是只用「省份板塊」來處理圖表並不太合適,所以我們要細化數據,看看「三維地圖」能不能做出更加細化的圖表,我們準備用「城市」做出此次疫情的分布圖。
步驟1:依然需要準備數據源,新建工作表「各城市累計確診病例」,如下圖:
B3單元格函數如下:
=SUMIFS(源數據!D:D,源數據!A:A,"="& 源數據!$G$2,源數據!C:C,A3)
C3單元格函數如下:
=SUMIFS(源數據!F:F,源數據!A:A,"="& 源數據!$G$2,源數據!C:C,A3)
D列和E列是城市的GPS定位坐標的經緯度。建議喜歡「地圖圖表」的同學們,平時養成搜集「定位坐標」的習慣,此坐標系「百度地圖」一個一個城市搜索來的。
對於地圖模型來說,如果單純地用文字表述來做出「區域圖」或者「柱形圖」,有的時候地圖是識別不出來的,比如較偏僻的城市,或者城市名稱不合規,都會造成無法識別,這個叫做「地圖可信度」,所以我們可以採用更加精確的「GPS定位坐標」來做這個「地圖圖表」!
步驟2:選中數據區域A2:E337,按照上面「添加數據到已有演示」中的方法,繼續添加圖層3,更名為「城市累計確診病例/治癒病例對比」,按照下圖設置此圖層,如圖:
這裡雖然默認叫做氣泡圖,其實更像是一個「餅圖」,因為可以添加多系列數值進來,藉此完成!
【發散思考】
因為武漢的數據是一個相對很大的數字,對於這種數據差異很大的情況,上圖中湖北的數據影響了其他省市的數據展示,所以我們可以再建立一個圖層,將兩組數據的氣泡圖,分別命名為「非湖北」和「湖北」,還是按照上面的操作,我們可以得到下圖,有興趣的同學可以自己下來操作一下。祝願:圖表中代表治癒的藍色能早日充斥到整個中國被疫情波及的地域。
四、「高亮顯示」關鍵信息
最後我們再來看看,如何讓「三維圖表」也能夠像「常規圖表」一樣,能把一些比較重要的信息,「高亮顯示」出來。所謂「高亮顯示」就是在一組數據圖表中,如果達到某個標準,就可以自動的更改顏色,起到提示的作用!
步驟1:在數據表中製作數據源的輔助數據:
G2單元格輸入函數:
=MAX(A:A)
表示提取最後的發布日期。
H2單元格輸入函數:
=MAX(A:A)-MIN(A:A)+1
表示提取每個城市連續統計的天數,記得日期相減要加1,這是常識。
I2單元格輸入一個常數:按照標準7-14天,7-14之間的數字,任意填一個
G4單元格輸入函數:
=IF(C4<>C3,D4,D4-D3)
用於統計每日新增量。
H4單元格輸入函數:
{=IF(A4<>$G$2,0,LOOKUP(9^9,N(FREQUENCY(IF(OFFSET(G4,0,0,-$H$2,1)=0,ROW(INDIRECT("$4:$" & $H$2+3))),IF(OFFSET(G4,0,0,-$H$2,1)<>0,ROW(INDIRECT("$4:$" & $H$2+3)))))))}
用於統計截止2月24日,最後一次每日新增量連續為0的次數。這是一個經典用法,但這個函數不太好理解。紅色的部分是這個函數的關鍵,大家可以在「部落窩」搜索一下關於FREQUENCY函數的用法,以後作者E圖表述也會講到這個函數。
I4單元格輸入函數:
=IF(A4<>$G$2,0,IF(H4>=$I$2,$I$2,0))
若連續0增長病例的天數達到I2單元格「標尺」的標準,即顯示I2標尺的值,此作為我們需要高亮顯示的關鍵信息。
步驟2:建立新工作表,命名為「勝利的顏色」。按如下操作設置數據值。
B2單元格輸入函數:
=SUMIFS(源數據!I:I,源數據!A:A,"="&源數據!$G$2,源數據!C:C,A3)
步驟3:
選中數據區域A2:B337,添加到「三維圖表」中,按下圖設置。
綠色的部分就是代表已經連續7天或者7天以上0增加病例。藉此完成,從圖表上來說,現在疫情是向著利好的方向發展的。
【編後語】
作為「地圖類型」的圖表,作者給了VBA的方式,也給了大家比較簡單的「三維地圖」的操作。雖然總感覺沒有VBA版的地圖圖表做得賞心悅目,但是在做的過程中,作者感覺「三維地圖」的操作比較簡單。雖然在顯示標籤內容的時候還是有所欠缺的,但是相信微軟不會留下這樣的一個BUG給我們,所以它的可研究內容還有很多,大家一起努力吧。
****部落窩教育-excel數據地圖製作方法****
原創:E圖表述/部落窩教育(未經同意,請勿轉載)