上次帶大家見識了幾個制表時最常見的誤區,提出了四條規則
要想通過一次討論就把所有誤區都說清楚也不現實,有些坑還是要自己踩自己跌自己爬,挫敗感是學習成長道路上的二師兄——有些討厭,卻少不了他
假如你面對這些坑,騰挪輾轉收放自如,那恭喜你,離玩轉Power BI又近了一步
今天想談談一維表和二維表
這兩樣如果搞不清,數據清洗時仍然會陷入事倍功半的泥潭
什麼是二維表?
看下圖,確定一個數值,必須通過行列兩個條件去定位,這是二維表最顯著的特徵
那什麼是一維表呢?
像下面左圖這種僅需通過單行就能確定數值的,被稱為一維表。為了方便瀏覽列印美觀,很多人會把重複姓名合併單元格,如下面右圖(合併單元格只是格式美觀,對數據清洗反而是一大障礙,會耗費額外時間精力)
為什麼表格會有一、二維之分
大家還記不記得小時候最早接觸到表格是什麼樣?對,就是學校的課程表。用二維表樣式來製作課程,是再合理不過了。這張伴隨學生時代的課程表,給人留下的印象太深,即便到了工作崗位,表格的製作和列印,也大都是二維表樣式
那一維表是怎麼來的,為什麼會出現這樣一種有大量重複,反人性的表格樣式?
最早接觸一維表的,是那些資料庫從業者,因為一維表大都是系統自動生成的。但凡從系統裡導出來的表,不管是XLS還是CSV,都是一維表樣式
換句話說,一維表是符合資料庫設計規範的——資料庫設計規範是一套參考體系,在技術世界裡不分國界地沿用了超過三十年
你只要知道,需要行和列來定位數值的,就是二維表;僅靠單行就能鎖定全部信息的,就是一維表
當然,一維表、二維表可以相互轉換
一維轉二維用透視表,反之用逆透視
我們把一維表稱為源數據,特點是數據豐富詳實,適合做流水帳,方便存儲,有利於做統計分析;二維表稱為展示數據,特點是明確直觀,適合列印、匯報
依然用之前的示例(全國影城數據)來演示
這是系統導出的一維表,全國上萬家影城,2019年上半年各月的人次明細,總計有六萬多行,地理維度有省市區三層
一維表顯然不適合人類閱讀,想了解匯總信息,只能通過透視功能轉換為二維表。一維表信息越詳實,二維表可展示的方式就越靈活
回到數據清洗這個環節上來
實際工作中,我們拿到的數據大多是手工製作的二維表——注意,是手工製作,而不是透視過來的二維表,兩者最大的區別就在於,手工二維表,存在大量「髒」數據,最典型的就是前文提過的「制表坑」
一個最顯著的特點,就是存在大量合併單元格。二維轉一維過程中,合併單元格是惡魔
但光你自己明白合併單元格的利弊並沒什麼L用,要知道,做數據分析時,數據的來源千差萬別,如果都是系統導出的倒還好,清洗起來沒什麼工作量,就怕是那種各部門提交過來的手工電子表,他們只圖自己工作方便,制表隨意性造成了大量不確定因素,使你的清洗工作量成倍增加
關於數據清洗的經驗與技巧,可以單獨寫本書,況且外面也已出版了很多Power Query的書籍,網上也有很多PQ方面的收費課程,學習門檻幾乎可以忽略
這裡就舉個小示例,演示一下行列都有合併單元格的情況下,如何二維轉一維
連結:https://pan.baidu.com/s/1p7OfC3-BkqpYw74pbzj0YA
提取碼:g3j2
PQ自動打開後,數據已導入,你會發現,之前合併單元格的地方,已被null佔據
選擇前三列,「向下填充」
通過「轉置」功能,把月份人次場次,行轉列
選中第一列月份,依然「向下填充」,把null覆蓋掉
將前兩列暫時合併,方便後續處理(你也可以試著不合併,看後面操作能不能繼續下去。如果不能,究竟卡在什麼地方,為什麼出卡住,再回過來想一下,這步合併的緣由自然就水落石出)
行列恢復如初
將第一行提升為標題。選取前四列,點擊「逆透視其他列」
至此,二維錶轉一維表過程結束(注意修改列名)
接下來就可以建度量值拉圖表搭建可視化頁面了