#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,期待下次分享。

posted @   simone331  阅读(1829)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示