什麼是 Python 中的自我:真實世界的例子
什麼是 Python 中的自我:真實世界的例子
今天,我想介紹一種基於LuckyTemplates 中月平均結果的累積總計的獨特技術。您可以在本博客底部觀看本教程的完整視頻。
要設置計算每月平均結果的日期範圍,我們將使用日期切片器。
LuckyTemplates切片器 是過濾的替代方法,它可以縮小報表其他可視化中顯示的數據集部分。日期切片器或 篩選器僅用於限制 LuckyTemplates 中的相對日期範圍。
另一方面,累積總數用於顯示數據的總和,因為它隨時間或任何其他序列或進展而增長。
通常,當我們查看時,我們會在特定日期或月和年內分析它們。在本文中,我們將僅計算幾個月的累計總計。
這種特殊技術的有趣之處在於,當您只有 month 的上下文時,您需要考慮選擇的不同年份。這可能通過LuckyTemplates 日期切片器選擇或頁面級篩選器發生。
這個特殊的例子源於上一個非常有趣的話題。如果您想查看更多內容,請查看此內容。
目錄
評估問題
有人想根據月份名稱顯示Cumulative Sales,而不是按月份和年份。
現在,問題在於您最終選擇的日期是否超過了整整一年。
因此,我們需要分析我們如何才能最有可能繼續獲得累計總數,就像它是選定的特定年份一樣。
例如,如果您的日期表中有明年1 月到 9 月,那麼您很可能總共有 20 個月。在這種情況下,標準的Cumulative Total 模式將不起作用,因此我們必須對其進行修改。
對於每個人來說,這絕對是一個有趣的場景,也是一個非常好的學習高級DAX的機會。
首先,讓我們快速了解一下標準累計總計模式的實際工作原理。
審查累積總計模式
在此示例中,我們將查看非常通用的Sales。
此公式設置為計算所選範圍內的銷售額。此處的ALLSELECTED函數主要顯示基於在此特定報告中選擇的任何日期範圍的值。
正如您在此LuckyTemplates 日期切片器中所見,我們目前處於2 月 2 日和 9 月 20 日之間。
現在,在這個當前的上下文表中,我們可以驗證Cumulative Sales的公式是否完全正常。這是因為它仍然計算從 1 月到 9 月的Total Sales的累計。
對每月平均結果使用累積總計模式的衝突
雖然Cumulative Total公式目前運行良好,但在根據日期切片器推導計算時可能會出現問題 。
如圖所示,我只是慢慢地進一步擴展日期範圍並將其拖到下一年。
此公式累積每月的Total Sales,但它也開始將累積帶入新的月份。因此,這會導致January 的值為奇數,這實際上只是所有後續月份的延續。
換句話說,它計算得當,但實際上並沒有給我們特別想要的結果。
它目前在這裡所做的是從一月的值開始一直到十二月;然後再次跳回January,從December開始累積,依此類推。
如果我再次將日期拖出,您會看到Cumulative Sales值隨著我們的進行而向下延伸甚至更低。
然後,當你真正拖到很遠的時候,你會發現從1月到5月的Cumulative Sales都變成了2300萬,這基本上就是總數了。它只是在每一年的每個月都在循環。
我們實際上可能想要的是根據每月平均結果獲得更新的累計總計;其中它應該從一月份的總銷售額開始,然後從那裡累積。
要解決這個問題,需要一種與您想像的略有不同的技術。我們還需要確保總數是正確的,並且它們會根據日期切片器中的不同選擇動態調整,這可能來自用戶。
累計月銷售額欄
我將針對這個特定問題引入我的公式的結果,並說明它為什麼有效。
顯然,您會在這裡看到它始終在累積月度Total Sales。
但是看看當我嘗試擴展它時會發生什麼。
它總是從一月開始累積。它不會像Cumulative Sales模式那樣進行奇怪的計算。
顯然,Cumulative Monthly Sales列產生了更合乎邏輯的結果。
另一方面,從可視化的角度來看, Cumulative Sales結果並沒有多大意義。
我在我的解決方案中所做的是,我重新創建了一個新模式,為我們提供了這個特定場景所需的答案。
現在讓我們討論一下我們是如何解決所提供的解決方案的。
創建日期範圍
創建日期範圍是我們需要建立公式的第一件事。
為了創建它,我們初始化了一個最小日期,它由 MinDate 變量表示;和最大日期,由MaxDate 變量表示。然後,我們使用ALLSELECTED、MIN 和對每個變量進行計算。
ALLSELECTED函數獲取表示查詢中所有行和列的上下文,同時保留行和列過濾器以外的顯式過濾器和上下文。此函數可用於在查詢中獲取可視化總計。
同時,返回列中或兩個標量表達式之間的最小值,而MAX函數返回最大值。
初始化最小和最大日期後,我們能夠以與在Cumulative Total模式中所做的略有不同的方式創建日期範圍。
我需要重新創建表格的這一部分,其中包含月份名稱和總銷售額。這是 因為我們只想在這個特定的日期範圍內計算它。
因此,使用SUMMARIZE函數,我能夠縮小日期範圍。
添加 MonthName 和 MonthNumber 列
如您所見,我們包含了Dates表中的MonthName列,以及基本上是Total Sales 的Sales列。
現在,公式的第一部分目前與Cumulative Sales 模式有很大不同。
此外,我們已將 MonthNumber 添加到邏輯模式中。這是從Dates 表中獲取的。這將作為一個虛擬或虛構的列,為一月到十二月設置一個從 1 到 12 的值。
根據MonthNumber列的值,我能夠根據月數計算累計總數。
根據月數計算累計總數
更具體地說,公式的後續部分遍歷指定表中的每一行。
然後,如果MonthNumber列小於或等於 maximum month of the year ,則將對其進行評估。
這部分是計算當前月份數是多少。
例如,如果我們在May月份,則MonthNumber的值將為5。然後, 會針對每一行遍歷此表。
屆時,它將評估是否有任何數字小於或等於 5。如果有,它將包括那些計算並維護表中的列。
最後,我們將計算Sales的數量。
這就是我們如何到達這裡的第 11 行,即11 月。
本部分評價11月為11。
我們遍歷整個表並評估該月的 11 號是否小於或等於上下文中的當前月份,即 11。
然後,我們將計算銷售額,它由中的這個特定列表示 。
LuckyTemplates 中沒有任何日期的累計總計 -
LuckyTemplates 中的高級 DAX 運行總計:如何使用 DAX 公式計算
比較 LuckyTemplates 中不同月份的累計信息
結論
在我提出的解決方案中,我結合使用了DAX 公式,包括 SUMX 和 SUMMARIZE。但是您還需要做的是確保用 FILTER 語句包裝這些特定函數。
該過濾語句將使您最終能夠根據動態日期邏輯獲得正確的累計總計。
在此特定教程中有一些要學習的內容,但這確實是一個有趣的內容。希望您可以將其中一些技術應用到您自己的模型中。
當您了解如何在LuckyTemplates中將大量組合在一起時,解決這些獨特的場景就變得絕對可以實現。
祝你好運。
什麼是 Python 中的自我:真實世界的例子
您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。
在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。
本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。
在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。
我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。
了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。
本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。
如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。
什麼是 LuckyTemplates 網關?所有你必須知道的