【发布时间】:2022-12-02 23:22:11
【问题描述】:
我有一个包含 2 列的表:source 和 target。样本:
| Source | Target |
|---|---|
| Company | Plant A |
| Company | Plant B |
| Company | Plant C |
| Plant A | Building X |
| Plant A | Building Y |
| Plant B | Building R |
| Plant B | Building S |
我创建了列 isLeaf 来检查叶节点(真或假):
IsLeaf =
VAR CurrentNode = FullHierarchy[Target]
RETURN CALCULATE (
COUNTROWS ( FullHierarchy ),
ALL ( FullHierarchy ),
FullHierarchy[Source] = CurrentNode
) = 0
此外,路径是使用 PATH() 函数计算的。
接下来,我创建了断开连接仅包含叶节点的表 Leafs:
Leafs =
SELECTCOLUMNS(
FILTER(FullHierarchy, FullHierarchy[IsLeaf]),
"LeafNode", FullHierarchy[Target]
)
这是结果:2 个断开连接的表。
我的目标是拥有 2 个视觉效果:一个基于 Leafs 的切片器和一个基于 FullHierarchy 的表格。选择叶子仅显示直接或间接连接到它的项目(即它的路径的一部分)。
这样做的声明类似于:
PATHCONTAINS(
LOOKUPVALUE(FullHierarchy[Path],
FullHierarchy[Target]
[Selected Node]),
FullHierarchy[Target])
上面的语句将查找所选叶节点的路径,然后检查表中的节点是否是其中的一部分,以决定是否显示它。
我尝试了无数种变体,但无法实现。任何想法、建议等将不胜感激!谢谢!
示例 pbix 文件可用here。
更新
澄清一下,选择叶节点应该返回所有连接的节点,一直到顶部(即完整谱系)。
例如,选择机器E2应该返回
- 机器E2
- E 部分
- A栋
- C厂
- 公司
更直观:
【问题讨论】: