運動散點圖-----powerquery移形換影

前次介紹過關於畫泡泡圖使用power query進行移形換影轉換數據結構的貼子.這次同樣是使用power query,只是稍微加了一點power pivot,快速轉換數據結構.我感覺比使用函數感覺要快很多,在轉換數據結構時.什麼是運動散點圖.先來看一張大圖.

這種像流星一樣的東西就姑且叫運動散點圖吧...經濟學人里經常會出現這種類似的圖.當然不畫這個圖啦.模擬數據也夠搞了.而是下面這張.

數據是從excelpro老師那裡找來的.

上圖所示的數據結構非常符合excel大多數使用者的思維習慣,但不適合用來畫圖.要畫運動散點圖所需要的數據形式應該是這樣的.

正是中間空一行,使得在使用帶點的散點圖時,正好把線條斷開了,形成了一個個箭頭.知道了作圖數據源,接下來就是如何來搬運數據了.用函數實在太複雜,用基本操作技巧感覺好像又弄不成動態圖表.所以最快速的辦法還是power query. 對數據源CTRL+L.表頭不要.如圖所示:

弄好後,從這裡載入進power query

一分鐘不到,2015年的數據就轉換成一維表了.

接下來就是轉換2035年的數據.只要把源這一步的數據複製過來,接著往下點按鈕,自動生成代碼.

立馬就生成2035年的一維數據.現在就是想辦法將2010與2035進行數據上下合併.如圖中所示,點追加查詢就行了.但也不是完全點按鈕行的,其中還得修改代碼里的部份內容.

大功告成,所有的數據合成一維表了,就用了三分鐘.是不是很很快?代碼如下.

let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 刪除的列 = Table.RemoveColumns(源,{"石油2", "燃氣2"}), 逆透視的其他列 = Table.UnpivotOtherColumns(刪除的列, {"國家"}, "屬性", "值"), 已添加自定義 = Table.AddColumn(逆透視的其他列, "年份", each 2015), 自定義1 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 刪除的列1 = Table.RenameColumns(Table.RemoveColumns(自定義1,{"石油", "燃氣"}),{ {"石油2", "石油"},{"燃氣2", "燃氣"} }), 逆透視的其他列1 = Table.UnpivotOtherColumns(刪除的列1, {"國家"}, "屬性", "值"), 已添加自定義1 = Table.AddColumn(逆透視的其他列1, "年份", each 2035), 追加的查詢 = Table.TransformColumnTypes(Table.Combine({已添加自定義, 已添加自定義1}),{{"值", type number}})in 追加的查詢

雖然都轉換為一維數據了,但這不是作圖的數據,接下來就得使用power pivot進行數據透視,轉換為最終的畫圖的數據源.關閉power query並上載至power piovt.

打開power pivot,發現裡面已經有數據了,點按鈕生成數據透視表.

再生成如下透視表.

立馬就生成了所需要的作散點圖的數據結構了.power query+piovt真是好用的移形換影大法.數據都生成了.直接插入圖表,如果數據透視圖表不好插入圖表,就把數據轉換為OLAP數據集.

直接插入圖表用帶點的散點圖,都差不多出現雛形了.真是方便快捷.美化一下就行了.

EasyCharts團隊出品

帥的人都關注了EasyCharts團隊^..^~

QQ交流群:553270834

微信公眾號:EasyCharts

推薦閱讀:

學習Power Query,怎能沒有PBIDicts
[E0-02]資料庫思維
如何將多個文件夾的工作簿合併到一個文件夾
PowerBI大師視頻課程全面上線

TAG:MicrosoftExcel | 数据可视化 | PowerBI |