#Powerbi 利用时间智能函数,进行周度分析
在实际工作中,我们往往需要同比分析,月度和年度的分析都有对应的时间智能函数,分别是MTD和YTD,但是缺少了周度的时间智能函数,而
恰恰日常工作中,我们又需要以周度来进行对应的分析,今天我们来学习一下,如何使用Powerbi来进行周度分析。
我们这里假设要进行流量的周度分析,流量表里包含了日期、曝光人数等业务值。
第一步:构建含年周度的日期表
首先,我们需要一个含有周度列的时间表,下面是生成日期表的DAX,这个可以直接使用。
1 2 3 4 5 6 7 8 9 10 11 | 日期表 = 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]) ) |
这里生成的年周列
第二步:构建度量值
上周同期_度量值:这里我们来算曝光人数的上周同期数,上周同期的话,其实就是平移日期7天,去计算曝光,所以这里选用了dateadd函数去计算
1 | 曝光人数(上周) = CALCULATE( '流量度量值' [曝光人数(人)],DATEADD( '日期表' [日期], - 7 ,DAY)) |
流量本周至今度量值:这里VAR先申明了一个变量,SELECTEDVALUE这里返回当前选择日期对应的实际年周,下方FILTER中,两个筛选条件,一个是当前周,一个是小于日期表中的最大值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 流量_曝光人数_本周至今WTD = VAR curyearweek = SELECTEDVALUE( '日期表' [年周]) RETURN CALCULATE( '流量看板度量值' [曝光人数(人)], FILTER ( ALL ( '日期表' ), '日期表' [年周] = curyearweek && '日期表' [日期]< = MAX ( '日期表' [日期]) ) ) |
流量上周累积度量值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 上周累计 = VAR curyear = SELECTEDVALUE( '日期表' [年]) VAR curweeknum = SELECTEDVALUE( '日期表' [周]) RETURN CALCULATE( '流量看板度量值' [曝光人数(人)], FILTER ( ALL ( '日期表' ), '日期表' [年] = curyear && '日期表' [周] = curweeknum - 1 ) ) |
流量总和:
1 | 流量总和 = CALCULATE( SUM ( '流量表' [曝光人数])) |
流量周环比:
1 | 流量周环比 = DIVIDE(流量总和,曝光人数(上周)) - 1 |
第三步:构图
总结,在进行周分析时,重点在于时间智能函数的返回值,在实际应用中,我们需要注意筛选条件的返回值,熟练运用VAR和CALCULATE+FILTER+ALL函数组合,可以让我们在任意的期间段分析都如鱼得水。
我是simone,期待下次分享。
分类:
PowerBi-数据可视化学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~