在 LuckyTemplates 中創建一個永久更新的實踐數據集

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我將向您展示如何在每次刷新時保持您的練習數據集更新您可以在本博客底部觀看本教程的完整視頻。

如果你真的想提高你的 DAX 技能,方法就是使用它並將其付諸實踐。為此,您需要一個練習數據集來幫助您想像和處理可能的現實生活場景。

練習數據集的問題是數據通常是靜態的。為了有效地練習,您需要給人一種數據是實時的印象。

目錄

為實踐數據集設置文件路徑

對於示例數據,我有一個 Excel 文件,其中包含2014 年、2015 年和 2016 年的銷售數據。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

這是我需要更新的數據。

文檔位置可以在我的快速訪問工具欄上找到。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我需要它來為我的文件路徑設置一個參數。所以我要復制那個文檔位置。

右側有一個快速訪問工具欄的訪問點。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

一旦我按下它,我就會看到這個屏幕。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

所以我會選擇All Commands然後選擇Document Location。將其添加到快速訪問工具欄,然後按確定。

現在,我將進入Power Query以創建將保存我的文件路徑的參數。此步驟很重要,因為它允許在另一個用戶更改文件位置時恢復模型內的所有查詢。

所以我將創建一個新參數

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我將調用它FileLocation

在 LuckyTemplates 中創建一個永久更新的實踐數據集

在類型下,我要選擇Text。對於Current Value,我將粘貼到我之前複製的文檔位置。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我要創建一個新查詢。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

然後我將選擇我將用作練習數據集的示例數據。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

由於我有 2014 年、2015 年和 2016 年的銷售數據,因此這裡會出現許多不同的表格。我只需要選擇第一個,即Sales_2014

在 LuckyTemplates 中創建一個永久更新的實踐數據集

現在我已經選擇了 Sales_2014 數據,是時候將該硬編碼文件位置更改為動態文件位置了

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我將進入高級編輯器選擇與文件位置相關的所有內容

在 LuckyTemplates 中創建一個永久更新的實踐數據集

然後,我會將其更改為我之前創建的 FileLocation 參數

在 LuckyTemplates 中創建一個永久更新的實踐數據集

然後我將按完成將這些更改鎖定到 Sales_2014 查詢中。

創建數據準備文件夾

查看Sales_2014 查詢的應用步驟,我將單擊導航步驟。這表明它引用了步驟。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

它還引用顯示為Table 的Sales_2014。它還表明它正在從數據列中提取數據。

現在,讓我看看接下來的源代碼步驟。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

源步驟向我顯示了駐留在我的 Excel 文件中的所有內容。如果我檢查這些坐標,我會看到Sales_2014,並且在 Kind 下,它顯示Table

在 LuckyTemplates 中創建一個永久更新的實踐數據集

當我查找數據列時,它顯示了提取的Table對象。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

所以我可以復制這個查詢來得到 2015 年的數據。為此,我只需右鍵單擊 Sales_2014,然後選擇複製。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

然後,我將退回到導航步驟。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我會將那一年從 2014 年更改為 2015 年。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我還將在屬性下重命名它。我將其命名為 Sales_2015。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

這次,我將復制 Sales_2015。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

然後我將退回到導航步驟並將年份更改為 2016 年。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我現在有了完整的銷售數據。但是這些查詢不應加載到我的模型中。我只需要右鍵單擊它們中的每一個並取消選擇 Enable load

在 LuckyTemplates 中創建一個永久更新的實踐數據集

現在,我將選擇所有查詢並將它們放在一個文件夾中以使事情更有條理。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我將此文件夾稱為Data Prep

在 LuckyTemplates 中創建一個永久更新的實踐數據集

獲得一天的補償

數據準備下的示例數據將是靜態的。這意味著第一個和最後一個日期永遠不會改變

在 LuckyTemplates 中創建一個永久更新的實踐數據集

因此,我將進入Sales_2016並按降序對訂單日期列進行排序,以從該數據集中獲取最後日期

在 LuckyTemplates 中創建一個永久更新的實踐數據集

該數據集中的最後日期是2016 年 12 月 31 日

在 LuckyTemplates 中創建一個永久更新的實踐數據集

現在,我將創建一個新查詢。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

然後,我將檢查從數據集中的最後日期到今天的Day Offset是多少。這意味著我需要找出今天是幾號。為此,我將使用函數DateTime.FixedLocalNow。這將為我提供我正在使用的機器的日期和時間。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

但我真的不需要這裡的時間部分。 我只需要這個值的日期部分。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

所以,我將使用 Date.From 提取日期

在 LuckyTemplates 中創建一個永久更新的實踐數據集

然後從該值中減去數據集中的最後日期。由於數據是靜態的,我可以使用固有的日期值。所以這是#date,然後參考 2016 年 12 月 31 日。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

現在,我需要從這個差異中提取數字。所以我將添加Number.From並用括號將其關閉。然後,按回車。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我將其重命名為DayOffset

在 LuckyTemplates 中創建一個永久更新的實踐數據集

設置動態日期範圍

我的日期表還需要動態日期範圍。我將首先右鍵單擊 Data Prep 文件夾並創建一個新的空白查詢。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

然後,我將處理日期表的開始日期。

我總是希望一年中的第一天作為我的開始日期。所以我將放置等號並使用函數Date.StartOfYear

在 LuckyTemplates 中創建一個永久更新的實踐數據集

因為我需要給它一個值,所以我將使用 Date.AddDays 來抵消它

在 LuckyTemplates 中創建一個永久更新的實踐數據集

然後我將再次使用固有日期值使用我的數據集上的第一個日期,即 2014 年 6 月 1 日。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我還需要我在 DayOffset 中計算的天數,所以我要添加它。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

一旦我按下回車鍵,它就會給我January 1, 2017。這將是我日期表中的第一個日期。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我將其重命名為fxStartDate

在 LuckyTemplates 中創建一個永久更新的實踐數據集

現在,我可以設置我的結束日期。我將復制我在開始日期使用的語法。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我將創建一個新的空白查詢。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

然後將其重命名為fxEndDate

在 LuckyTemplates 中創建一個永久更新的實踐數據集

然後我將粘貼 Start Date 中的語法

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我將把它改為 EndOfYear,而不是StartOfYear

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我還將使用我的數據集的最後日期,即12 月 31 日

在 LuckyTemplates 中創建一個永久更新的實踐數據集

當我按回車鍵時,它返回December 31st, 2020

在 LuckyTemplates 中創建一個永久更新的實踐數據集

創建單個銷售表

我要將這 3 個表合併為一個 Sales 表。為此,我將創建一個新查詢。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我將其稱為我的銷售表。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

然後,我會將Sales_2014、Sales_2015 和 Sales_2016 合併到一個表中。

我知道您可以通過功能區執行此操作,但也可以選擇直接在公式欄中執行此操作。我會選擇第二個選項。

我將從Table.Combine開始。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

Table.Combine 需要一個表列表。所以我將添加一個列表初始值設定項,也就是那些大括號,然後我將命名 3 個查詢。之後按回車。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

轉換訂單日期列

現在我已經擁有了我需要的大部分元素,我將生成語法的一個關鍵部分,稍後我將使用它來完成我的動態練習數據集。

我將從選擇兩個數字列開始。我可以使用Delivery Region IndexProduct Description Index。在您這邊,您可以按下 Shift 或 Ctrl 來選擇兩列。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

Transform選項卡下,我將選擇Absolute Value

在 LuckyTemplates 中創建一個永久更新的實踐數據集

如果我查看公式欄,它將顯示Table.TransformColumns函數。這是最終解決方案的關鍵。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

該函數採用轉換列表的列表。如您所見,這裡有 2 個列表相互嵌套。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

它將列名稱引用為文本。這就是為什麼在第 1 組此處引用了交付區域指數。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

然後它添加了一個轉換步驟

在 LuckyTemplates 中創建一個永久更新的實踐數據集

它在產品描述索引列的單獨列表中執行相同的操作。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

現在,我將前往高級編輯器

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我不要絕對值。所以我要做的第一件事就是抵消我的日期。我將創建一個名為fxUpdateDate的函數來執行此操作。它將使用當前日期,我將其輸入為cDate

在 LuckyTemplates 中創建一個永久更新的實踐數據集

然後,我將再次使用Date.AddDays函數,它也使用cDate。我還將使用我之前創建的DayOffset

在 LuckyTemplates 中創建一個永久更新的實踐數據集

fxUpdateDate所做的只是獲取日期。因此,如果我將其傳遞給Table.TransformColumns函數,它將開始檢查每個記錄的日期。

因此,如果我在這里處理第一行,例如,它將考慮 2014 年 6 月 1 日作為 cDate。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

每次調用該函數時,它都會添加我創建的 DayOffset。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

現在,Table.Transform 步驟顯示在Calculated Absolute Value中。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我將首先重命名它並將其稱為 UpdateOrderDate

在 LuckyTemplates 中創建一個永久更新的實踐數據集

UpdateOrderDate步驟涉及我的Table.TransformColumns,它等於源。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

列出的初始表是Delivery Region Index。但沒有必要改變它。所以我要將引用的第一列更改為OrderDate列。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

它還在這裡說轉換將是絕對值。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

因為我不想要那個,所以我要把它改成fxUpdateDate

在 LuckyTemplates 中創建一個永久更新的實踐數據集

類型也不會是絕對值,所以我也需要更改這部分。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我會把它改成約會

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我只需要一個轉換,所以我將刪除第二個列表以及該組附帶的轉換步驟……

在 LuckyTemplates 中創建一個永久更新的實踐數據集

…所以這只是 OrderDate 列的一個轉換。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

因為我重命名了 Calculated Absolute Value 的步驟,所以我也需要在我的 in 語句中更改它。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

現在它也顯示UpdateOrderDate 。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

因此,OrderDate 列現在將為 Table.TransformColumns 中的每條記錄調用此函數

查看訂單日期列,我可以看到它已更新。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

如果我按降序排序,它會顯示2020 年 7 月 7 日為當前日期。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

所以我將刪除排序步驟,因為我真的不需要它。我這樣做只是為了檢查當前日期是否也已更新。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

使用 M 代碼應用時間智能

我的模型都是關於銷售數據的。因為我要做一些時間智能,所以我需要一個日期表。

所以我會去。在M 代碼展示中,我將進入擴展日期表主題。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

向上滾動到頁面的最頂部並複制整個代碼

在 LuckyTemplates 中創建一個永久更新的實踐數據集

回到我的模型,我將創建一個新的空白查詢並將該 M 代碼粘貼到. 按完成。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我將該查詢重命名為fxCalendar

在 LuckyTemplates 中創建一個永久更新的實踐數據集

對於我的參數,我將使用1 月 1 日作為 StartDate,使用 1 月 31 日作為 EndDate。然後按調用。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

表格出現後,我將其重命名為Dates

在 LuckyTemplates 中創建一個永久更新的實踐數據集

請記住,我已經通過查看示例數據集上的第一個日期並用我的 DayOffset 抵消它來創建開始和結束日期。所以這裡的 fxStartDate 顯示為 January 1st, 2017

在 LuckyTemplates 中創建一個永久更新的實踐數據集

至於 fxEndDate,它返回 2020 年 12 月 31 日

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我可以返回Dates表並在那裡更新該 Source 步驟。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

它按照調用順序列出參數。第一個參數應顯示開始日期

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我要把它改成fxStartDate

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我還將替換第二個參數。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我將放入fxEndDate

在 LuckyTemplates 中創建一個永久更新的實踐數據集

一旦我按下 Enter,轉換就完成了。我現在有一個完全最新的練習數據集,它將始終保持最新狀態。

在 LuckyTemplates 中創建一個永久更新的實踐數據集

我只需單擊“關閉並應用”即可鎖定所有這些步驟。

在 LuckyTemplates 中創建一個永久更新的實踐數據集


在 LuckyTemplates 中創建動態日期查詢表:查詢編輯器教程使用擴展日期表中的偏移函數
為 Power Query 日期表設置動態開始日期和結束日期

結論

正如我之前提到的,擁有自己的動態練習數據集肯定會提升您在 LuckyTemplates 方面的水平。它允許您在假裝您正在處理真實場景的同時練習您的技能和知識。

如果您想詳細了解如何使開始日期和結束日期動態化,尤其是對於您正在使用的練習數據集,您可以查看 LuckyTemplates 論壇。那裡有很多關於這個以及其他相關主題的對話。您甚至可能會找到其他適合您的方法。

一切順利,

梅麗莎


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

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

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

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

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

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

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

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

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

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

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

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

LuckyTemplates 篩選上下文簡介

LuckyTemplates 篩選上下文簡介

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

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。

DAX Studio 中數據緩存的物化想法

DAX Studio 中數據緩存的物化想法

本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。

使用 LuckyTemplates 進行業務報告

使用 LuckyTemplates 進行業務報告

如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的