矩阵仅在行有结果时才显示行。你可能会想:它是 0,所以没有结果。但这是错误的:0 也是一个有效的结果。为了删除该行,您必须确保结果为空,在数据库中也称为 NULL,在 DAX 中也称为 BLANK。
由于您没有发布您的措施的 DAX,一些建议:
- 删除源数据中的 0。不确定您是否有权访问数据,但您可以在 PowerQuery 或 SQL 中将 0 替换为空值/空白值。
- 我们看不到源数据(事实表中的数据是什么样的?),但我猜这才是真正的“问题”所在。
- 对度量进行调整。不是最漂亮的解决方案,但它确实有效。伪代码:
VAR _Show = COUNT ( 'Fact'[ID] )
RETURN
IF ( _Show = 0 , BLANK(), _Show)
但是,我们需要更多关于您的事实表中的数据以及您已经创建的度量的信息。
编辑:
您已将 BLANKS 替换为 0,并设置了“显示没有数据的项目”。那么上面的措施就没有用了。
建议:
新措施:
(假设 DimStatus[Description] 在列上
# Count =
// Orginal Measure: Count Unique IDs
VAR __COUNTROSTER = DISTINCTCOUNT('FactJobClubOrientation'[RosterID])
// Second Measuse: Count Regardless of show or no show, to see if there was a session
VAR __COUNTALLROSTER = CALCULATE(DISTINCTCOUNT('FactJobClubOrientation'[RosterID]), ALL('DimStatus'[Description]))
RETURN
// If there was a sesssion, show the measure with 0 instead of blanks
IF ( __COUNTALLROSTER > 0 , IF ( ISBLANK(__COUNTROSTER) , 0 , __COUNTROSTER))
第三个建议:
如果没有显示,您想用 0 显示所有位置。我为 DimDate 添加了 ISINSCOPE 检查,以防止在折叠位置时显示 0。
# Count =
// Orginal Measure: Count Unique IDs
VAR __COUNTROSTER = DISTINCTCOUNT('FactJobClubOrientation'[RosterID])
// Second Measuse: Count Regardless of show or no show, to see if there was a session
VAR __COUNTALLROSTER = CALCULATE(DISTINCTCOUNT('FactJobClubOrientation'[RosterID]), ALL('DimStatus'[Description]))
// Third: Show 0 for all locations, if there's no session.
VAR __NOROSTER = IF ( NOT ISINSCOPE('DimDate'[SessionDate]) , CALCULATE( 0 , ALL(DimLocation)))
RETURN
// If there was a sesssion, show the measure with 0 instead of blanks
IF ( __COUNTALLROSTER > 0 , IF ( ISBLANK(__COUNTROSTER) , 0 , __COUNTROSTER), __NOROSTER)