什麼是 Python 中的自我:真實世界的例子
什麼是 Python 中的自我:真實世界的例子
在 LuckyTemplates 中檢索上一時期的值是一項常見任務,但檢索前一周的值需要特別注意。在本教程中,我將討論兩種簡單而通用的方法來獲取 LuckyTemplates 的上週值,這些方法可以對您的工具箱進行有用的補充——一種使用 DAX,另一種使用 Power Query。您可以在本博客底部觀看本教程的完整視頻。
本教程來自我從 LuckyTemplates 成員那裡得到的一個問題。該成員詢問確定前一周數字的最簡單方法是什麼。這是我遇到的一個常見問題。這看起來很簡單,但你越深入,就會越意識到有很多東西需要處理。
目錄
LuckyTemplates 中的上週值:問題
如果我們查看周數,我們有 52 週;將其乘以 7 天(一周),得出 364。因此,每年多出一天,然後對於閏年,多出兩天。這額外的一兩天最終會導致很多問題。
讓我們從 Dates 表中創建一個度量。我們將其稱為MAX Week #(數字)。在此分析中,我們使用 LuckyTemplates 擴展日期表;這有ISO Weeknumber,這很有幫助。現在,讓我們取 ISO Weeknumber 的 MAX。
現在,讓我們拿一張表並刪除Year以及我們的MAX Week #。這個數據集有10年的數據,我們看到前兩年有52週。然後,我們有兩年 53 週,三年 52 週,然後還有兩年 53 周和一年 52 週。
這裡並沒有真正可辨別的模式。回過頭來預測一年你將有 52 周而另一年你將有 53 週並不容易。
如果您熟悉 DAX 時間智能函數,您可能會想到的下一件事是使用 DATEADD函數,它將一系列日期向後移動給定時間段。它在日、月、季度和年方面做得很好,但它不包括週,所以我們必須找到一種不同的方法來做到這一點。
在我們使用的 LuckyTemplates 擴展日期表中,Melissa(LuckyTemplates 專家之一)包含了一個名為OFFSETS的函數。讓我們深入研究這個函數,因為它絕對是從 DAX 角度解決這個問題的關鍵。
查看當前時間段(例如 1 月 20 日,即創建本教程的時間段),我們看到的是offset 等於 0。偏移量的工作方式是在當前期間,偏移量變為零。
本週前一周為負一,本週前兩週為負二,依此類推。然後,它從正數向前發展;下周然後得到一個,兩週得到一個二等。
每次您打開與今天日期相關的報告時,它都會計算偏移量。這是非常強大的,現在我將向您展示在使用偏移量時解決一些難題是多麼容易,例如 LuckyTemplates 上週的數字。
上週使用 DAX 獲取 LuckyTemplates
讓我們創建一個新度量並將其命名為Previous Wk #。我們將從一個變量 ( SelWkOffset )開始,我們將在其中執行WeekOffset的SELECTEDVALUE。因此,在當前行中,它將繪製 WeekOffset 並將其放入我們的變量中。
下一個變量將是Result。這是我們想要的最終結果,我們將使用CALCULATE,因為我們將改變上下文。
然後,我們需要MAX ISO Weeknumber,這將受制於這些過濾條件。因此,我們將刪除 Dates 表上的所有過濾器,因此我們將在此處使用ALL。如果我們有一個日期切片器,我們可能想要使用ALLSELECTED,但現在我們沒有,所以我們將使用 ALL 從該日期表中刪除過濾器。
然後,我們會說WeekOffset 將等於我們的 SelWkOffset 減一。這就是 OFFSETS 變得如此強大的地方。您不能使用周數減一,因為它每年都會重置。但是因為 ALL OFFSETS 是連續的,所以您可以像對待找到前一年一樣對待它,並且只需為前一年減去一個。因此,這個偏移量的功能與連續數字的功能相同。
我們現在可以獲取並關閉該過濾條件,關閉計算,然後返回我們的結果。
現在,讓我們看看這個措施是如何運作的。在下表中,我們可以看到它所做的正是我們所希望的。在第二年第一個週期的第 52 週,前一周是 52。然後,它在每個週期後退一個,依此類推。
現在,如果沒有偏移量,您會怎麼做?
假設您正在使用來自您的數據倉庫的公司日期表,並且它不包括這些偏移量。我想在 Power Query 中向您展示一種技術。我第一次看到它是在 Imke Feldmann 的一篇博客文章中。
這種方法非常適用於您可以按升序對錶進行排序並且不需要偏移量的任何情況。它甚至不必有日期字段。它可能是一種完全不同類型的表。只要它可以按升序排序,就可以使用此技術。
因此,讓我們引用這個 Dates Raw 表,我們將其稱為Dates。然後,我們確保按升序對其進行排序。
接下來,我們要按週分組。這樣做的原因是我們要添加兩個索引列。當我們添加這些索引列時,我們希望它們是周粒度的,而不是天粒度的。
接下來,我們要添加那些索引列。這裡重要的是我們要添加的第一個索引將是一個從 0 開始的索引。然後,我們將添加第二個索引,該索引是從 1 開始的索引。
然後,我們將採用此列並將一個表合併到自身中。我們將根據兩個不同的索引列來合併它。這將使我們改變行數。
因此,如果我們採用此方法並將第一個基於 0 的索引合併到基於 1 的索引,它會在 522 行匹配 521。這正是我們所期望的,因為第二個表不會選擇零索引,因為它從一開始。
之後,我們將使用 ISO Weeknumber 適當地擴展它。
這給了我們前一周的數字。現在,我們將擴展我們的原始分組並刪除 WeekEnding 字段和原始 ISO weeknumber,這樣我們就不會重複。
如果我們把它放在一個表中,你可以看到它與使用 DAX 技術的結果完全相同。它的工作方式與我們的 DAX 度量完全一樣,但在這種情況下,我們不需要使用偏移量。
結論
這是以非常通用的方式查找前一周編號的兩種不同方式。在第一種技術中,您可以看到偏移量的強大功能,否則計算起來很困難,非常簡單。第二種技術與我們的 DAX 度量完全一樣,但在這種情況下,我們不需要使用偏移量。
希望本教程對您有所幫助。您可以觀看下面的完整視頻教程,並查看相關鏈接以獲取更多類似內容。
乾杯!
什麼是 Python 中的自我:真實世界的例子
您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。
在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。
本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。
在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。
我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。
了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。
本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。
如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。
什麼是 LuckyTemplates 網關?所有你必須知道的