在DAX中计算SUMMARIZE的计算

我有以下情况。 我有通过考试的学生。 他们可能同时有一个以上的主pipe。 我想在DAX中创build一个计算每个级别(即部门,主pipe,学生)平均分数的计算。

原始表格包含了每个学生的单项testing,但是我已经把这个表格与新创build的一个学生主pipe“留在了一起”,这样我就可以计算出主pipe的分数。 问题是当我计算每个部门的平均分数,因为它包含我用这个新表创build的所有重复。

这些是我的表格:

在这里输入图像说明

这是我的模型:

在这里输入图像说明

刚刚计算得分平均值的DAX显然适用于下面的数据透视表中的学生和主pipe,但在部门级别上是错误的:

Avg Score:=AVERAGE(score[Score]) 

在这里输入图像说明

在这一点上,我尝试了下面的东西,但没有成功。 我的意思是创build一个dynamic表与SUMMARIZE由testid分组,并做平均分数。 然后,我想再次平均,这将是正确的分数,并将1column-1row转换为数值。 但是这不起作用,我不知道为什么:

 Avg Score= VAR ThisTable=SUMMARIZE(score,score[TestId],"IndividualScore",AVERAGE(score[Score])) RETURN SUMMARIZE(ThisTable,"AvgScore",AVERAGE([IndividualScore])) 

这是我接近它的方式。

首先创build一个像下面这样的度量来获得每个上下文中的得分:

 Sum Score := MAX(Score[Score]) 

然后创build平均计算度量:

 Avg Score := DIVIDE ( SUMX ( DISTINCT ( Score[Student] ), [Sum Score] ), DISTINCTCOUNT ( Score[Student] ) ) 

请注意, Sum Score度量是必需的,因为Avg Score度量使用它来执行计算。

你将在Power BI中得到像Matrix(Pivot Table)这样的东西:

在这里输入图像说明

让我知道这是否有帮助。

好吧,多亏亚历山大的想法,我可以想出答案。 基本上我是通过testingID和平均分数(即真实分数)创build一个飞行表。 然后我使用AVERAGEX来计算这些testing的平均值。 这是DAX代码:

 Avg CSAT:=VAR ThisTable=SUMMARIZE(score,score[TestId],"SumOfScore",AVERAGE(score[Score])) RETURN AVERAGEX(ThisTable,[SumOfScore])