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

Power BI数据模型设计难题:星型架构构建咨询

构建Power BI资金跟踪器星型模型方案

1. 拆分核心维度表

先创建4个独立的维度表,每个表必须包含唯一键(消除重复值,确保一对多关系):

(1)部门维度表

整合所有唯一的申请机构、部门、子部门记录,新增唯一键(比如部门ID,可通过Power Query的「添加索引列」或「分组依据」生成):

  • 字段示例:部门ID、申请机构、部门、子部门

(2)合作伙伴维度表

提取计划预算表中所有唯一的合作伙伴信息,新增唯一键合作伙伴ID:

  • 字段示例:合作伙伴ID、合作伙伴名称

(3)时间维度表

生成包含2024、2025年的时间维度(若需按季度/月份跟踪可扩展),确保年份值唯一:

  • 字段示例:年份ID、年份、季度(可选)、月份(可选)

(4)捐赠方维度表

提取资金表中所有唯一的捐赠方信息,新增唯一键捐赠方ID:

  • 字段示例:捐赠方ID、捐赠方名称

2. 重构事实表

将两张业务表转换为事实表,仅保留度量值和维度外键:

(1)计划预算事实表

保留计划预算金额,关联对应维度的外键:

  • 字段示例:部门ID、合作伙伴ID、年份ID、计划预算金额

(2)到账资金事实表

保留到账资金金额,关联对应维度的外键:

  • 字段示例:部门ID、捐赠方ID、年份ID、到账资金金额

3. 建立表关系

在Power BI模型视图中,建立单向筛选的一对多关系(维度表 → 事实表):

  • 部门维度表 ↔ 计划预算事实表(通过部门ID)
  • 部门维度表 ↔ 到账资金事实表(通过部门ID)
  • 合作伙伴维度表 ↔ 计划预算事实表(通过合作伙伴ID)
  • 时间维度表 ↔ 计划预算事实表(通过年份ID)
  • 时间维度表 ↔ 到账资金事实表(通过年份ID)
  • 捐赠方维度表 ↔ 到账资金事实表(通过捐赠方ID)

4. 编写到位率度量值

用DAX创建核心度量值计算资金到位率:

资金到位率 = 
DIVIDE(
    SUM('到账资金事实表'[到账资金金额]),
    SUM('计划预算事实表'[计划预算金额]),
    0 // 避免除以0报错,返回0
)

5. 模型验证

  • 检查所有关系是否为一对多,无多对多报错
  • 测试筛选逻辑:选择部门、年份、合作伙伴,验证到位率计算是否准确
  • 若需按子部门筛选,确保部门维度表包含子部门字段且关系关联正确

关键注意事项

  • 所有维度表必须无重复值,否则会引发关系异常
  • 若计划预算表无申请机构/子部门字段,可通过部门字段关联到部门维度表的对应内容
  • 时间维度表建议用Power Query生成,避免手动输入导致的年份格式不一致

内容的提问来源于stack exchange,提问作者Ahmed Walid Moulahoum

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 05:12:29