使用度量时关系不起作用

问题描述 投票:0回答:1

我的模型包含事实表和维度。该维度包含全名、登录名、访问权限、域。域是一个数字,用作事实表的键。这是一些虚拟数据:

全名 登录 访问 域名
约翰·多伊 NET\JDOE 用户 3000454
约翰·多伊 NET\JDOE 用户 3002656
约翰·多伊 NET\JDOE 用户 3000454
拉拉·多伊 NET\LDOE 用户 3000454
拉拉·多伊 NET\LDOE 用户 3000001

该维度没有具有唯一值的字段,并且如您所见,用户可以具有相同的域。我尝试了两种部分有效的方法。 我直接创建了多对多关系。在表格视觉中使用时,它可以快速且正确地工作。当我转移度量中的逻辑并将度量添加到同一视觉效果时,我得到的结果就好像关系有问题一样。我尝试的另一种方法是复制维度,删除除键列(域)之外的所有列并删除重复项。这样,我在事实和维度之间创建了桥梁关系(具有 1:* 基数),并设置了这两种关系来过滤两种方式。

然而,结果是:

enter image description here

此视觉对象具有来自维度的 FullName、来自事实的字段的 SUM 以及一个度量。在视觉层面上,我在 FullName 列上有一个过滤器,用于排除某个人,并在事实中设置一个 Year 字段,仅包含 2024 年。该度量基本上是计算事实字段的总和,并将过滤器应用于视觉效果。

我之前多次尝试过桥接技术,而且很有效。但在目前的情况下,我看不出问题出在哪里。怎么可能简单地拖动字段并使用视觉级别过滤器就可以工作,而使用度量却不起作用呢?也许我没有完全理解多对多关系和双过滤方向的局限性?

如果没有明显的解决方案,我可以提供事实表或 pbix 中的示例。

powerbi model dax powerbi-desktop data-modeling
1个回答
0
投票

保持原始表之间的多对多关系,我创建了此度量以获得所需的结果:

Result2 = 

VAR thisValue = MAXX('Dimension', 'Dimension'[FullName]) //gets current full name
VAR thisDomain = FILTER('Dimension', [FullName] = thisValue) //gets all domains for full name
VAR thisFact = FILTER('Fact', CONTAINS(thisDomain, [Domain], [Domain])) //filters fact for the name's domains

RETURN //sums all the results given criteria
CALCULATE(SUMX(thisFact, [Result])
    , 'Fact'[Year] = 2024
    , 'Dimension'[FullName] <> "Jamie Jackson"    
    )

输出示例:

Example Output with columns

© www.soinside.com 2019 - 2024. All rights reserved.