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

如何校验层级关联父子列的x标记合规性?

层级规则校验PowerBI数据表合规性

需求说明

现有source数据表,各列取值仅为x或null;另有hierarchy层级表定义列之间的父子关系,需依据以下规则校验source表数据是否合规,不合规则输出错误的子节点→父节点路径:

  1. 若子列值为x,则其所有父列值必须为x
  2. 若父列值为x,则其至少有一个子列值为x

示例代码(Power Query M语言)

source = Table.FromRecords({
    [Name="Jason", A="x", B="x", C="x", D="x", E="x", F="x", G=null, H="x", I=null, J=null, K=null, L="x", M=null],
    [Name="Joe", A="x", B=null, C="x", D=null, E=null, F=null, G="x", H="x", I=null, J=null, K=null, L=null, M="x"],
    [Name="Eddie", A="x", B=null, C="x", D=null, E=null, F="x", G=null, H="x", I=null, J="x", K=null, L=null, M=null],
    [Name="Phil", A=null, B=null, C=null, D="x", E=null, F=null, G=null, H=null, I=null, J=null, K=null, L="x", M=null],
    [Name="Thomas", A="x", B=null, C=null, D=null, E=null, F="x", G="x", H="x", I=null, J=null, K=null, L=null, M=null],
    [Name="David", A="x", B=null, C=null, D=null, E="x", F="x", G=null, H=null, I=null, J=null, K=null, L=null, M=null],
    [Name="Matthew", A=null, B=null, C=null, D=null, E=null, F=null, G=null, H=null, I=null, J=null, K="x", L=null, M=null]
}),

hierarchy = Table.FromRecords({
    [Column1 = "A", Hierarchy = {null}],
    [Column1 = "B", Hierarchy = {"A"}],
    [Column1 = "C", Hierarchy = {"A"}],
    [Column1 = "D", Hierarchy = {"A", "C"}],
    [Column1 = "E", Hierarchy = {"A", "C"}],
    [Column1 = "F", Hierarchy = {"A"}],
    [Column1 = "G", Hierarchy = {"A", "F"}],
    [Column1 = "H", Hierarchy = {"A", "F"}],
    [Column1 = "I", Hierarchy = {null}],
    [Column1 = "J", Hierarchy = {"I"}],
    [Column1 = "K", Hierarchy = {"I"}],
    [Column1 = "L", Hierarchy = {"I", "K"}],
    [Column1 = "M", Hierarchy = {"I", "K"}]
}),

手动校验错误结果

  • Jason:
    • L→K→I(L为x,但父列K、I均为null,违反规则1)
  • Joe:
    • G→F→A(G为x,但父列F为null,违反规则1)
    • H→F→A(H为x,但父列F为null,违反规则1)
    • M→K→I(M为x,但父列K、I均为null,违反规则1)
  • Eddie:
    • J→I(J为x,但父列I为null,违反规则1)
    • C→A(C为x,但子列D、E均为null,违反规则2)
  • Phil:
    • D→C→A(D为x,但父列C、A均为null,违反规则1)
    • L→K→I(L为x,但父列K、I均为null,违反规则1)
  • David:
    • E→C→A(E为x,但父列C为null,违反规则1)
    • F→A(F为x,但子列G、H均为null,违反规则2)
  • Matthew:
    • B→A(B为x,但父列A为null,违反规则1)
    • K→I(K为x,但父列I为null,违反规则1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 00:15:01