You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI Calculated Measure需求:基于calendar slicer结束日期计算Sales均值

Power BI 计算度量值实现方案

前提准备

确保你已创建**日期表(Calendar Table)**并与销售表(包含Date和Sales列)建立关联,日期表需包含完整的日期序列,用于周维度的计算。

度量值DAX代码

Weekly Average Sales = 
VAR SelectedEndDate = MAX('Calendar'[Date])
VAR IsWeekend = WEEKDAY(SelectedEndDate, 2) > 5 
VAR CurrentWeekMonday = SelectedEndDate - WEEKDAY(SelectedEndDate, 2) + 1
VAR CurrentWeekFriday = CurrentWeekMonday + 4
VAR PreviousWeekMonday = CurrentWeekMonday - 7
VAR PreviousWeekFriday = PreviousWeekMonday + 4
VAR CurrentWeekWeekdayTotal = CALCULATE(
    SUM('SalesTable'[Sales]),
    'SalesTable'[Date] >= CurrentWeekMonday && 'SalesTable'[Date] <= CurrentWeekFriday
)
VAR PreviousWeekWeekdayTotal = CALCULATE(
    SUM('SalesTable'[Sales]),
    'SalesTable'[Date] >= PreviousWeekMonday && 'SalesTable'[Date] <= PreviousWeekFriday
)
RETURN
IF(
    IsWeekend,
    DIVIDE(CurrentWeekWeekdayTotal, 5),
    DIVIDE(PreviousWeekWeekdayTotal, 5)
)

代码逻辑说明

  • SelectedEndDate:获取日历切片器选中日期范围的结束日期
  • IsWeekend:判断结束日期是否为周末(使用WEEKDAY(...,2)时,周一=1、周五=5,周六/周日对应6/7,因此大于5即为周末)
  • 周范围变量:计算当周/上周的周一、周五日期,锁定周一至周五的区间
  • 销售额总和计算:分别统计当周、上周工作日的销售额总和
  • 返回结果:根据是否为周末,返回对应区间销售额除以5的均值(用DIVIDE避免除以0的报错)

注意事项

  • 切片器需绑定日期表的Date列,确保MAX('Calendar'[Date])能正确获取选中的结束日期
  • 若销售表中存在部分工作日无销售额的情况,DIVIDE会自动处理分母为0的情况,返回空白而非错误

内容的提问来源于stack exchange,提问作者Shivam Sarin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 17:40:06