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

PowerBI中关联三表计算汽车单位价格的技术咨询

PowerBI 汽车单位价格计算问题解决方案

问题说明

现有三张数据表,需计算表A每行记录对应的汽车单位价格(单辆汽车的零件总成本),最终生成包含Year、Car、Quantity、Unit price、Total price的结果表:

  • 表A:按年份统计的汽车销售数据
  • 表B:各车型对应的零件及用量
  • 表C:零件的年度价格(价格随购车年份变化)

表结构详情

表A

YearCarQuantity
2021A2
2021B3
2022A1
2023B4

表B

CarPartQuantity
A15
A214
B17
B39
C225

表C

PartYearPrice
120211
220213
320212
120224
220225
320227
120234
220237
320239

核心计算逻辑

以2021年车型A为例:

  1. 从表B获取车型A的零件用量:零件1(5个)、零件2(14个)
  2. 从表C获取2021年对应零件价格:零件1为1,零件2为3
  3. 单位价格 = (1×5) + (3×14) = 47

用户尝试的错误DAX代码

Measure = 
    VAR Aux0 = ADDCOLUMNS(Table_C;"key_car_year";[Car]&"-"&[Year])
    VAR Aux1 = ADDCOLUMNS(ADDCOLUMNS(CALCULATETABLE(Table_B;Table_B[Car]=[Car]);"Date";[Year]);"key_car_year";[Car]&"-"&[Year])
    VAR Aux2 = ADDCOLUMNS(Aux1;"Price";LOOKUPVALUE(Aux0[Price];Aux0[key_car_year];Aux1[key_car_year]))
RETURN
    SUM(Aux2[Price])

解决步骤

1. 建立正确的模型关系

在PowerBI模型视图中创建以下一对多关系:

  • 表A[Year] ↔ 表C[Year](表A为一端)
  • 表A[Car] ↔ 表B[Car](表A为一端)
  • 表B[Part] ↔ 表C[Part](表B为一端)

2. 创建「单位价格」度量值

该度量值通过遍历表B的零件数据,匹配对应年份的零件价格并计算总成本:

单位价格 = 
SUMX(
    Table_B,
    Table_B[Quantity] * RELATED(Table_C[Price])
)

3. 创建「总价格」度量值

总价格为单位价格乘以表A的销售数量:

总价格 = 
[单位价格] * SELECTEDVALUE(Table_A[Quantity])

4. 生成结果表

将表A的Year、Car、Quantity字段,加上「单位价格」「总价格」度量值放入表格视觉对象,即可得到预期结果:

YearCarQuantity单位价格总价格
2021A24794
2021B32575
2022A19090
2023B4109436

原代码错误分析

  1. Aux0中引用[Car]字段,但表C不存在该字段,导致上下文识别错误
  2. CALCULATETABLE(Table_B;Table_B[Car]=[Car])中的[Car]上下文模糊,无法精准筛选对应车型的零件
  3. 用key_car_year匹配价格的逻辑错误,零件价格需同时匹配Part和Year,而非Car和Year

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 21:24:51