Power Query M語言教程和掌握

Power Query M語言教程和掌握

本教程將討論如何成功實施一段M代碼並解決Power Query 編輯器中的常見錯誤。您還將學習如何在 Power Query 中有效地練習和掌握M語言。

目錄

Power Query M 語言實現

執行一段M代碼的成功取決於您解決遇到的任何問題的能力。在本教程中,您將了解在嘗試從另一個 PBIX 文件傳輸M代碼時或在嘗試實施您在論壇上找到的一段M代碼時最常見的錯誤。

但首先,如果您有 Power Query 問題,請務必隨 PBIX 文件一起提供數據,因為解決問題可能需要更改數據設置。未能提供數據將導致試圖為您提供支持的任何人出現數據源錯誤,因為他們無權訪問源。

有一種方法可以提供一個單獨的文件,但它僅適用於列和行中的值不超過 3000 個的樣本。因此,如果您的表格沒有超過 3000 個單元格的限制,您可以將其完整復制並使用“輸入數據”選項將其粘貼到“創建表格”窗口中。數據將以二進制形式傳輸並嵌入到文件中。

Power Query M語言教程和掌握

Power Query M語言中的文件位置參數

另一種幫助為您提供支持的人的方法是合併文件位置參數。這樣當他們更新文件時,其中的所有查詢都將被恢復。為了證明這一點,請遵循以下四個步驟。

首先,轉到 Windows 資源管理器並複製文件路徑。

Power Query M語言教程和掌握

其次,返回Power Query 編輯器並選擇“管理參數”。接下來,選擇 New Parameter 並為參數命名。

Power Query M語言教程和掌握

第三,使用不帶空格或特殊字符的名稱,以避免在引用參數時使用引號。將類型設置為文本,將建議值設置為值列表。當您通過論壇傳遞文件時,您可以從文件列表中選擇您的位置。

Power Query M語言教程和掌握

最後,打開 Advanced Editor 窗口並將硬編碼文件路徑替換為您的參數名稱。

Power Query M語言教程和掌握

Power Query M語言常見錯誤

1.循環引用

當所選查詢的輸出傳遞給查詢中某個步驟的函數參數時,會出現以下錯誤表達式。在此示例中,您可以看到查詢名稱在其中一個步驟中傳遞給了Table.AddColumn函數。

Power Query M語言教程和掌握

第一個參數需要一個表類型。在大多數情況下,您會發現它引用了代碼中的上一步。可以在位於預覽窗格右側的應用步驟窗格中找到上一步。

不需要引用上一步;您可以將另一個表引用傳遞給該函數。因此,在源文件中,在 Applied Steps 窗格中查找步驟名稱,以查看傳遞給函數的表的形狀。這可以幫助您將步驟轉換為您自己的文件。

2.無法識別的名字

當傳遞給函數的表參數的名稱不存在或拼寫錯誤時,會發生此表達式錯誤。

Power Query M語言教程和掌握

請記住,Power Query區分大小寫。在大多數情況下,它將引用上一步,您可以在應用步驟窗格中查找該步驟。但話又說回來,這不是必需的。

在對此類錯誤進行故障排除時,請查看傳遞給源文件中函數的表格形狀,並將其與您自己的文件進行比較。另外,確保步驟沒有被重命名。

3. 文本字符串

此表達式錯誤是一個示例,其中傳遞給函數的表參數實際上是作為文本字符串傳遞的。

Power Query M語言教程和掌握

包含空格或特殊字符的步驟名稱需要在前面加上帶引號的哈希符號或井號。名稱應包含在一組雙引號中。複製和粘貼步驟名稱時,請始終確保選擇全名。

4.類型不匹配錯誤

另一個常見的表達式錯誤是類型不匹配錯誤。

Power Query M語言教程和掌握

當您開始修改M代碼時,這些類型的錯誤往往會出現。在上面的錯誤消息中,日期時間值被傳遞給需要日期數據類型的函數。

此錯誤的解決方案是在將值作為參數傳遞給另一個函數之前轉換值的數據類型。在這種情況下,您可以使用Date.From函數將日期時間值轉換為日期值。

有多種類型的不匹配錯誤。不管怎樣,系統總是會聲明所需的數據類型。

5.名字不存在

另一個常見的表達式錯誤是作為參數傳遞給函數的列引用的名稱不存在或拼寫錯誤。

Power Query M語言教程和掌握

確保列名稱匹配。您也可以嘗試更改列引用。如果列名匹配但您仍然收到錯誤,請查看名稱中是否有空格或特殊字符。

6.令牌逗號

這是關於 Token Comma 的表達式語法錯誤。

Power Query M語言教程和掌握

就像每個函數採用逗號分隔的函數參數列表一樣,let 表達式採用逗號分隔的變量名稱和值列表。要解決此類錯誤,請確保每個步驟(最後一步除外)的末尾都有一個逗號。函數末尾缺少右括號或方括號也可能導致此錯誤。

7. 代幣標識符

The Token Identifier Expected 錯誤通常發生在復制M代碼時,因為引號亂七八糟。

Power Query M語言教程和掌握

要修復錯誤,您必須找到並替換所有引號。您還可以使用名為 Visual Studio Code 的應用程序,您可以在code.visualstudio.com免費下載該應用程序。

Power Query M語言中的其他錯誤

以下是您在執行來自論壇的M代碼時可能遇到的其他錯誤。

  • 預期的令牌文字– 這意味著公式中的下一個內容應該是值、列或函數。
  • Token RightParen Expected – 這意味著右括號或圓括號應該用來結束公式
  • Comma Cannot Precede A RightParen – 這意味著逗號不能直接位於右括號或括號之前。
  • 無效文字– 通常在文本字符串未用雙引號引起來時發生。
  • Token EoF Expected – 當使用無效的關鍵字或函數名稱時發生。

Power Query M語言掌握

掌握需要長期的承諾和投資。這一切都是關於做、獲得靈感、練習和重複。但即使不精通,也可以在較短的時間內取得驚人的進步。

如果您理解並能夠將這些帖子中涵蓋的概念付諸實踐,您就會知道如何在錯誤發生時解決它們。您還可以使用函數參數,例如用動態值替換硬編碼值或編寫自定義M函數。

您需要做的就是開始自己探索。通過允許自己犯錯誤然後找到多種方法來解決錯誤,您將學到最多的東西。這可能很耗時,但也非常有益。一旦你能夠做到這一點,你就可以磨練你的技能。

Power Query M 語言最佳實踐

1.公式欄

關於如何擴展 Power Query 知識的一般最佳做法之一是確保公式欄始終可見。您可以探索描述語言結構的公式語言規範,並在練習一段時間後重新訪問它。

您可以通過在線公式參考進行尋寶遊戲,其中列出了所有功能及其規格。您可以閱讀它們,將示例複製到高級編輯器窗口,然後研究結果。

2.標準庫

另一個最佳實踐是使用#shared關鍵字探索標準庫,因為與在線公式參考相比存在差異。您也可以通過網絡搜索其他內容,例如實際示例或其他人遇到的問題。

這通常被稱為通過谷歌搜索學習。您可以查找函數名稱或操作或轉換類型,但結果在很大程度上取決於您定義搜索條件的程度以及其他人對其案例的描述程度。

3.練習與復習

最重要的是練習並刻意花更多時間在查詢編輯器中。此外,在學習 DAX、數據可視化和 M 代碼所花費的時間之間找到更好的平衡。

您還可以回顧過去的工作並結合這些最佳實踐。參加 LuckyTemplates 的和等活動。通過在論壇上回答問題來加深您的理解並鞏固您的知識。

總會有更多的東西需要學習和發現。因此,設定一個您可以實現的目標,例如每天花 30 分鐘學習。


在查詢編輯器中轉換數據的最佳實踐
數據加載和轉換最佳實踐

結論

在您的代碼中實現M需要練習和掌握。如果變量、函數或任何其他實體使用不當,可能會出現錯誤。一旦M被正確使用,您的數據報告將提供有價值和有洞察力的結果。

梅麗莎


在 Power Automate 中執行直到循環控制

在 Power Automate 中執行直到循環控制

了解有關 Do Until 循環控制如何在 Power Automate 流中工作的基礎過程,並熟悉所需的變量。

使用 Deneb 為 LuckyTemplates 製作自定義視覺對象

使用 Deneb 為 LuckyTemplates 製作自定義視覺對象

受限於 LuckyTemplates 中提供的標準視覺效果?學習使用 Deneb 和 Vega-Lite 為 LuckyTemplates 創建自定義視覺對象,提升您的數據可視化能力。

在 Power Automate Desktop 中將日期添加到文件名

在 Power Automate Desktop 中將日期添加到文件名

在此博客中,您將了解如何使用 Power Automate Desktop 自動將日期添加到文件名的開頭或結尾。

Power Query:如何快速添加註釋

Power Query:如何快速添加註釋

找出幾種不同的方法在 Power Query 中添加註釋,這對於不喜歡記筆記的人非常有幫助。

Power Apps – SharePoint 集成指南

Power Apps – SharePoint 集成指南

在此博客中,您將了解 MS Power Apps 界面的基礎知識並了解 Power Apps-SharePoint 集成的過程。

什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

如何在 R 中保存和加載 RDS 文件

如何在 R 中保存和加載 RDS 文件

您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。

回顧前 N 個工作日——DAX 編碼語言解決方案

回顧前 N 個工作日——DAX 編碼語言解決方案

在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。

LuckyTemplates 篩選上下文簡介

LuckyTemplates 篩選上下文簡介

在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。