Powerbi 如何创建基于id过滤代码的power bi度量

Powerbi 如何创建基于id过滤代码的power bi度量,powerbi,dax,measure,Powerbi,Dax,Measure,我有一个表,它有多个相同的代码,每个代码可以有不同的id,如下所示 Code | ID 45 | 2 45 | 5 45 | 8 45 | 7 21 | 1 21 | 9 我想对没有和ID为2或8的代码进行计数。然而,例如,因为45的代码和id为2或8,我想忽略该代码,只给我21的代码,这将是一个1计数 我试过了 Unsuccessful = CALCULATE(DISTINCTCOUNT('Table'[code]), FILTER('Table', NOT('Tab

我有一个表,它有多个相同的代码,每个代码可以有不同的id,如下所示

Code | ID
45   | 2
45   | 5
45   | 8
45   | 7
21   | 1
21   | 9
我想对没有和ID为2或8的代码进行计数。然而,例如,因为45的代码和id为2或8,我想忽略该代码,只给我21的代码,这将是一个1计数

我试过了

Unsuccessful = CALCULATE(DISTINCTCOUNT('Table'[code]), FILTER('Table', NOT('Table'[ID] in {2,8})))

但是上面给出了2的计数,当我希望它是1时。如果已经有2个或8个代码存在,我如何忽略该代码?

您的代码几乎是正确的:

Unsuccessful = CALCULATE(DISTINCTCOUNT('Tables'[code]),FILTER('Tables', NOT(CALCULATETABLE(VALUES('Tables'[Code]), ('Tables'[ID] in {2,8})))))
内部部分返回我们要排除的代码

CALCULATETABLE(VALUES('Tables'[Code]), ('Tables'[ID] in {2,8})
首先考虑内部部分。CALCULATETABLE(根据第二个参数中的过滤器从第一个参数为我们生成表)。VALUES('Table'[Code])->从列中生成了不同的值列表,因为沿袭它记住了源代码(更多信息:此处)。这部分返回我们找到的ID为2或8的代码(在本例中代码=45)

当我们有一个要排除的代码列表时,一切都很简单。我们只是把过滤器放在里面。FILTER的第一个参数是我们的基表,第二个参数是FILTER自身。在这里,我们将表作为一个过滤器,由于沿袭,引擎“知道”数据之间的关系


我尝试了您的问题,增加了数据量,结果与您的预期一致,如果有帮助,请接受:)

这是原始数据的表格

我应用此度量来计算包含2或8的不同期望值:

Measure 2 = CALCULATE(DISTINCTCOUNT(Sheet1[Code]),FILTER(Sheet1,Sheet1[ID] = 2 || Sheet1[ID] = 8))
记分卡结果


我现在尝试了,但它仍然给了我相同的2计数。我将您的样本数据复制到我的测试模型中,得到了预期的结果。您如何使用此度量?@scott此DAX公式运行良好,请再次交叉检查您的DAX。用户msta42a你能解释一下这个公式吗?请检查我更新的答案