Power BI 时间函数(全)

1. 前提

1) 建立日期表并标记为日期表,日期表的起止日期要涵盖事实表的所有日期

a. 可以用dax或者PQ建立,可以参考佐罗://www.greatytc.com/p/7b69d8ec41ef
b. 标记日期表可以强制检查日期列是否连续、无重复值

image.png

2. 时间函数

1) Date 日期
Date(2020,1,31) --返回一个日期
2) Datevalue 将文本日期转换为日期格式
Measure = DATEVALUE("2020-10-01")
Measure = DATEVALUE("1-10-2020") --月/日不方便区分时,pbi跟随系统时间确定月/日
Measure = DATEVALUE("10-1") --缺乏年份信息时,pbi返回系统所在年
image.png

image.png

image.png
3)Edate 返回指定月数平移后的日期⭐
--求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)
image.png
5) HOUR MONTH MINUTE NOW QUATER SECOND TODAY() YEAR

这些直接用就行了

3. 时间智能函数

image.png

(来自采悟)

1)今年累计值⭐
销量 = SUM('表'[销售])
年初至今 = TOTALYTD([总销量],'表'[日期]) 
月初至今 = TOTALMTD([总销量],'表'[日期]) 
季出至今 = TOTALQTD([总销量],'表'[日期]) 
年初至今 = TOTALYTD([度量值],'表'[日期],"9-30")   # 从10月1日开始计算为一年
2)去年同期累计值
去年同期年初至今 = TOTALYTD([总销量],SAMEPERIODLASTYEAR('表'[日期]))
去年同期月初至今 = TOTALMTD([总销量],SAMEPERIODLASTYEAR('表'[日期]))
去年同期季初至今 = TOTALQTD([总销量],SAMEPERIODLASTYEAR('表'[日期]))
3)指定时间销量
指定时间销量 = 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))

计算每年1月1日的销量 = CALCULATE([销售量],STARTOFyear('表'[日期]))

计算每年12月31日销量 = CALCULATE([销售量],ENDOFyear('表'[日期]))

计算指定年度开始前5天的销量
=  CALCULATE([销售量],DATESINPERIOD('表'[日期],STARTOFMONTH('表'[日期],"5-31"),5,DAY))
4)最近30天
求最近30天的移动平均
= Calculate([销售量], datesinperiod(‘表’[日期],max(‘表’[日期]),-30,day)/30)
5)同比环比
去年去年同期销售额 = CALCULATE(sum(sales), DATEADD(canlendar[date], -1, year))
上月销售额 = CALCULATE(sum(sales), DATEADD(canlendar[date], -1, month))
5)rolling12month

Datesinperiod
或者//www.greatytc.com/p/016372ba651e这篇文章中previous 12 months这个切片器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容