什麼是 Python 中的自我:真實世界的例子
什麼是 Python 中的自我:真實世界的例子
大多數 DAX 初學者甚至中級用戶都很難理解 EARLIER 函數的作用。我也花了很長時間才明白應該如何、何時以及為什麼要在 LuckyTemplates 中使用此功能。您可以在本博客底部觀看本教程的完整視頻。
在本文中,我們將深入探討使用EARLIER 函數。我將向您展示較早的函數示例以及如何有效地使用它。
此外,我將向您展示一種更直觀的方法來運行計算,而不是使用EARLIER 函數。
目錄
如何以及何時使用 EARLIER 函數
從歷史上看,EARLIER 函數是在特定公式中操縱計算上下文的唯一方法。但是自從引入了 VARIABLES 之後,它就不像以前那麼重要了。
但是,如果您想將 DAX 知識提升到一個新的水平,了解EARLIER 函數非常重要。它需要對行和過濾器上下文有透徹的了解,這是使用 DAX 計算時的重要概念。
有關上下文的一般(但非常重要)概念的快速修訂,請參見下面的鏈接。
Evaluation Context – (1.8) DAX 終極初學者指南
Filter Context – (1.9) DAX 終極初學者指南
我將為我們在此處運行的所有示例使用 Products 表。如果我們快速查看模型,您會發現我的 Products 表是一個查找表,與我的 Sales 表(被視為事實表)有關係。
我想計算這個特定表中的一些累計總數。
第一個累計總數是通用的。我想根據我在這個特定表中的產品名稱派生的每個產品的一般索引來計算它。
接下來我做的是將 Total Product Sales 放在 Total Sales 度量中。這個特定公式的一個關鍵概念是context transition。
通過在表達式內部放置一個度量來發生上下文轉換。然後您就可以從行上下文移動到篩選器上下文。
這就是針對產品 1 過濾此特定結果的方式。
我深入研究是因為理解表中的上下文和計算列是這裡的關鍵。在這種特殊情況下,我們使用行上下文。
行上下文意味著評估將在每一行發生。計算列中的每一行都有一個結果,其中每一行都進行了評估。
使用 EARLIER 函數的累積總數示例
現在,我想根據 Cumulative Product Sales 列中的這一特定行計算累計總數,我想在計算列中進行計算。這就是LuckyTemplates 中的EARLIER函數發揮作用的地方。
此示例的公式包含FILTER函數。在這個特定的公式中,FILTER添加了一個額外的行上下文。
我們從Row Context開始進行計算,然後使用Filter Function來評估產品表中的每一行。
然後在 Product 表的每一行中,我們查看索引是什麼,並評估它是否小於行中的特定數字。
對於這個特定的行,我們要計算索引為 8 或以下的所有內容。
我們需要對 Products 表中的每一行進行評估,併計算出是否存在小於或等於 8 的索引號。
如果有,那麼我們要計算這些特定產品的所有銷售額。當我們下降時,它會重新評估利率。
EARLIER使我們能夠從一個行上下文跳轉到較早的行上下文以檢索值。
在我們的下一個示例中,特定結果是 10。如果產品索引小於或等於 10,我們希望在每一行評估產品索引。
現在,一些熟悉累積總計概念的人可能認為我們可以在這裡使用 MAX函數,因為這是我們在通用累積總計模式中所做的。
但是,如果我在公式中放入一個MAX ,它總是會計算出最大乘積。此外,它實際上並不評估特定行的產品索引。
所以我們需要離開這個行上下文,然後跳回到最初始的行上下文來檢索產品索引。這就是EARLIER所做的。
EARLIER函數允許我們從一個上下文跳到前一行上下文,這樣我們就可以獲取我們想要的結果。
對於我們的下一個示例,我根據銷售額對我的產品進行排名。我也有一個基於他們都坐在哪裡的排名。
我們產品排名第一的銷售額為 864,000 美元,即產品 63。
現在,我想根據排名創建一個累計總數。我不是在看早期的指數,而是在尋找早期的產品銷售排名。
因此,我們必須遍歷此特定產品表中的每個產品,以評估產品排名是否小於或等於該特定行上的產品排名。
EARLIER跳出此行上下文並跳回到通過在計算列中創建的初始行上下文。
EARLIER 函數的更好替代方案
使用EARLIER函數可能有點複雜。但好消息是我們有更好的方法在 LuckyTemplates 中進行這些計算。
VARIABLES 是一種更好的計算方法。我將向您展示如何繞過EARLIER。
在此示例中,我們實際上可以在變量的初始行上下文中檢索 Product Index 值,而不是跳出過濾器創建的行上下文。
所以我取出EARLIER並放入變量 ProductIndex。
您將在此處看到 Cumulative Product Sales 現在也可以在這種新格式中完美運行。看起來就像以前一樣。
我們可以使用此計算對按排名的累計產品銷售額做完全相同的事情:
然後,如果我們從升序對 Product Sales Ranking 列進行排序,我們可以看到排名最高的產品是 Product 63。
如何在 LuckyTemplates 中累積計算預算或預測結果
使用 DAX 在 LuckyTemplates 中累積比較多個指標
結論
使用VARIABLES是處理我之前展示的所有示例的一種更好的方法。
老實說,在我之前完成的所有開發工作中,我很少使用EARLIER函數。但了解和理解它仍然是一個很酷的功能。
在 LuckyTemplates 的許多不同區域中編寫 DAX 時,變量是關鍵。這是事情變得簡單得多的地方。
不必在公式內跳入和跳出上下文,您實際上可以在變量內啟動計算或將計算與其中的變量隔離開來,因此公式的執行更加無縫。
您可以瀏覽這些鏈接以獲取有關此主題的更多信息:
如何使用 LuckyTemplates 在 DAX 公式中使用變量
希望您能夠很好地理解這種特定計算在 LuckyTemplates 中的運作方式。
什麼是 Python 中的自我:真實世界的例子
您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。
在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。
本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。
在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。
我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。
了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。
本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。
如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。
什麼是 LuckyTemplates 網關?所有你必須知道的