1. 前提
1) 建立日期表并標(biāo)記為日期表耍休,日期表的起止日期要涵蓋事實(shí)表的所有日期
a. 可以用dax或者PQ建立岩齿,可以參考佐羅:http://www.reibang.com/p/7b69d8ec41ef
b. 標(biāo)記日期表可以強(qiáng)制檢查日期列是否連續(xù)、無重復(fù)值
2. 時(shí)間函數(shù)
1) Date 日期
Date(2020,1,31) --返回一個(gè)日期
2) Datevalue 將文本日期轉(zhuǎn)換為日期格式
Measure = DATEVALUE("2020-10-01")
Measure = DATEVALUE("1-10-2020") --月/日不方便區(qū)分時(shí)外恕,pbi跟隨系統(tǒng)時(shí)間確定月/日
Measure = DATEVALUE("10-1") --缺乏年份信息時(shí),pbi返回系統(tǒng)所在年
3)Edate 返回指定月數(shù)平移后的日期?
--求rolling12的值
Measure = CALCULATE (
[Resolved],
FILTER (
ALL ( Calendar[Resolve Date] ),
Calendar[Resolve Date] - 1
>= EDATE ( [Eomonth.fullmonth], -12 )
)
4)EOMONTH?
measure = EOMONTH(DATE(2020,1,2),1)
5) HOUR MONTH MINUTE NOW QUATER SECOND TODAY() YEAR
這些直接用就行了
3. 時(shí)間智能函數(shù)
(來自采悟)
1)今年累計(jì)值?
銷量 = SUM('表'[銷售])
年初至今 = TOTALYTD([總銷量],'表'[日期])
月初至今 = TOTALMTD([總銷量],'表'[日期])
季出至今 = TOTALQTD([總銷量],'表'[日期])
年初至今 = TOTALYTD([度量值],'表'[日期],"9-30") # 從10月1日開始計(jì)算為一年
2)去年同期累計(jì)值
去年同期年初至今 = TOTALYTD([總銷量],SAMEPERIODLASTYEAR('表'[日期]))
去年同期月初至今 = TOTALMTD([總銷量],SAMEPERIODLASTYEAR('表'[日期]))
去年同期季初至今 = TOTALQTD([總銷量],SAMEPERIODLASTYEAR('表'[日期]))
3)指定時(shí)間銷量
指定時(shí)間銷量 = CALCULATE([總銷量],DATESBETWEEN('表'[日期],DATE(2019,4,1),DATE(2020,4,30) ))
每月最后3天銷量 = CALCULATE([銷售量],DATESINPERIOD('表2'[日期],ENDOFMONTH('表2'[日期]),-3,DAY))
每月前3天銷量 = CALCULATE([銷售量],DATESINPERIOD('表2'[日期],STARTOFMONTH('表2'[日期]),3,DAY))
計(jì)算每年1月1日的銷量 = CALCULATE([銷售量],STARTOFyear('表'[日期]))
計(jì)算每年12月31日銷量 = CALCULATE([銷售量],ENDOFyear('表'[日期]))
計(jì)算指定年度開始前5天的銷量
= CALCULATE([銷售量],DATESINPERIOD('表'[日期],STARTOFMONTH('表'[日期],"5-31"),5,DAY))
4)最近30天
求最近30天的移動平均
= Calculate([銷售量], datesinperiod(‘表’[日期]狈孔,max(‘表’[日期]),-30,day)/30)
5)同比環(huán)比
去年去年同期銷售額 = CALCULATE(sum(sales), DATEADD(canlendar[date], -1, year))
上月銷售額 = CALCULATE(sum(sales), DATEADD(canlendar[date], -1, month))
5)rolling12month
Datesinperiod
或者http://www.reibang.com/p/016372ba651e這篇文章中previous 12 months這個(gè)切片器