개념적/논리적 관점에서 다소 복잡한 DAX 문을 작성해야하므로 설명하기 어려울 수 있습니다.DAX 다른 테이블의 두 열을 기반으로 계산 된 열
두 개의 테이블이 있습니다.
첫 번째 표 (아래 참조)에는 숫자 값 목록 (임금)이 있습니다. 각 값에 대해 해당 날짜 범위가 있습니다. 나는 또한 EmployeeID와 FunctionID를 가지고있다. 이 표의 목적은 특정 기간 동안 특정 기능을 수행하는 직원에게 지급되는 시간당 임금을 추적하는 데 있습니다. 각 기능에는 임금 테이블에 자체 임금이 있지만, 각 직원은 동일한 기능 (기능 및 직원에 대한 차원이 있음)에 대해 다른 임금을받을 수도 있습니다.
'Wages'
Wage StartDate EndDate EmployeeID FunctionID
20 1/1/2016 1/30/2016 3456 20
15 1/15/2016 2/12/2016 3456 22
27.5 1/20/2016 2/20/2016 7890 20
20 1/21/2016 2/10/2016 1234 19
'표 2'에서 나는 직원이 특정 기능을 수행 한 날에 대한 기록을 가지고 있습니다. 표 1에는 모든 기능에 대한 임금 정보가 들어 있습니다.
'Table 2'
Date EmployeeID FunctionID DailyWage
1/1/2016 1234 $20 =CALCULATE(SUMX(???))
1/2/2016 1234 $20 =CALCULATE(SUMX(???))
1/3/2016 1234 $22 see below
1/4/2016 1234 $22
1/1/2016 4567 $27
1/2/2016 4567 $27
1/3/2016 4567 $27
난 할 노력하고있어 것은 'DailyWage'라는 '표 2'에 계산 된 열을 만드는 것입니다
(임금이 시간이 지남에 따라 변경 될 수 있습니다). '표 2'의 모든 행에서 EmployeeID를 하루 종일 지불 한 금액을 알 수 있습니다 (8 시간 근무시 가정).
정말 논리 단계와 사투를 벌인거야, 그래서이 계산을 할 수있는 가장 좋은 방법이 무엇인지 모르겠어요 ...
는 상황이 더 악화하기 위해, 직원 ID는 다른 임금에 대한 돈을받을 수 있습니다 다른 날짜에 동일한 기능. 그들은 일하는 임금 함수 X에서 시작해서 일반적으로 임금이 앞으로 몇 개월은 올라갈 것입니다 ... 즉, EmployeeID와 FunctionID를 연결하려고하면 연결될 수 없습니다 어느 테이블도 고유 값을 가지지 않으므로 연결된 값의 테이블.
즉, EmployeeID와 FunctionID를 EmpFunID로 구성하면 현재 행의 EmpFunID + 날짜를 가져 와서 "현재 행의 EmpFunID를 가져 와서 현재 날짜 행은 다음 동일한 EmpFunID를 가지며 덜 CurrentRowDate AND가 CurrentRowDate HERE
보다 종료 날짜보다했다는 STARTDATE을 갖는다 임금 테이블 임금 열에서의 값을 반환하는 것은 지금까지 것을이다
Step 1 = Filter 'Wages' table so that StartDate < CurrentRowDate
Step 2 = Filter 'Wages' table so that EndDate > CurrentRowDate
Step 3 = LOOKUPVALUE('Wages'[Wage], 'Wages'[EmpFunID], Table2[EmpFunID])
이제 DAX 기능으로 변환해야합니다.
두 테이블 모두에서 직원 ID와 기능 ID를 결합한 열을 만들어 데이터를 조회하는 이유는 무엇입니까? – teylyn
방금 업데이트 됨 - 임금 값이 시간이 지남에 따라 변경 될 수 있으므로 표 2에서 직원 1/32가 2011 년 1 월 4 일에 18 달러/시간, 2016 년 1 월 5 일에 직원이 인상을받는 경우 22 달러가되면 두 가지 임금 값을 가진 동일한 WageFunctionID 콤보가 생깁니다. – james5