什麼是 Python 中的自我:真實世界的例子
什麼是 Python 中的自我:真實世界的例子
我將向您展示如何將日期表的 M 代碼轉換為表查詢。您可以在本博客底部觀看本教程的完整視頻。
我認為本教程的難度級別為中等,因為如果您有任何使用 M 代碼的經驗,那麼您將很容易跟進。如果您沒有任何相關經驗,我建議您先查看 M 代碼,以便您更容易掌握這裡介紹的概念。
目錄
調用函數查詢和日期表查詢
這是日期表查詢和調用的函數查詢。
如果您查看右側的 Applied Steps 窗格,就會發現只有一個步驟。它顯示了該查詢的來源。
所以,如果您想為這個日期表開發 M 代碼,您必須在函數和表查詢之間切換,以查看您應用的任何更改。
這意味著處理由您的任何更改引起的錯誤會更加複雜。它會導致表查詢本身出錯,然後您必須搜索代碼行來修復錯誤。
下一頁顯示返回表而不是函數的日期查詢。
查看右側的 Applied Steps,您會看到這次列出了多個步驟。
這意味著當您開發日期表 M 代碼時,您將立即在該表查詢中看到更改的結果。
更重要的是,每當您的更改導致錯誤時,您都可以輕鬆識別導致錯誤的步驟。這樣可以更輕鬆地解決問題。
應用 M 代碼
日期表M代碼可以在LuckyTemplates論壇找到。它位於 M 代碼展示中的擴展數據表 Power Query M 函數主題下。
M 代碼一直在頂部。我將突出顯示整個代碼並複制它。
然後,我將創建一個新的空白查詢。
我將打開我的高級編輯器並將該代碼粘貼進去。
因為我看到沒有檢測到錯誤,所以我將單擊“完成”。
讓我重命名它並將其稱為 Dates。
此查詢返回一個函數,但我想要的是一個表。
為了進行必要的更改,我將返回高級編輯器。
將函數轉換為表
為了使它返回一個表而不是一個函數,我需要在高級編輯器中對 M 代碼進行一些更改。
查看 M 代碼,根據 let 語句的數量,我很容易看出至少有兩種環境。
每個 let 語句都有自己的 in 子句,可以在底部找到。
您可能認為只刪除最後一個 in 子句以將其轉換為表會更容易。
但我不會那樣做。相反,我將通過在最後一個 in 子句前添加兩個斜杠來對此進行註釋。
我還將為第一個 let 語句執行此操作。這使它不活躍。
在內部 let 語句下面,我將創建一個部分來聲明我的參數,因為我仍然需要將這些參數傳遞給此代碼。
我將標記應該在何處聲明這些變量。
現在我要從外部 let 語句複製第一個變量並將其粘貼到空間中。
在我的數據集中,歷史數據不會追溯到 2017 年。因此,要將值傳遞給 StartDate 變量,我可以使用固有日期。我將輸入 1 月 1 日,然後用逗號結束該行。
然後我將復制並粘貼下一個變量,即 EndDate。
我知道 EndDate 需要預測。這就是為什麼我希望這個 EndDate 始終是明年年底。
我的 M 代碼中已經有一個 CurrentDate 變量,所以我將引用它。
同樣,我將使用固有日期。我將提取 Date.Year 並使用 CurrentDate 作為年份值 +1。我還希望日期是 12 月 31 日。
同樣,我將以逗號結束該行。
下一個變量是一個名為 FYStartMonth 的可選參數。
所以我只是要復制那個名字並粘貼進去。
請注意,在我剛剛粘貼的變量下方的 FYStartMonth 下方出現了紅色下劃線。
這是因為他們的名字匹配。當它們處於不同的環境中時,這不是問題。但是單個環境中的變量名必須是唯一的。這意味著我需要更改剛剛粘貼的新變量的名稱。
我不將其稱為 FYStartMonth,而是將其稱為 FYStartMonthNum。
我不打算為這個變量賦值,所以我只是將 null。
因為我更改了變量的名稱,所以我也必須在引用該參數的任何地方更改名稱。
回到變量,我將通過在末尾添加一個逗號來關閉該行。
下一個參數是可選的假期列表。我也將復制並粘貼它,並將其聲明為 null。
WDStartNum 也是如此。我將復制並粘貼它,然後將其聲明為 null。
為了標記日期表代碼的開始位置,我將在此處添加另一條評論。
一旦我按下 Done,您將看到查詢現在返回正確的類型。
我現在有一個表而不是一個函數。
在 Applied Steps 窗格中,我還可以看到構成查詢的所有步驟。
如果我想對日期表進行任何更改,使用功能區修改或添加步驟非常簡單。對於我所做的每項更改,我也會立即在查詢中看到結果。
將表查詢轉回函數
假設我想將日期表查詢轉回一個函數。只需調整 M 代碼中的一些內容即可撤銷我之前所做的更改。
我將返回高級編輯器並刪除外部 let 語句之前的斜杠。
接下來,我將刪除 in 語句之前的斜杠。
然後我將註釋掉我之前添加的變量塊。所以我會在這裡添加一個斜杠和一個星號。
然後是變量塊後的星號和斜線。
還記得我之前因為 FYStartMonthNum 更改了這行代碼嗎?
我要復制那行代碼。然後,我將添加一個新行並將其粘貼進去。
我將刪除第一個(這是我之前對變量名稱進行更改的地方)。
然後在第二個上,我將找到編輯後的變量名稱。
我會把它們變回 FYStartMonth。
一旦我按下完成,表查詢將再次變成一個函數。
在 LuckyTemplates 中創建動態日期查詢表:查詢編輯器教程
在 LuckyTemplates 中創建日期表 為
Power Query 日期表設置動態開始日期和結束日期
結論
我再次向您展示了 M 代碼是多麼方便,尤其是在我們將函數轉換為表查詢的情況下,反之亦然。只要你在 LuckyTemplates 論壇中獲得了我們的 M 代碼,你就可以在以後的這些場景中使用它。
上的 M 代碼展示櫃中瀏覽您可以在其他情況下使用的其他 M 代碼。這是一個協作社區,因此您可以閱讀來自我們的專家和成員的其他想法的評論。
一切順利,
梅麗莎
***** Learning LuckyTemplates?*****
什麼是 Python 中的自我:真實世界的例子
您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。
在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。
本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。
在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。
我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。
了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。
本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。
如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。
什麼是 LuckyTemplates 網關?所有你必須知道的