过滤多个事实的表格模型维度

我正在教育环境中构build一个表格模型,并且在跨多个基表过滤查找表时遇到了一些困难。

我已经阅读了关于桥接表,我相信我可以使用,但是我有十几个事实表,所以相应桥接表的数量似乎很麻烦。 我可以通过DAX来处理过滤吗? 我一直在努力学习更多的DAX,但是到目前为止我还是一个新的难题。

下面是一个我试图完成的示例场景:为了简化,我有一个名为Student的维度,其中包含每个学生的一行。 我有一个名为纪律的事实,其中包含每个学生的纪律事件logging(每个事件1个,而不是所有的学生都会有纪律事件)。 此外,我还有一张名为“评估”的事实表,其中包含考试的评估logging(每个学生完成一次评估)。 有些学生不会参加这个评估,所以他们没有相应的分数。

例如,当我在一个数据透视表中build模这个数据时,为了分析学科和评估之间的相关性,我引入了一个名为“学科事件计数”(学科事件logging计数)和“评估平均分数”(评估分数平均值)的度量。 我只想查看有两个值的学生列表,但我得到如下所示:

学生姓名——–纪律事件数——–评估平均分

学生A ——————-(空白)————————– —- 85.7

学生B ———————- 3 ————————- – – – (空白)

学生C ———————- 2 ————————- ——– 88.7

在这种情况下,我想我的结果集只包含学生C,因为他们都有一个值。 我还testing了在应用层(Excel)上处理过滤,通过过滤每列中的空白,但使用可能嵌套值和大量数据的真实数据,似乎不能很好地工作。

感谢您的任何反馈!

所以,在应用程序层进行过滤可能是您最好的select。

否则,你将不得不编写你的措施,以便每个人检查所有其他措施的值,以确定是否显示。

你分享样本的例子如下:

ConditionalDiscipline:= SWITCH( TRUE() ,ISBLANK( [Assessment Average Score] ) ,BLANK() ,[Discipline Incident Count] ) 

SWITCH()只是嵌套IF()的语法糖。

现在,只有当您的数据透视表由[Discipline Incident Count]和[Assessment Average Score]组成时,此措施才会起作用。 如果您从新的事实表中添加另一个度量值,那么数据透视表行上的学生值的存在将不会影响该行的显示。

你需要一个新的措施:

 ConditionalDiscipline - version 2:= SWITCH( TRUE() ,ISBLANK( [Assessment Average Score] ) ,BLANK() ,ISBLANK( [Your new measure] ) ,BLANK() ,[Discipline Incident Count] ) 

如果[评估平均得分]和[您的新测量]均为非空白,则此版本2将仅适用。 如果您在没有 [您的新措施]的情况下发布的样本中使用了这个版本2,那么对于没有[您的新措施]input的学生,它仍然会返回空白。

因此,对于可能与其一起使用的其他度量的每种可能组合,您都需要一个版本。

在DAX中没有办法定义“当前在同一上下文中进行评估的其他所有措施的集合”,这是您真正需要针对空白的存在进行testing的方法。

你可以,而不是使用一个开关(),只是乘以所有其他措施在一个单一的testing在IF(),因为乘以空白产量空白。 这对你需要编写的组合数量没有任何作用。 对于你如何定义你的testing,你有很多select,但是他们最终都会需要同样荒谬的独立测量定义。

我还想谈一谈你的问题。 你提到使用桥表。 只有在维度表之间实现多对多关系时,才需要桥接。 你没有实现这个。 你有几个具有一致性维度的事实。 一致的维度基本上是一个桥梁,它基于你的事实,每一个事实都存在于多对多的关系中,而这个事实是基于StudentKey的。 任何桥表是多余的。

长话短说,不是。 DAX中没有足够的内省设施来做你想做的事情。 在应用程序层处理它。