使用Power Query之前一定要這樣設(shè)置你的Excel
Power Query堪稱神器,以極低的學(xué)習(xí)成本幫我們在Excel和Power BI中自動化很多數(shù)據(jù)處理工作。但是,稍微不注意,你制作的自動化工具可能就會埋下地雷,在下次刷新數(shù)據(jù)時爆炸。這個地雷是什么?如何排除?
1.埋雷過程
假設(shè)有以下儲存在Excel中的銷售數(shù)據(jù)源,我們將其導(dǎo)入Power Query處理成標(biāo)準(zhǔn)格式。

Excel 2016及以上版本從“數(shù)據(jù)”選項卡導(dǎo)入,Excel 2013從"Power Query"選項卡導(dǎo)入,Power BI Desktop在“主頁”選項卡的“獲取數(shù)據(jù)”導(dǎo)入。

Excel 2016導(dǎo)入界面
在Power Query后臺,只需點擊“將第一行用作標(biāo)題’,表格即變?yōu)橐?guī)范的格式。

"將第一行用作標(biāo)題”動畫
設(shè)置完成后,嘗試刷新,非常順暢。時光飛逝,斗轉(zhuǎn)星移,馬上來到了2月,數(shù)據(jù)源變?yōu)槿缦旅骷?xì):

我們興沖沖的點下了刷新按鈕,結(jié)果發(fā)生了以下提示:


你設(shè)置的自動化數(shù)據(jù)處理工具以失敗而告終。為什么會這樣?
2.地雷解析
還記得我們當(dāng)初只進(jìn)行了“將第一行用作標(biāo)題”這一動作,但是在“應(yīng)用的步驟”這里,可以看到系統(tǒng)自動增加了“更改的類型”這一步驟,這是什么意思呢?

點擊任意一個“更改的類型”,可以看到這么一串代碼:
Table.TransformColumnTypes(提升的標(biāo)題,{{"1月銷售表", type text}, {"Column2", type any}})

顯然,系統(tǒng)自動為我們進(jìn)行了數(shù)據(jù)格式調(diào)整。問題就出現(xiàn)在調(diào)整的過程:系統(tǒng)將“1月銷售表”這列調(diào)整為文本格式,但是2月的時候,“1月銷售表”這一名稱并不存在,因此導(dǎo)致了錯誤。如何解決這一問題?
3.排雷方案
你可以將系統(tǒng)添加的“更改的類型”步驟通通刪掉,這樣就恢復(fù)正常,無論幾月數(shù)據(jù)都不會報錯。

但是,這樣會非常繁瑣,尤其在步驟比較多的情況下,會自動生成很多個“更改的類型”,可不可以直接源頭掐斷,不生成?可以的。
在Power Query后臺,點擊“文件-選項和設(shè)置-查詢選項”,將“類型檢測”勾選去掉。如此設(shè)置后再開始Power Query操作將會徹底排除此種隱患。

Excel路徑,Power BI雷同
所以,最好在任何Power Query操作之前都進(jìn)行如上設(shè)置,避免返工。遺憾的是目前該設(shè)置只支持當(dāng)前工作簿,也就是說你有另外工作任務(wù)需要使用Power Query時要重新設(shè)置。
最后還有一個問題,更改數(shù)據(jù)類型有沒有必要?有。但不是系統(tǒng)幫我們改,而是我們自己改。在各項步驟設(shè)置完成的最后階段,可以統(tǒng)一將所有字段更改為需要的格式。這樣做是為避免后期在求和等運算中出現(xiàn)不必要的麻煩。