使用 COUNTAX 和 FILTER 在 Power BI 中计算 TRUE() 和 False()

eat*_*ood 3 dax powerbi powerbi-desktop

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

我尝试了以下方法,但每个方法只给出了总行数(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())
Run Code Online (Sandbox Code Playgroud)

我完全糊涂了...

我什至不确定此时我是否使用了正确的 DAX 函数。

Kar*_*arl 8

问题出在 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])
Run Code Online (Sandbox Code Playgroud)

此处列出了该函数的文档。


Ale*_*son 5

以下是一些可能性:

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]
Run Code Online (Sandbox Code Playgroud)

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


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

True_Measure  = COUNTROWS(FILTER(Table_Name, Table_Name[Column_Name] = TRUE()))
False_Measure = COUNTROWS(FILTER(Table_Name, Table_Name[Column_Name] = FALSE()))
Run Code Online (Sandbox Code Playgroud)

如果你真的想使用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)
Run Code Online (Sandbox Code Playgroud)