Power BI中使用DAX公式计算电表累计数据的每日用电量
DAX计算每日用电量解决方案
前置准备
先给电表数据表添加1个日期计算列,提取时间戳的日期部分,方便后续按日聚合:
日期 = DATE(YEAR('电表数据表'[Time Stamp]), MONTH('电表数据表'[Time Stamp]), DAY('电表数据表'[Time Stamp]))
注:把代码里的
电表数据表替换成你自己的表名即可。
步骤1:编写「当日首条读数」度量值
这个度量值用于获取当前筛选上下文对应日期的最早时间点的电表累计读数:
当日首条读数 = VAR 当前日期 = MIN('电表数据表'[日期]) VAR 当日最早时间 = CALCULATE(MIN('电表数据表'[Time Stamp]), ALL('电表数据表'[Time Stamp]), '电表数据表'[日期] = 当前日期) RETURN CALCULATE(SUM('电表数据表'[Value]), '电表数据表'[Time Stamp] = 当日最早时间)
步骤2:编写「每日用电量」度量值
用当日首条读数减去前一日的首条读数,得到当日用电量,同时兼容首日无前值的场景:
每日用电量 = VAR 前一日日期 = DATEADD('电表数据表'[日期], -1, DAY) VAR 前一日首条读数 = CALCULATE([当日首条读数], ALL('电表数据表'[日期]), '电表数据表'[日期] = 前一日日期) RETURN IF( NOT ISBLANK(前一日首条读数), [当日首条读数] - 前一日首条读数, BLANK() )
效果验证
以你提供的示例数据为例:
- 1月1日首条读数为5,1月2日首条读数为15
- 计算得到1月2日的用电量为15-5=10,完全符合你预期的计算逻辑
补充说明
- 你可以直接在表格、卡片等Power BI可视化组件中,拖入
日期字段和每日用电量度量值查看结果 - 如果你已经构建了独立的日期维度表,把上述代码中所有
'电表数据表'[日期]替换为日期表的日期列即可,计算兼容性更好 - 若存在单日无采集数据的场景,可根据需求调整时间偏移逻辑,当前方案默认按自然日计算差值。
内容的提问来源于stack exchange,提问作者Osama Ashraf
相关产品推荐
相关产品推荐

