Power BI中基于切片器的近7天每日销售占比计算问题
问题解决:Power BI中7天每日销售占比计算异常
问题原因
你当前的DAX公式week_data = CALCULATE(SUM('SLA Track'[Achieved SLA])/SUM('SLA Track'[SLA tickets]),DATESINPERIOD('Calendar'[Date],MAX('Calendar'[Date]),-7,DAY))会计算整个7天周期的总占比,而非每日单独的占比。因为DATESINPERIOD会将计算上下文切换到整个7天范围,导致所有日期行都返回同一个周期总占比结果。
解决方案
使用以下DAX度量值,它会保留每日行上下文,仅计算选中日期往前7天(含当天)的每日销售占比:
每日销售占比 = VAR 基准日期 = MAX('Calendar'[Date]) VAR 起始日期 = 基准日期 - 6 // 包含基准日期在内共7天 RETURN IF( 'Calendar'[Date] >= 起始日期 && 'Calendar'[Date] <= 基准日期, DIVIDE(SUM('SLA Track'[Achieved SLA]), SUM('SLA Track'[SLA tickets]), 0), BLANK() )
公式说明
基准日期:获取切片器选中的日期(若切片器允许多选,会自动取最大的日期作为基准)起始日期:计算7天范围的起始点(基准日期减6,确保包含基准日在内共7天)IF判断:仅对7天范围内的日期计算当日占比,超出范围的日期返回空值(避免柱状图显示无关日期)DIVIDE:替代直接除法,自动处理除数为0的情况,返回指定默认值0
配置步骤
- 替换原度量值为上述新公式
- 将柱状图的X轴设置为
Calendar[Date],值字段选择新的每日销售占比度量值 - 测试切片器选中任意日期,柱状图将展示该日期往前7天的每日单独占比
内容的提问来源于stack exchange,提问作者Srikanth
相关产品推荐
相关产品推荐

