2017-01-30 1 views
1

다음과 같은 경우가 있습니다. 나는 시험에 합격 한 학생들이있다. 동시에 1 명 이상의 관리자가있을 수 있습니다. DAX에서 모든 레벨 (예 : 부서, 관리자, 학생)의 평균 점수를 계산하는 계산을 만들고 싶습니다.DAX에서 SUMMARIZE 이상의 계산 계산

원본 테이블에는 학생 당 하나의 테스트가 있지만이 테이블을 새로 만든 학생 - 감독자와 "왼쪽에 합류했습니다". 그래서 감독자에 대한 점수도 계산할 수 있습니다. 문제는 부서별 평균 점수를 계산할 때입니다.이 표에는이 새 표를 사용하여 만든 모든 중복이 포함되어 있기 때문입니다.

이들은

내 테이블입니다 :

enter image description here

그리고 이것은 내 모델 :

단지 점수의 평균은 학생 및 감독을 위해 잘 작동 계산 명백한 DAX

enter image description here

아래의 피벗 테이블에 있지만 부서 수준에서는 잘못되었습니다.

Avg Score:=AVERAGE(score[Score]) 

enter image description here

이 시점에서 나는 다음과 같은 것을 시도했지만 성공하지 못했습니다. 필자의 요지는 testid로 그룹화하고 평균 점수를 계산하는 SUMMARIZE로 동적 테이블을 생성하는 것이었다. 그런 다음 다시 평균을 내고 싶습니다. 올바른 점수 일 것이고 1column-1row를 숫자 값으로 변환합니다. 하지만이 방법이 효과가 없으며 이유가 확실하지 않습니다.

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

답변

0

이렇게 접근하는 방법입니다.

먼저 각 상황에서 점수를 얻기 위해 다음과 같은 조치를 만듭니다

Sum Score := MAX(Score[Score]) 

그런 다음 평균 계산 측정 만들기 : Sum Score 측정이 필요

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

주를 Avg Score 측정하기 때문에 그것을 사용하여 계산을 수행합니다.

당신은 전원 BI에서이 매트릭스 (피벗 테이블) 같은 것을 얻을 것이다 :

enter image description here

이 도움이된다면 알려주세요.

+0

안녕하세요 alejandro, 답장을 보내 주셔서 감사합니다. 학생의 고유 테스트가 두 가지 이상일 때 계산에 문제가 있지만 SUMX 아이디어가 도움이되었다고 생각되면 아래에 게시하겠습니다. 다시 고마워! – Victor

+0

@ 빅터, 당신이 질문에 그걸 명시하지 않았다면, 나는 당신이 그것을 해결할 수있어서 기쁘다. –

0

알레한드로의 아이디어 덕분에 대답을 알 수있었습니다. 기본적으로 테스트 ID와 평균 점수 (즉, 실제 점수)별로 그룹을 사용하여 직접 테이블을 만듭니다. 그런 다음 AVERAGEX를 사용하여 평균값을 계산합니다. 다음은 DAX 코드입니다.

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