3

我在包含布尔 (0 | 1) 值的表 (Table_Name) 中有一个列 (Column_Name)。我正在尝试计算每个值。例如,我总共有 1500 行,我想要 2 个度量,显示 700 为真,而 800 为假。

我尝试了以下方法,但每个都只给了我总行数(1500):

False_Measure = COUNTAX(FILTER('Table_Name','Table_Name'[Column_Name]=FALSE()),FALSE())

True_Measure = COUNTAX(FILTER('Table_Name','Table_Name'[Column_Name]=FALSE()),TRUE())

我完全糊涂了...

我什至不确定我现在使用的是正确的 DAX 函数。

4

2 回答 2

4

以下是一些可能性:

True_Measure = SUMX(Table_Name, 1*Table_Name[Column_Name])
True_Measure = SUMX(Table_Name, 1*(Table_Name[Column_Name] = TRUE()))

False_Measure = SUMX(Table_Name, 1*(Table_Name[Column_Name] = FALSE()))
False_Measure = COUNTROWS(Table_Name) - [True_Measure]

在大多数情况下,我使用将布尔值1*强制为数字或.True/False01


您也可以COUNTROWS在过滤表上使用 a 。

True_Measure  = COUNTROWS(FILTER(Table_Name, Table_Name[Column_Name] = TRUE()))
False_Measure = COUNTROWS(FILTER(Table_Name, Table_Name[Column_Name] = FALSE()))

如果你真的想使用COUNTAX,那么它看起来像这样:

True_Measure  = COUNTAX(FILTER(Table_Name, Table_Name[Column_Name] = TRUE()), 1)
False_Measure = COUNTAX(FILTER(Table_Name, Table_Name[Column_Name] = FALSE()), 1)
于 2018-07-20T21:28:08.753 回答
4

问题出在 COUNTAX() 函数的第二个参数中。它应该是您要计算的列/项,而不是相同的列出的过滤项。

所以这些函数应该会给你你想要的结果:

False_Measure = COUNTAX(FILTER('Table_Name', 'Table_Name'[Column_Name]=FALSE()), [Column_Name])

True_Measure = COUNTAX(FILTER('Table_Name', 'Table_Name'[Column_Name]=TRUE()), [Column_Name])

此函数的文档在此处列出。

于 2018-07-20T21:29:13.433 回答