這個處理資料重新整理錯誤的小技巧,你應該會用到

行有餘力,則以學文。

這個處理資料重新整理錯誤的小技巧,你應該會用到

你重新整理 Excel 或者 Power BI 報表模型的時候,一定也遇到過這樣的錯誤:

這個處理資料重新整理錯誤的小技巧,你應該會用到

其實這裡的錯誤提示也很明顯。那就是你的資料模型裡找不到訂單日期這一列。

你建立模型的時候也許是存在這一列的,但是由於資料不斷在更新,訂單日期列在新的資料來源中也許叫日期、Date等新的列名。這種情況下就會出現重新整理錯誤。

這個處理資料重新整理錯誤的小技巧,你應該會用到

出現錯誤的查詢會出現黃色的感嘆號標識

這個問題的解決辦法也很簡單,單擊轉換資料進入 PQ 編輯器,在編輯器中根據錯誤提示定位錯誤的查詢,然後將使用了該列名的查詢步驟刪掉就行了。

示例中使用了列名的步驟是

「更改的型別

」,這是 PQ 自動檢測資料型別,並新增的更改資料型別的步驟。

這個處理資料重新整理錯誤的小技巧,你應該會用到

雖然大部分時候 PQ 對資料型別的檢測都是正確的。但是我還是建議大家將這個功能關閉,因為大部分時候我們的模型錯誤都是來自於對固定列名的引用。

這個處理資料重新整理錯誤的小技巧,你應該會用到

檔案>選項

>資料載入,勾選從不檢測未結構化的列型別和標題

勾選以上選項,資料載入到 PQ 後,就不會每次都自動檢測並更改資料型別了。

無論你是選擇直接刪除

「更改的型別

」,還是關閉自動檢測資料型別,這只是緩兵之計,因為 Power BI 的資料必須有正確的資料型別才能順利計算。

我們可以藉助 M 函式來更靈活地處理這種問題。

我們都知道 Power Query 可以將使用者單擊介面功能的步驟轉換成 M 程式碼,這是 PQ 實現資料處理流程自動化的前提。

但是它在轉換時更傾向於選擇固定的名字而不是相對的位置,

比如更改資料型別時,它轉換成的 M 程式碼是對錶中列名的引用,而不是列位置的引用。

「更改的型別

步驟中的程式碼如下:

這個處理資料重新整理錯誤的小技巧,你應該會用到

既然訂單日期這一列,有可能會存在不同的列名,那麼我們可以考慮將步驟中的對訂單日期列的名字的固定引用,改成是對其位置的引用。

(這裡存在一個假設條件:訂單日期列,列名名稱會變但是保持在第一列)

接下來我們就來看看如何透過 M 程式碼來獲取列的位置。

點選

「提升的標題

」回到出現錯誤的上一步驟。

這個處理資料重新整理錯誤的小技巧,你應該會用到

在 PQ 中每一個步驟都可以透過對步驟名的引用來獲取該步驟的結果。單擊編輯欄中的

fx,在查詢中插入新的步驟

這個處理資料重新整理錯誤的小技巧,你應該會用到

公式編輯欄中輸入

「= 提升的標題

」標題時,返回的結果就是上一步驟的表。

這個處理資料重新整理錯誤的小技巧,你應該會用到

在公式

「= 提升的標題

前新增 M 函式

= Table。ColumnNames(提升的標題)

,該函式返回的是表的每一列的名字,並且返回結果是列表。

這個處理資料重新整理錯誤的小技巧,你應該會用到

Table。ColumnNames(table

as

table)

as

list

進一步想要得到列表的第一個取值,輸入

= Table。ColumnNames(提升的標題){0}

這個處理資料重新整理錯誤的小技巧,你應該會用到

「更改的型別

中 對訂單日期名稱的絕對引用改成是上面的 M 程式碼就實現了對第一列的引用了。

這時候只要你的第一列儲存的是日期列,無論列名稱是日期、訂單日期、date、Date 或者 order date,重新整理時都不會提示找不到列的錯誤了。

這個處理資料重新整理錯誤的小技巧,你應該會用到

PQ 在將使用者操作轉換成 M 程式碼時候,傾向於使用絕對引用,大部分時候,這個特性是導致資料重新整理錯誤的原因。

我們將 PQ 對列名、表名或者步驟名的引用,稱為

絕對引用

,而對位列位置、表位置的引用稱為

相對引用

。絕對引用缺乏靈活性,容易導致錯誤,而相對引用可以實現更靈活和穩定的資料處理。

這個處理資料重新整理錯誤的小技巧,你應該會用到

這個處理資料重新整理錯誤的小技巧,你應該會用到

Power BI人力資源分析:視覺化圖表設計

這個處理資料重新整理錯誤的小技巧,你應該會用到

這個神奇的網站,可以一鍵下載很多好看的模板

這個處理資料重新整理錯誤的小技巧,你應該會用到

這些資料視覺化工具,你用過哪個