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

Power BI中如何按日期计算两种柴油的有效平均价差?

Power BI 计算两种柴油有效日期的平均价差方案

一、先搭好数据模型(必备基础)

  • 先生成一个覆盖两张柴油表日期范围的独立日期表,用DAX函数即可:日期表 = CALENDAR(MINX(UNION('柴油A数据','柴油B数据'),[日期]), MAXX(UNION('柴油A数据','柴油B数据'),[日期]))
  • 将两张柴油表的「日期」字段,分别和日期表的「日期」字段建立多对一关系,确保日期维度统一,方便后续筛选。

二、写DAX度量值计算有效价差

创建以下度量值,核心逻辑是:仅当同一日期下两种柴油的移动平均数据都存在时,才计算价差;只要有一方数据为空,就返回空值(Power BI会自动忽略空值,不会在图表或度量结果中显示)。

简洁版度量值(推荐):

有效平均价差 = 
VAR 柴油A_MA = MAX('柴油A数据'[柴油A_MA])
VAR 柴油B_MA = MAX('柴油B数据'[柴油B_MA])
RETURN
IF(NOT(ISBLANK(柴油A_MA)) && NOT(ISBLANK(柴油B_MA)), 柴油A_MA - 柴油B_MA, BLANK())

逻辑拆解版(适合新手理解):

有效平均价差 = 
VAR 当前日期 = MAX('日期表'[日期])
VAR 有柴油A数据 = NOT(ISBLANK(CALCULATE(MAX('柴油A数据'[柴油A_MA]), '柴油A数据'[日期] = 当前日期)))
VAR 有柴油B数据 = NOT(ISBLANK(CALCULATE(MAX('柴油B数据'[柴油B_MA]), '柴油B数据'[日期] = 当前日期)))
RETURN
IF(有柴油A数据 && 有柴油B数据, 
   CALCULATE(MAX('柴油A数据'[柴油A_MA])) - CALCULATE(MAX('柴油B数据'[柴油B_MA])),
   BLANK()
)

三、图表展示与验证

  • 把日期表的「日期」拖到图表的轴区域,再将「有效平均价差」拖到值区域,不管是折线图、柱状图还是表格,都会自动只保留两种柴油都有数据的日期,像9月7日、11月12日这类仅单一柴油有数据的日期会直接被排除,不会出现在视觉对象中。
  • 若要验证结果,可新建一个表格视觉对象,将日期、两种柴油的移动平均字段和「有效平均价差」都拖入,能直观看到只有双数据的日期才会显示价差数值。

内容的提问来源于stack exchange,提问作者Alejandro González Espejo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 20:05:24