tft每日頭條

 > 生活

 > datediff函數公式

datediff函數公式

生活 更新时间:2025-01-08 14:50:57

在時間序列運算中我們經常聽到同比、環比這樣的說法,計算公式:

  • 同比:今年/去年-1 或 (今年-上年)/上年
  • 環比:這月/上月-1 或 (本期-上一期)/上一期

用語言來描述就是:

  • 同比用來衡量這個指标與去年同期相比,是增長還是下跌;
  • 環比是用來衡量這個指标與上一期相比,是增長還是下跌。

datediff函數公式(DAX函數DATEADD函數的用法)1

在Power Pivot或Power BI數據模型中要計算同比環比是個很容易的事情,因為有時間智能函數和日期表,不需要太多的知識儲備:

datediff函數公式(DAX函數DATEADD函數的用法)2

其中最重要的一個時間智能函數DATEADD函數,需要認真了解一下,DATEADD函數一共有三個參數:

  • 第一參數:日期列
  • 第二參數:偏移量:正整數是向未來偏移,負數是向過去偏移
  • 第三參數:偏移的單位:日、月、季、年

學會這個DATEADD函數,就相當于學會了一下幾個函數:

datediff函數公式(DAX函數DATEADD函數的用法)3

這幾個函數,NEXT開頭的和PREVIOUS開頭的函數都是隻有一個參數的函數,他們實現的功能隻是DATEADD函數功能的一部分,還有SAMEPERIODLASTYEAR函數也是一樣的,都很簡單,唯一複雜的函數是PARALLELPERIOD,三個參數,和DATEADD函數用法一樣,就是返回的值有些不同,大家有興趣的可以去仔細研究一下。

我們來看例子:模拟了兩年的數據,建立了對應的日期表,标記日期表并建立關系。

聚合

建立第一個度量值[銷售金額],最簡單的聚合,可以通過不同的篩選得到不同的結果,這個聚合,可以是月銷、季度銷、年度銷。

銷售金額 = sum('銷售記錄'[金額])

DATEADD

上月銷售:

上月 = CALCULATE([銷售金額],DATEADD('日曆'[Date],-1,MONTH))

上季度銷售:

上季度 = CALCULATE([銷售金額],DATEADD('日曆'[Date],-1,QUARTER))

上年銷售:

上年 = CALCULATE([銷售金額],DATEADD('日曆'[Date],-1,YEAR))

這三個度量值有着相同的結構:CALAULATE DATEADD

而且DATEADD函數的參數,隻有最後一個參數在變化,前兩個參數是相同的。

環比:

月度環比,IF函數與BLANK函數是為了清除沒有上月數據的情況,DIVIDE函數就是除法函數:

月環比 = if([上月]=BLANK(),BLANK(),DIVIDE([銷售金額],[上月])-1)

datediff函數公式(DAX函數DATEADD函數的用法)4

季度環比與月度環比基本相同:

季環比 = IF([上季度]=BLANK(),BLANK(),DIVIDE([銷售金額],[上季度])-1)

datediff函數公式(DAX函數DATEADD函數的用法)5

同比:

同比與環比的寫法一緻,就是時間範圍是年與年的比較:

同比 = if([上年]=BLANK(),BLANK(),DIVIDE([銷售金額],[上年])-1)

datediff函數公式(DAX函數DATEADD函數的用法)6

以上的例子是在Power BI中做的演示,所以度量值沒有冒号。

更多DAX函數知識請訂閱DAX函數專欄:

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved