如何在Power BI中将每日事件数据汇总为周总量及周移动平均值?
Power BI中添加2周移动平均值到周事件总量图表的方法
前提确认
确保你的自定义Calendar Table(日历表)和事件数据事实表已通过Date字段建立一对一或一对多的关系,且日历表包含Year、Week Number等用于按周分组的字段。
步骤1:创建(或确认)每周事件总量度量值
如果还没有明确的度量值,创建以下度量值统计每周事件数:
每周事件总量 = COUNT('事件表'[Customer])
注:这里用COUNT是因为每行对应一个事件,Customer列存储事件标识,直接计数即可。
步骤2:创建2周移动平均值度量值
根据需求选择以下两种方式之一,推荐第二种(基于日期范围,避免跨年周数计算错误):
方式一:基于周数计算(适用于同一年度内)
2周移动平均值 = VAR 当前周 = MAX('Calendar Table'[Week Number]) VAR 当前年 = MAX('Calendar Table'[Year]) VAR 两周事件总量 = CALCULATE( COUNT('事件表'[Customer]), FILTER( ALL('Calendar Table'), 'Calendar Table'[Year] = 当前年 && 'Calendar Table'[Week Number] >= 当前周 - 1 && 'Calendar Table'[Week Number] <= 当前周 ) ) RETURN 两周事件总量 / 2
方式二:基于日期范围计算(支持跨年场景)
2周移动平均值 = VAR 当前日期 = MAX('Calendar Table'[Date]) VAR 两周前日期 = 当前日期 - 13 // 覆盖当前周及前一周共14天范围 VAR 两周事件总量 = CALCULATE( COUNT('事件表'[Customer]), DATESBETWEEN('Calendar Table'[Date], 两周前日期, 当前日期) ) RETURN 两周事件总量 / 2
步骤3:将两个度量值添加到同一张图表
- 选择折线图(或组合图)作为可视化对象;
- 在轴区域添加日历表的
Year-Week组合字段(可提前在日历表创建计算列:Year-Week = 'Calendar Table'[Year] & "-W" & FORMAT('Calendar Table'[Week Number], "00"),确保周序正确); - 在值区域依次添加
每周事件总量和2周移动平均值; - 可选:将
每周事件总量的视觉效果改为柱形,2周移动平均值保持折线,这样更易区分趋势和实际值。
注意事项
- 如果日历表没有
Week Number字段,可通过计算列生成:Week Number = WEEKNUM('Calendar Table'[Date], 2)(参数2表示周一为一周起始); - 确保图表的轴按
Year-Week升序排序,避免时间顺序混乱。
内容的提问来源于stack exchange,提问作者Frank Czerniakowski
相关产品推荐
相关产品推荐

