如何在PowerBI中创建DAX度量值计算单日销售差值
PowerBI矩阵:修复单日销售与前一日差值的度量值
需求说明
需在PowerBI矩阵中实现两行数据:第一行展示单日销售额,第二行展示当日销售额与前一日的差值(Delta),预期效果如下:
| Monday | Tuesday | Wednesday |
|---|---|---|
| 100 | 110 | 130 |
| 0 | 10 | 20 |
当前问题
已创建的Delta度量值未达到预期效果:
Delta = CALCULATE ( SUM ( 'Fact'[sales] ), FILTER ( 'Day_Index', 'Day_Index'[index] - 1 ) )
当前输出结果:
| Monday | Tuesday | Wednesday |
|---|---|---|
| 100 | 110 | 130 |
| 0 | 110 | 130 |
相关数据说明
Day_Index表与Fact表为一对多关系,Day_Index表数据如下:
| Day | Index |
|---|---|
| Monday | 1 |
| Tuesday | 2 |
| Wednesday | 3 |
修复后的度量值
Delta = VAR CurrentIndex = SELECTEDVALUE('Day_Index'[Index]) VAR PreviousDaySales = CALCULATE( SUM('Fact'[sales]), 'Day_Index'[Index] = CurrentIndex - 1 ) RETURN IF(CurrentIndex = 1, 0, SUM('Fact'[sales]) - PreviousDaySales)
修复说明
原度量值的错误在于FILTER条件未关联当前上下文的索引:'Day_Index'[index] - 1会被解析为布尔值(索引大于1时结果为真),导致CALCULATE无法精准筛选出前一日的数据。
修复后的逻辑:
- 用
SELECTEDVALUE获取当前矩阵列对应的日期索引 - 计算前一日的销售额
- 若为第一天(索引=1)返回0,否则用当日销售额减去前一日销售额得到差值
内容的提问来源于stack exchange,提问作者SuperUser
相关产品推荐
相关产品推荐

