使用COUNTAX和FILTER在Power BI中对TRUE()和False()进行计数

时间:2018-07-20 21:16:35

标签: powerbi dax powerbi-desktop

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

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

                    var endpoint = Context.CodePackageActivationContext.GetEndpoint("ServiceEndpoint");
                    return new WebHostBuilder()
                        .UseKestrel(/* SSL STUFF GOES HERE */)
                        .ConfigureServices(
                            services => services
                                .AddSingleton<StatelessServiceContext>(serviceContext)
                                .AddMvc(options =>
                                {
                                    // Using the port here:
                                    options.SslPort = endpoint.Port;
                                    options.Filters.Add(new RequireHttpsAttribute());
                                }))                                   
                        .UseStartup<Startup>()
                        .UseServiceFabricIntegration(listener, ServiceFabricIntegrationOptions.None)
                        .UseUrls(url)
                        .Build();
                }))

我完全困惑...

我现在甚至不确定自己是否使用了正确的DAX功能。

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分: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中列出。