Power Query 文件合併可能遇到的問題彙總

2019年還剩下最後幾天,又到了一年一度的總結時刻,表哥表姐們又要忙著整理數據,出報表,做PPT,做總結的最重要的環節是數據分析,為了使數據有說服力,需要彙總數據,要本年度的數據,也要歷史數據,有比較才更有說服力。

數據整理就是做總結的第一步,我們之前講過很多關於Power Query文件合併的案例,但大多數都是直接給出的正確的操作程序,並沒有提示大家可能遇到的問題,今天我們就從問題出發,來總結一合併文件可能遇到的坑。

我們都知道Power Query合併文件也好,VB合併文件也好,最理想的文件標準:

  • 沒有合併單元格;
  • 單行表頭;
  • 各列的順序一致;

但是這三點在實際應用中,卻是經常會遇到的,我們先從單文件多表合併說起:

我們會遇到的第一個問題:多層表頭

多層表頭非常普遍,幾乎隨處可見,給大家舉個例子:

Power Query 文件合併可能遇到的問題彙總

多層表頭的優點是便於閱讀,但是不是存儲數據的標準格式,好在我們使用多層表頭的表格,通常為了便於查看,數據通常是統計數據,數據量不大,處理起來也比較方便。我們其實就是要重新構造一個一行的表頭,為了不漏掉關鍵詞,我們可以直接將兩行合併成一行。

簡單說一下步驟:

第一步轉置表格:

Power Query 文件合併可能遇到的問題彙總

第二步填充第一列空值(第一行):

Power Query 文件合併可能遇到的問題彙總

第三步合併前兩列:

Power Query 文件合併可能遇到的問題彙總

第四步轉置表:

Power Query 文件合併可能遇到的問題彙總

最後提升標題行:

Power Query 文件合併可能遇到的問題彙總

為了方便我們按照這個程序處理多個表格,我們要根據上面的處理步驟,創建一個自定義函數。

Power Query 文件合併可能遇到的問題彙總

然後我們在單文件合併數據時引用這個函數來處理表格,就可以了:

Power Query 文件合併可能遇到的問題彙總

然後展開表格就得到合併的數據了。

上面這個表頭處理,其實也包含了另一個問題,就是合併單元格,Power Query中合併單元格並不是不能處理,就是會增加數據清洗的難度,對與確定數據關係的合併單元格,可以使用填充功能,來填充打開合併形成的null。

可能遇到的第二個問題就是列的順序不一致

我們故意顛倒了一下產品和單價的位置:

Power Query 文件合併可能遇到的問題彙總

如果我們帶著表頭合併,就會得到下面的結果:

Power Query 文件合併可能遇到的問題彙總

兩個表格的產品單價是錯位的。

如果我們用上一個問題的方法處理表頭,只要表頭名稱完全一致,Power Query會很智能的自動糾正這個錯位的問題:

Power Query 文件合併可能遇到的問題彙總

雖然在表格預覽中看起來仍然是錯位的排列,但是當我們展開表格,順序就一致了。

Power Query 文件合併可能遇到的問題彙總

所以對每個表格的預處理是必要的,直接帶表頭合併,需要完全確定各個表格的數據排列順序一致,才使用的辦法。

可能遇到的第三個問題工作表名稱不一致的問題

這個問題是多文件多表合併時會遇到的問題,我們使用Power Query從文件夾合併文件時,就可能遇到這樣的問題:

Power Query 文件合併可能遇到的問題彙總

當出現上面這樣的情況,我們在做從文件夾合併多個文件時,就會出錯:

Power Query 文件合併可能遇到的問題彙總

多數表格的sheet名稱是“表1”,只有本溪公司的sheet名稱是“1月”,就是因為sheet名稱不一致,導致不能取得本溪公司的數據。

出現這個問題也不要緊,如果只有一個文件不一致,就直接去到這個文件中把sheet名稱改成一致的,如果各個文件名稱都不一致,但是sheet表的位置都是第一個表,那麼我們就要到示例文件中去修改一下:

Power Query 文件合併可能遇到的問題彙總

然後我們在去查看一下:

Power Query 文件合併可能遇到的問題彙總

已經能夠正確獲得數據。

值得注意的是,不可見字符,我就遇到過sheet名稱中含有空格,因為表的位置不是固定的,只能通過sheet名稱合併文件,結果就因為一個空格,導致合併失敗。在Power Query多文件多表合併中,和VBA一樣,可以通過sheet的名稱來合併,也可以通過sheet的位置來合併。

就說這麼多吧,對Power Query越熟悉,處理意外情況的方法就會越多,不管遇到什麼問題,只要認真研究總能找到解決方法。


分享到:


相關文章: