電源查詢電源 BI | 根據日期字段創建新記錄

電源查詢電源 BI | 根據日期字段創建新記錄

在本教程中,我想展示幾種方法,介紹如何使用 Power Query LuckyTemplates 基於日期字段創建新記錄。您可以在本博客底部觀看本教程的完整視頻。

我將展示兩種方法來實現這一目標。這個例子來自的一個成員,他發布了一個帶有日期和入住晚數的問題。該成員想知道如何使用 Power Query 為一個人在汽車旅館住宿的每個晚上創建新記錄。

電源查詢電源 BI |  根據日期字段創建新記錄

目錄

方法一:在 Power Query LuckyTemplates 中使用 Number.From 函數

如果您熟悉 Excel 中的日期計算,您可能會知道每一天都可以轉換為一個整數,您也可以在此處執行此操作以獲得每個日期的等效數字。我們可以使用Number.From函數。

電源查詢電源 BI |  根據日期字段創建新記錄

我將通過右鍵單擊它並選擇Reference來引用我的源查詢。然後通過那個迷你表,去Add Custom Column。現在讓我們輸入函數 Number.From 並指向包含日期的第一個實際列。不要忘記右括號並按OK

電源查詢電源 BI |  根據日期字段創建新記錄

所以在這裡我們看到日期值的整數表示。因為它是一個數字,所以我們可以加減天數。目標是為每個連續住宿的夜晚創建一個日期

如果我們檢查第一條記錄,那個人只住了一個晚上,所以我們只需要返回第一個實際日期值。然後第二個記錄,那個人連續住了兩晚。我們必須返回 12 月 13 日和 14 日的值。如果我們將Nights列中的值添加到我們在Custom列中的值,然後減去一個,我們就可以實現這一點,因為我們已經超過了初始值。

電源查詢電源 BI |  根據日期字段創建新記錄

因此,讓我們轉到公式欄並擴展我們目前創建的邏輯。我們必須兩次使用該數值作為日期,所以我將把它存儲在一個變量中。我將添加let表達式,然後為我的變量添加一個名稱。我稱之為FirstNight。然後,我們可以添加in子句。

可以使用一組列表初始值設定項(大括號)將列表擴展到新行。我們可以創建一個包含日期的列表。我們將從 FirstNight 變量開始,直到 FirstNight 變量,再加上我們的夜晚數。使用一組方括號,指向 Nights 列,然後減去一個。我將按OK,我們現在有一個列表。

電源查詢電源 BI |  根據日期字段創建新記錄

當我單擊空白區域的一側時,我們可以在下方的第二個預覽窗格中看到該嵌套列表的內容。

現在有了這些側向箭頭,我們可以擴展到新行。然後,我可以將數據類型設置為日期。所以你可以看到我們現在有了日期。對於第一個記錄,我們將返回與第一個實際值相同的值。對於第二個記錄,我們有一個是 13 日的記錄,另一個是 12 月 14 日的記錄。

電源查詢電源 BI |  根據日期字段創建新記錄

方法二:在 Power Query LuckyTemplates 中使用 M Function List.Dates

對於第二種方法,我們可以使用名為List.Dates的M 函數。我將引用我的源查詢,並再次使用該迷你表圖標添加一個自定義列。

我將添加該函數 List.Date,然後將其放在左括號中。首先,它需要一個起始值作為日期,它位於我們包含日期值的First Actual列中。所以,我們選擇那個然後放一個逗號。接下來,是作為數字的計數,這意味著您要返回該列表的日期數。我們可以看到它在Nights列中。

接下來,是作為持續時間的步驟。將其視為一個間隔。現在我們正在尋找連續的夜晚,我們想要一個連續的日期列表。一天的數字等價於 1,因此我將從one 開始輸入持續時間,然後是右括號,然後按 OK。

電源查詢電源 BI |  根據日期字段創建新記錄

同樣,我們有一個嵌套列表。對於第一個記錄,我們只有一個值,對於第二個記錄,我們有 12 月 13 日和 14 日。

電源查詢電源 BI |  根據日期字段創建新記錄

接下來,我們可以再次將其擴展到新行並將適當的數據類型設置為日期。

電源查詢電源 BI |  根據日期字段創建新記錄

現在,我想指出 List.Dates 函數中的第一個邊界需要日期數據類型。如果我轉到源步驟並將此數據類型更改為日期/時間,它會返回錯誤。那是因為它沒有傳遞日期。我們可以通過進入公式欄並添加Date.From輕鬆解決這個問題。

電源查詢電源 BI |  根據日期字段創建新記錄

我要指出的另一件事是,您還可以創建交替的日期列表。例如,您需要做的就是將最後一步參數更改為 2。


記錄值——Power Query 中的結構化值
從 Power Query 中的記錄和列表中提取
值 使用 Power Query 公式為每個日期創建值

結論

在此博客中,我演示了兩種基於日期字段創建新記錄的方法。第一種是使用列表初始值設定項生成日期列表,第二種是使用函數 List.Dates。

希望本教程對您有所幫助。您可以在下面觀看完整的視頻教程,並查看下面的鏈接以獲取更多相關內容。

一切順利!

梅麗莎


什麼是 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 網關?所有你必須知道的