在实际工作中,我们往往需要同比分析,月度和年度的分析都有对应的时间智能函数,分别是MTD和YTD,但是缺少了周度的时间智能函数,而
恰恰日常工作中,我们又需要以周度来进行对应的分析,今天我们来学习一下,如何使用Powerbi来进行周度分析。
我们这里假设要进行流量的周度分析,流量表里包含了日期、曝光人数等业务值。
首先,我们需要一个含有周度列的时间表,下面是生成日期表的DAX,这个可以直接使用。
日期表 = ADDCOLUMNS( CALENDAR(date(2023,1,1),date(2023,1,22)), "年", YEAR ( [Date] ), "季度", ROUNDUP(MONTH([Date])/3,0), "月", MONTH([Date]), "周", weeknum([Date]), "年季度", year([date]) & "Q" & ROUNDUP(MONTH([Date])/3,0), "年月", year([Date]) * 100 + MONTH([Date]), "年周", year([Date]) * 100 + weeknum([Date]), "星期几", WEEKDAY([Date]) )
这里生成的年周列
曝光人数(上周) = CALCULATE('流量度量值'[曝光人数(人)],DATEADD('日期表'[日期],-7,DAY))
流量_曝光人数_本周至今WTD = VAR curyearweek=SELECTEDVALUE('日期表'[年周]) RETURN CALCULATE( '流量看板度量值'[曝光人数(人)], FILTER( ALL('日期表'), '日期表'[年周]=curyearweek &&'日期表'[日期]<=MAX('日期表'[日期]) ) )
上周累计 = VAR curyear= SELECTEDVALUE('日期表'[年]) VAR curweeknum=SELECTEDVALUE('日期表'[周]) RETURN CALCULATE( '流量看板度量值'[曝光人数(人)], FILTER( ALL('日期表'), '日期表'[年]=curyear &&'日期表'[周]=curweeknum-1 ) )
流量总和 = CALCULATE(SUM('流量表'[曝光人数]))
流量周环比 = DIVIDE(流量总和,曝光人数(上周))-1
总结,在进行周分析时,重点在于时间智能函数的返回值,在实际应用中,我们需要注意筛选条件的返回值,熟练运用VAR和CALCULATE+FILTER+ALL函数组合,可以让我们在任意的期间段分析都如鱼得水。
我是simone,期待下次分享。