網上有很多關于中國GDP在世界各國中排名變化的視頻,相信大家都有看到過,數據變動的過程看起來非常震撼,讓人熱血沸騰。
感興趣的小伙伴們請擺好姿勢繼續往下看,動態柱形圖制作教程。
一、世界各國的GDP數據從哪兒來?
1. 瀏覽器搜索:世界銀行數據庫中文版。
2. 搜索GDP,選擇第一個GDP(現價美元)。
3.右邊有個下載數據,可以根據需要下載對應的數據類型,本次咱們下載Excel數據。
4.如果下載不了,可以點擊查看詳細信息。
5.點擊所有元數據。
6.跳轉到世行中文數據庫網站。
6.設置數據的查詢條件,設置Time為50年。
7.條件設置完畢右邊的下載選項中選擇Excel即可下載。
8.下載下來的數據因為金額太大顯示成科學計數方式了,在制作圖表前還需要對數據進行降位處理。
二、圖表中還用到另一份數據,我國年度大事記
這份數據小伙伴們可以直接用搜索引擎去查找,文末也會提供下載方式。
三、數據準備完畢即可開始圖表制作
第一步:對GDP數據進行降位處理。
技巧:選擇性粘貼–運算–除 1000000000,這么多個零數數清楚了嗎?
答案:十億。
第二步:以2018年的數據為基準做一次降序排列。
目的是讓數據按GDP按從大到小進行排列,但是這只是一個年度的,其他年代的GDP數據也需要排序怎么辦?請繼續往下看,答案即將揭曉。
第三步:新建一個輔助表,復制數據源中第一個年度前50個國家的數據。
為啥是50,而不是100?因為我們的圖表最終只取排名前10的國家,前面我們對原數據以2018年度做了一次降序排列,所以取前50個足夠,排名太后的已經沒有分析意義了。
第四步:對輔助表中的數據進行動態排名
用到排名函數=Rank(當前數字,需排名的數據區域,1升序或0降序排列)
A列的國家固定不變,B列需要動態的換成1969至2018年的數據,C列的排名函數會自動計算出當前最新的排名。
第五步:從動態排名的數據中取出排名前十的國家和金額
這時候需要用到一個萬金油組合公式MATCH和INDEX
MATCH函數負責根據排名數字查找它在動態排名中的位置(行位置)
INDEX函數負責根據行位置取在同一行中的國家和GDP數據
排名1-10是固定不變的,需要根據這個不變的數字去左邊動態的取出這個數字對應的國家和DGP數據。
例如:
固定排名2–Match對應動態排名中轉2所在的行為第4行–index從A列中取出第四行的數據=日本,同理可取出對應的GDP數據。
第六步:對中國的GDP數據單獨顯示
因為數據會動態變化, 為了保證中國永遠顯示成紅色柱子,所以再加一列用來只顯示我們中國的GDP數據,這個用IF函數很容易處理。
=IF(F2=\”中國\”,G2,0)
第七步:對數據生成柱形圖并設置樣式。
7.1 選中數據區域,插入一個簇狀柱形圖
7.2 設置系列格式,系列重疊為100%,這樣中國有兩跟柱子會重疊成一個紅色的柱子。
7.3設置坐標軸格式為逆序類別,讓金額大的線上最前面。
7.4 修改圖表標題、刪除橫向坐標、刪除表格網線
7.5 調整分類間距到50%,讓柱子變大些、設置圖表區域為淺灰色。
7.6 給每個柱子填充你喜歡的顏色并添加數據標簽。
7.7 插入一個矩形鏈接到單元格=$F$1,用來顯示當前數據的年份。
7.8 再插入一個矩形框鏈接到單元格=$I$1,I1單元格通過VLOOKUP公式去我們提前準備的[大事記]里面查找對應的事項。
至此我們的動態圖表終于完成了50%
四、讓柱形圖動起來
如何才能動起來?
只要能讓1969~2018的數據一年一年的按順序更新到這里即可。
手動搬動這些數據是不可能的,接下來祭出咱們的王炸VBA代碼,讓它來幫我們完成這些數據更新。
\’這個是用來延時的,防止圖表刷新過快Private Declare Sub Sleep Lib \”kernel32.dll\” (ByVal dwMilliseconds As Long)Sub DynamicChart() \’總共是50年的數據,存放在第2列至第51列 For col = 2 To 51 \’取出前四位組合成年份 ThisWorkbook.Sheets(\”demo\”).Range(\”B1\”) = Left(ThisWorkbook.Sheets(\”Data\”).Cells(1, col).Value, 4) & \”年\” \’將數據分割成5份,目的是讓數據變動的更歡快些、看起來效果更明顯 For i = 1 To 5 \’禁止刷新公式,自動計算 Application.Calculation = xlCalculationManual \’將數據填充到輔助表中 For rw = 2 To ThisWorkbook.Sheets(\”demo\”).Range(\”A65536\”).End(xlUp).Row \’因為輔助表中的國家位置是和數據源的位置保持一致的,所以只需要將GDP數據更新過去,分5次更新過去 ThisWorkbook.Sheets(\”demo\”).Range(\”B\” & rw) = (ThisWorkbook.Sheets(\”Data\”).Cells(rw, col).Value / 5) * i Next \’數據填充完成,刷新公式,自動計算 Application.Calculation = xlCalculationAutomatic \’延時100毫秒 Sleep 100 Next NextEnd Sub
五、VBA代碼如何使用?
- 在Excel界面,按快捷鍵ALT F11進入VBE界面。
- 點擊左邊的工程窗口,點擊鼠標右鍵,新建一個模塊。
- 把代碼貼入到模塊中。
- 按Crtl S保存,關掉當前界面即可回到原來的Excel界面。
六、代碼保存進去了如何使用(觸發)它?
在開發工具選項卡中插入一個按鈕到Excel表中,會彈出一個關聯代碼函數的彈窗,選中函數名關聯即可。
最終實現效果,點擊按鈕圖表就可以動起來了。
還沒關注的老鐵,趕緊點擊關注吧!
回復\”GDP\”獲取本次案例文件
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。