在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])