數據分析的源數據應該是規範的,而規範的其中一個標準就是數據源應該是一維表,它會讓之後的數據分析工作變得簡單高效。
在之前的文章中,我也經常強調一維表的易用性,也時常有人問我,什麼是一維表,為什麼要轉為一維表呢,這篇文章就來幫你梳理清楚並告訴你如何將二維錶轉化為一維表。
什麼是一維表
在Excel中常見的是二維表,你可能天天都在用,
而一維表是長這樣的:
通過以上二維表和一維表的比較,你應該能分清楚什麼是一維表、什麼是二維表了,簡單來說:
而這兩點對於二維表,都不適合。
為什麼要轉為一維表
二維表更符合我們日常的閱讀習慣,信息更濃縮,適合展示分析結果,但作為源數據進行數據分析時,就需要一維表。
一維表的每一列是一個獨立的維度,列名或者欄位名就是數據分析的基礎,比如利用列名與其他表建立關係;編寫DAX時直接使用列名;數據可視化時直接把欄位拖入到某個屬性框中等。
那麼如何將二維表和一維表相互轉換呢?
一維表變成二維表很簡單,在Excel中都可以輕鬆做到,就是利用數據透視表,在PowerQuery中也有同樣的透視功能,這裡不再細說,下面主要介紹一下如何將二維錶轉換成一維表。
二維錶轉為一維表的方法
利用PowerQuery,二維錶轉為一維表十分方便,以Excel中常見的幾種結構的表格為例,看看都是如何操作的。
第一種情形
簡單的二維表,如本文的第一張圖表,直接使用逆透視功能,就可以快速轉為一維表,
可以選擇需要透視的列進行「逆透視」,也可以選擇不需要透視的列,然後點擊「逆透視其他列」來完成。
提示:這些操作,生成的最終一維表的列名,需要自己手動更改一下,下同。
第二種情形
行標題帶有層級結構的二維表,如下,
這種結構很清晰,但做數據分析最讓人頭疼的就是合併單元格,不過在PowerQuery中處理也並不困難,只是多了一些步驟。
將上表導入到PowerQuery編輯器後,先把年度列向下填充,將年度數據補齊,然後再進行逆透視,
第三種情形
列標題帶有層級結構的二維表,如下,
這種表格可以先轉置,轉置以後,就是第二種情形,然後再進行逆透視就可以了,
第四種情形
行標題和列標題均帶有層次結構,如下圖,
看起來更複雜是不是,其實同樣是上述幾個步驟靈活組合,
a. 將年度列向下填充,補齊數據
b. 將年度列和季度列合併,生成年度季度列,這種結構就變成第三種情形,
c. 轉置表、把第一列向下填充,並提升標題,就變成了很簡單的結構,也就是第二種情形,
d. 選中前兩列,逆透視其他列,就變成了一維表
e. 為了和源數據維度一致,將年度季度列進行分列
至此就得到了最終的一維表,看起來步驟很多,其實熟練掌握了也就分分鐘的事。
總結
以上幾種情形,基本包含了各種複雜結構的表格,如果有更複雜的表格,比如更多層級的行、列名,也同樣可以按照以上的套路通過來分步完成:
1,將行層級先合併,轉換成第三種情形
2,轉置,變成第二種情形
3,逆透視
步驟中間熟練掌握填充、提升標題、分列等操作,關於轉成一維表的問題,就沒有什麼表格能難倒你的了。
關於一維表的用處,不僅在PowerBI中,使用其他工具做數據分析時,同樣需要這樣的規範數據源。
下次再遇到二維錶轉一維表的問題,直接使用PowerQuery就行了。
/推薦閱讀/
01 PowerBI 表格總計錯誤的終極解決方案
02 高效使用Power BI的15條建議
03 利用API,輕鬆獲取任意地點的經緯度等詳細信息
長按下方圖片加入「PowerBI星球」,和我一起,精進技能。