首页 文章

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

提问于
浏览
1

我在表(Table_Name)中有一个列(Column_Name),它包含boolean(0 | 1)值 . 我想要计算每个值 . 例如,我总共有1500行,我希望有2个Measure,其中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())

我完全糊涂了......

我现在还不确定我是否正在使用正确的DAX功能 .

2 回答

  • 1

    问题出在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])
    

    该功能的文档列在here中 .

  • 1

    这是一些可能性:

    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/False 布尔值为数字 01 .


    您也可以在已过滤的表上使用 COUNTROWS .

    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)
    

相关问题