什麼是 Python 中的自我:真實世界的例子
什麼是 Python 中的自我:真實世界的例子
我將向您展示如何計算兩個日期之間的工作日/工作日,無論是計算假期還是不計算假期。上被反复詢問的話題。
我也相信這將是結束這個時間智能係列的好方法,因為它涵蓋了前面討論的許多其他元素。這些元素包括創建假日表、創建擴展日期表以及使用函數等。您可以在本博客底部觀看本教程的完整視頻。
目錄
計算兩個日期之間工作日的方法
我將討論可用於計算工作日的不同方法。
Excel 允許用戶通過使用其NETWORKDAYS函數以直接的方式計算工作日。但是,DAX 沒有這樣的功能,所以我將討論解決這個問題的方法。
一種方法是使用擴展日期表中的一些元素。
另一種選擇是通過我從 thebiccountant.com 博客的 Imke Feldmann 那裡獲得的方法。她創建了一個可以直接從 Power Query 調用的自定義 NetworkDays 函數,從而使該過程更快、更簡單。
為了向您展示這些方法的工作原理,我將使用一個非常常見的場景。
我有一百個匿名的項目。
我還有每個項目的開始日期和結束日期。
我還創建了一個簡單的經過天數度量。這基本上是每個開始日期和結束日期之間的原始天數。我使用函數來執行此操作,這是一個對 datediff 工作日有用的函數。
數據模型非常簡單。它包含Dates和Projects的表。
它還顯示事實表,其中包括Project ID、Start Date和End Date。
為了進行比較,我還使用 Excel(不是 power bi)計算了 NetworkDays (有和沒有假期)。
當然,您也可以做同樣的事情,從 Excel 中導入數據。但這裡的目標是使用 LuckyTemplates 計算工作日數,而無需使用 Excel。
使用 DAX 計算日期之間的工作日
無論何時處理計算日期,在 Dates 表上使用
我還使用DATESBETWEEN 來縮小 Start Date 和 End Date 之間的字段。我還添加了IsWorkingDay來應用簡單的布爾邏輯,如果它是工作日,那麼它應該是。週末將返回。
過濾器完成了這個,只是為了考慮切片器的上下文。
至於帶假期的版本,它與我剛才討論的措施非常相似。
它與使用DATESBETWEEN函數的表達式相同。我只添加了一個和IsHoliday。
同樣,我在最後使用了ALLSELECTED函數。
看看當我將這兩個度量值拖到我的表中時會發生什麼。
正如預期的那樣,Workdays w/ Holidays 與 Excel w/ Holidays 列完全匹配。Workdays w/o Holidays 列也是如此,它與 Excel w/o Holidays 列匹配。
使用 Power Query 計算工作日
thebiccoountant.com 博客的 Imke Feldmann 談到的方法在使用 Power Query 時提供了一個更簡單的解決方案。
在她關於 NETWORKDAYS 函數的博客中,她給出了一個可以在 Power Query 中調用的 M 代碼。
只需從她的博客中復制 M 代碼即可。
然後,進入Power Query並在New Source下,打開一個空白查詢。
進入高級編輯器。
然後將整個代碼粘貼到頁面中。確保您有一個綠色檢查以確保您的代碼中沒有錯誤。
一旦它被調用,它將把你帶到這個模板。
我在這裡輸入什麼並不重要,所以我將選擇 2018 年 1 月 1 日至 2020 年 1 月 1 日。
這現在將顯示在我的查詢下。我將重命名它,以便我們以後更容易使用。
我將其命名為Networkdays。
現在,我可以開始使用該查詢了。我將進入我的數據。
然後,在“添加列”下,我將單擊“調用自定義函數”。
我將調用此NWD並使用Networkdays函數。
然後,我將從下面的這些下拉菜單中選擇開始日期和結束日期。
它讓我可以選擇將一周的開始時間從星期一更改為其他日期。
為此,星期一可以,所以我將保持原樣。然後,我將單擊“確定”。
如您所見,它會立即計算出與Excel NetworkDays列等效的NetworkDays。
現在,讓我調整一下,這樣我就可以排除假期。我只需要進入我的假期表。
如果您還記得模板,Holiday 表是此處的第三個參數。
所以我在這裡只使用假期表並引用日期列。
我將單擊此處的複選標記以應用這些更改。
[00:11:00]
現在,它已經更新並刪除了所有假期。它與沒有假期的Excel NetworkDays列完全相同。
我會將此列重命名為 NWD No holiday。
將工作日和周末數字添加到日期表中:LuckyTemplates 中的時間智能技術
使用 DAX 在 LuckyTemplates 中展示工作日數字在
LuckyTemplates 中計算平均值:使用 DAX 隔離工作日或週末結果
結論
您會看到我使用的兩種方法彼此非常不同,但它們都產生了相同的結果。這僅表明確實有很多方法可以最大化 LuckyTemplates,即使您要查找的特定 Excel 函數沒有直接對應項也是如此。
這對時間智能係列來說是一個很好的運行。我很高興與 Melissa Dekorte 合作,向您展示所有這些偉大的時間智能場景。
我在這裡真正想強調的一件事是 DAX 是 LuckyTemplates 中最有趣的部分。但是當您掌握 LuckyTemplates 的來龍去脈時,您將開始欣賞其他完全不涉及 DAX 的解決方案。我在上面向您展示的最後一種方法,以及我在過去的時間智能視頻中分享的技巧證明了這一事實。
一切順利,
什麼是 Python 中的自我:真實世界的例子
您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。
在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。
本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。
在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。
我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。
了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。
本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。
如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。
什麼是 LuckyTemplates 網關?所有你必須知道的