LuckyTemplates CALCULATE:高級 DAX 公式的關鍵

LuckyTemplates CALCULATE:高級 DAX 公式的關鍵

現在我們將深入研究LuckyTemplates 中的 函數。

我們已經多次使用該功能,但這是我想詳細討論的地方。

目錄

通過計算獲得去年的銷售額

CALCULATE函數允許您在度量中更改計算的上下文,其中上下文來自執行計算的環境。您可以在本博客底部觀看本教程的完整視頻。

在 DAX 中更改度量中的上下文的能力非常重要。

我們將從創建一個名為Sales LY的度量開始,該度量使用CALCULATE函數將當前日期的銷售額去年同一日期的銷售額進行比較。

LuckyTemplates CALCULATE:高級 DAX 公式的關鍵

CALCULATE函數中,我們將輸入總銷售額,因為CALCULATE的第一個參數可以採用任何類型的表達式

然後,我將使用名為時間智能函數。時間智能函數是用於與時間相關的計算的函數

由於我們將SAMEPERIODLASTYEAR放在CALCULATE中,我們將通過Date 列將當前上下文調整一年。

LuckyTemplates CALCULATE:高級 DAX 公式的關鍵

拖入新度量後,您會看到Total SalesSales LY列有不同的結果。

LuckyTemplates CALCULATE:高級 DAX 公式的關鍵

這背後的原因是Sales LY中的值正好取自一年前的 Total Sales

舉個例子,讓我們看一下日期28/02/2020的Sales LY值。

LuckyTemplates CALCULATE:高級 DAX 公式的關鍵

由於它的值為$10,440,回顧2019 年 2 月 28 日總銷售額應該會產生完全相同的結果。

LuckyTemplates CALCULATE:高級 DAX 公式的關鍵

它將28/02/2020識別為當前日期,但它通過Sales LY列將上下文更改為 2019 年的同一日期

這就是為什麼CALCULATE在 LuckyTemplates 中如此重要的功能。它允許您以多種不同的方式執行計算,例如當您需要找出Total SalesSales LY之間的差異時。

按季度更改上下文

我還可以更改Date 列的上下文,以便我可以查看季度值而不是每日值

我將首先拖入Dates 表中的QuarterInCalendar列。

LuckyTemplates CALCULATE:高級 DAX 公式的關鍵

在這裡您會注意到的第一件事是日期沒有正確排序要解決此問題,我將對名為QuarterInYear的列進行排序。

我將轉到數據區域並突出顯示QuarterInCalendar列。

LuckyTemplates CALCULATE:高級 DAX 公式的關鍵

然後,我可以在Sort by column下選擇QuarterInYear選項。

LuckyTemplates CALCULATE:高級 DAX 公式的關鍵

一旦我們返回到上一個屏幕,您現在可以看到我們已經按照正確的順序排列了宿舍。

LuckyTemplates CALCULATE:高級 DAX 公式的關鍵

我們之前正在做完全相同的事情,但是由於我們關注的是季度而不是天,所以這些值是以不同的粒度累積的。

例如,對於2020 年第二季度,我們的總銷售額2,839,495 美元。但是,當我們查看Sales LY值時,CALCULATE 函數 將上下文改回一年,即Q2 2019 Total Sales值為$3,665,971

LuckyTemplates CALCULATE:高級 DAX 公式的關鍵

CALCULATE函數使您能夠使用類似的洞察力以不同的方式工作,而無需重寫公式或計算。

使用 CALCULATE 計算特定位置的總銷售額

我還想向您展示另一種方式,您可以如何調整CALCULATE中的上下文。

我們之前完全改變了計算的上下文,但現在我想向您展示一個示例,我們將略微過濾上下文。

如果我想計算我在某個地點(特別是北卡羅來納州)的所有銷售額怎麼辦?

為此,我可以在 NC 中創建一個名為 Sales的新度量,使用CALCULATETotal Sales作為表達式,然後使用Locations 表中的州代碼作為過濾器並將其設置為等於“NC”

LuckyTemplates CALCULATE:高級 DAX 公式的關鍵

拖入新度量後,我們可以根據Product Name的上下文查看特定區域總銷售額明細。

LuckyTemplates CALCULATE:高級 DAX 公式的關鍵

與完全更改上下文的Sales LY相比, NC 中的 Sales中的上下文只是進行了簡單的調整。

這就是為什麼CALCULATE將成為您最常用的函數,因為您可以通過多種方式調整上下文。

如果您查看 LuckyTemplates 中的任何高級內容,您會發現幾乎所有內容都使用了CALCULATE,因為使用它可以非常高效地編寫公式。

您可能已經看到用Microsoft Excel 編寫的非常長的公式,它們跨越兩到三行。在 LuckyTemplates 中,只需調整上下文即可進行各種不同的計算。

再舉一個例子,我可以將Sales in NC度量與QuarterInCalendar度量一起拖入。

LuckyTemplates CALCULATE:高級 DAX 公式的關鍵

我不必對公式進行更改,但與我們之前調整它的示例相比,我添加了上下文。

由於我們已經有了季度銷售額,加上北卡羅來納州的銷售額,我們就得到了北卡羅來納州特有的季度銷售額

與完全改變上下文(如Sales LY中我們使用時間智能函數來操縱日期)相比,存在細微差別。

Sales in NC度量只是一個位置過濾器,它與QuarterInCalendar的初始上下文(即日期)無關。


使用 LuckyTemplates 時間智能計算總變化的動態百分比
使用 LuckyTemplates 中的 DAX 計算累積運行率
如何使用 LuckyTemplates 中的 DAX 計算購買之間的天數差異

結論

這只是對 LuckyTemplates 中的CALCULATE函數的介紹,介紹瞭如何使用它來更改、調整或添加到計算的上下文中。

我希望你考慮一下如何將它應用到你正在做的事情上。如果你會利用這個功能,你可以快速地做公式組合和技巧來計算更多的東西。

一切順利,


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