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

Power BI中创建部件号与各级组件关联关系表的需求

解决方法

先明确前提

假设你的table1是BOM结构表,包含父部件号和子部件号两个核心字段(如果你的字段名不一样,替换成实际名称即可)。

用DAX生成完整层级关系表

直接创建计算表,递归遍历所有层级的父子关联,生成能覆盖从顶级部件到所有子部件的关系表:

部件层级关系表 = 
VAR 基础层级 = SELECTCOLUMNS(table1, "查询部件号", [父部件号], "关联组件号", [子部件号], "层级", 1)
VAR 递归扩展层级 = 
    GENERATE(
        基础层级,
        VAR 当前查询部件 = [查询部件号]
        VAR 当前子组件 = [关联组件号]
        RETURN
            ADDCOLUMNS(
                FILTER(
                    GENERATEALL(
                        table1,
                        VAR 组件路径 = PATH([父部件号], [子部件号])
                        RETURN PATHITEM(组件路径, 1, TEXT()) = 当前子组件
                    ),
                    [父部件号] <> [子部件号]
                ),
                "查询部件号", 当前查询部件,
                "层级", [层级] + 1
            )
    )
VAR 合并所有层级 = UNION(基础层级, 递归扩展层级)
RETURN
    ADDCOLUMNS(
        合并所有层级,
        "组件完整路径", PATH([查询部件号], [关联组件号])
    )

配置查询功能

  • 在Power BI中添加一个切片器,选择部件层级关系表里的查询部件号字段,用来选择你要查询的部件。
  • 添加一个表格可视化,把关联组件号、层级、组件完整路径拖进去,就能看到该部件下所有层级的关联组件和子组件了。

处理循环引用(如果有)

如果你的BOM表存在部件互为父子的循环情况,给DAX添加过滤条件排除:

部件层级关系表 = 
VAR 基础层级 = SELECTCOLUMNS(table1, "查询部件号", [父部件号], "关联组件号", [子部件号], "层级", 1)
VAR 递归扩展层级 = 
    GENERATE(
        基础层级,
        VAR 当前查询部件 = [查询部件号]
        VAR 当前子组件 = [关联组件号]
        RETURN
            ADDCOLUMNS(
                FILTER(
                    GENERATEALL(
                        table1,
                        VAR 组件路径 = PATH([父部件号], [子部件号])
                        RETURN PATHITEM(组件路径, 1, TEXT()) = 当前子组件 && NOT CONTAINSSTRING(组件路径, 当前查询部件)
                    ),
                    [父部件号] <> [子部件号]
                ),
                "查询部件号", 当前查询部件,
                "层级", [层级] + 1
            )
    )
VAR 合并所有层级 = UNION(基础层级, 递归扩展层级)
RETURN
    ADDCOLUMNS(
        合并所有层级,
        "组件完整路径", PATH([查询部件号], [关联组件号])
    )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 02:55:57