矩阵的Power BI过滤问题

时间:2020-08-05 18:12:47

标签: powerbi dax ssas-tabular

有人可以帮我吗?

查看所附图片。

Power BI中的矩阵将根据所选月份进行过滤(左图)。 如果在矩阵中选择1月,则在扩展Location R100时,存在1月6日,1月27日的值是正确的。但是我不必显示1月13日和1月21日,因为在这些日期没有安排任何会议。我该如何实现?

对于位置德尔帕索,我不必显示任何一月的日期,因为这些日期在这些位置没有任何会议。

Sample Fact Data

PowerBI Image

SSAS Tabular Model Relationships

January

June

SSAS 2017,PBI Sep 2019版本。

Power BI报表的数据源来自SSAS服务器。

谢谢

Vamsi

1 个答案:

答案 0 :(得分:0)

仅当该行有结果时,矩阵才显示该行。您可能会认为:它是0,所以没有结果。但这是错误的:0也是有效的结果。为了删除该行,您必须确保结果为空,在数据库中也称为NULL,在DAX中也称为BLANK。

由于您没有发布测量的DAX,因此有一些建议:

  • 删除源数据中的0。不确定是否可以访问数据,但是可以在PowerQuery或SQL中将0替换为空/空白值。
  • 我们看不到源数据(事实表中的数据是什么样的?),但我猜测这才是真正的“问题”所在。
  • 对度量进行调整。不是最漂亮的解决方案,但它可以工作。伪代码:
VAR _Show = COUNT ( 'Fact'[ID] )
RETURN
IF ( _Show = 0 , BLANK(), _Show)

但是,同样,我们需要有关您的事实表中的数据以及您已经创建的度量的更多信息。


编辑:

您已经用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)