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

如何在Power BI中用DAX实现净负载计算?分步与合并方法

Power BI中用DAX实现净负荷(net_load)计算的分步与单公式方案

一、分步创建DAX度量值

分步实现的优势是每个度量职责单一,便于调试和后续复用:

1. 计算每小时负荷(hourly_load)

筛选Flow_type为"inflow"的记录,按当前上下文(如Time_str的小时维度)聚合Flow值:

hourly_load = 
CALCULATE(
    SUM(group_flows_t[Flow]),
    group_flows_t[Flow_type] = "inflow"
)

2. 计算光伏发电量(solar_pv)

筛选Flow_type为"unit_aggregate"且Group为"Solar_PV"的记录,聚合Flow值:

solar_pv = 
CALCULATE(
    SUM(group_flows_t[Flow]),
    group_flows_t[Flow_type] = "unit_aggregate",
    group_flows_t[Group] = "Solar_PV"
)

3. 计算风力发电量(wind)

筛选Flow_type为"unit_aggregate"且Group为"Wind"的记录,聚合Flow值:

wind = 
CALCULATE(
    SUM(group_flows_t[Flow]),
    group_flows_t[Flow_type] = "unit_aggregate",
    group_flows_t[Group] = "Wind"
)

4. 计算净负荷(net_load)

直接用前三个度量做差值计算:

net_load = [hourly_load] - [wind] - [solar_pv]

二、单个DAX公式直接计算net_load

可以把所有筛选逻辑整合到一个度量中,省去分步创建的步骤,写法更紧凑:

net_load = 
-- 计算每小时负荷
CALCULATE(SUM(group_flows_t[Flow]), group_flows_t[Flow_type] = "inflow")
-- 减去风力发电量
- CALCULATE(SUM(group_flows_t[Flow]), group_flows_t[Flow_type] = "unit_aggregate", group_flows_t[Group] = "Wind")
-- 减去光伏发电量
- CALCULATE(SUM(group_flows_t[Flow]), group_flows_t[Flow_type] = "unit_aggregate", group_flows_t[Group] = "Solar_PV")

注意事项

  • 这里使用SUM是因为Flow列通常是数值型聚合值,若每行对应单小时的唯一值,也可替换为MAX或SELECTEDVALUE,但SUM适配性更强,能避免上下文多值报错。
  • 所有度量会自动响应报表中的筛选上下文(比如切片器、行/列维度),确保计算结果和当前视图匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 06:12:36