(Power)Pivot – 显示true / false并同时计算

我有以下数据源:

表格1

我的透视行是团队=>项目名称与价值观中的“价值”列。 我正在计算所有具有价值“真实”的项目的比例,而不是所有有价值的项目(不考虑那些没有价值的项目)。 以下是我在PowerPivot中使用的公式:

=CALCULATE(COUNTROWS(),'Table'[Value]=TRUE()) / CALCULATE(COUNTROWS(), ('Table'[Value]=FALSE() || 'Table'[Value]=TRUE()), ISLOGICAL('Table'[Value])) 

这个公式是有效的,但是我只需要在“团队”层面看到这个比例,扩展后的项目应该仍然有“真/假”的价值。 这可能吗? 优选地,没有VBA。

格式化您的代码。 如果你喜欢阅读很长的一行,那很好,但是对于我们其他人来说,使用DAX Formatter 。

 True vs All = CALCULATE( COUNTROWS( 'Table' ) // It's considered a best practice // to explicitly name the table in // COUNTROWS() ,'Table'[Value]=TRUE() ) / CALCULATE( COUNTROWS( 'Table' ) // You can remove the test for [Value] = TRUE() || // [Value] = FALSE() ,ISLOGICAL('Table'[Value]) ) ConditionalDisplay = IF( ISFILTERED( 'Table'[Project] ) && HASONEVALUE( 'Table'[Project] ) ,VALUES( 'Table'[Value] ) ,[True vs All] ) 

[真正vs全部]是您现有测量的清理版本。

[ConditionalDisplay]的名称如此。 根据条件显示不同的值。

我们检查ISFILTERED()以覆盖[Team]给定值只有一个项目的边界情况。 我们检查HASONEVALUE()以覆盖[Project]上存在显式filter(切片器或filter)的情况,但上下文(总计高度)中存在多个filter(切片器或filter)。

当两者都为真时,我们返回VALUES('Table'[Value]),由[Value]中的不同值组成。 只有当我们已经知道确切的一个独特的价值时,才会对此进行评估。 1×1表在DAX中隐式转换为标量。

当[Value]有多个不同的值时,或者没有被过滤,则返回原来的度量值。

[条件显示]将失败,如果您有两行的[项目]具有多个值[值]相同的值。