2016-07-28 3 views
0

PowerPivot을 처음 사용하고 DAX입니다. 나는 몇몇 온라인 튜토리얼을 따라 갔다. 이제는 해결할 수없는 작은 문제가 있습니다. 내가 가장 최근의 날짜와 두 번째 가장 최근 날짜 사이에 Value의 차이 (이익/손실)을 계산하려는 각 날짜에 대한PowerPivot의 이전 날짜와 이전 날짜의 값 비교

Date Instrument Value 2016-07-27 A 100 2016-07-27 B 98 2016-07-26 A 102 2016-07-25 B 99

: 나는 다음과 같은 데이터를 가지고있다. 위의 데이터는 다음과 같은 것이 들어 :

내가 =EARLIER([Date])를 사용하여 두 번째로 큰 일을 찾기 위해 DAX와 시도했지만 그것이 작동하도록 관리하지 않은

Date Instrument Value Profit/Loss 2016-07-27 A 102 2 ([Val. inst. A 2016-07-27]-[Val. inst. A 2016-07-26]) 2016-07-27 B 98 -1 ([Val. inst. B 2016-07-27]-[Val. inst. B 2016-07-25]) 2016-07-26 A 100 2016-07-25 B 99

. 두 번째 가장 큰 날짜를 사용하면 해당 날짜에 해당하는 Value을 찾을 수 있습니다. 이것이 어떻게 해결 될 수 있을지에 대한 제안?

답변

0

결국 나는 세 단계로 된 해결책을 생각해 냈습니다 (단계는 한 단계로 결합 될 수 있습니다). 처음에는 모든 날짜의 순위를 매기고 가장 최근의 날짜는 1이고 두 번째로 가장 최근의 날짜는 2입니다. 그 후 각 행의 두 번째 가장 최근 날짜 인 Value을 검색합니다. 마지막으로 현재 행의 Value과 그 행의 날짜와 비교하여 두 번째 가장 최근 날짜의 Value 사이의 차이를 계산합니다.

내가 다음에 사용되는 날짜 순위 :

=RANKX(FILTER(ALL(table);EARLIER([Instrument])=[Instrument]);[Date];;FALSE())

설명을 나는 DAX 공식이하고있는 생각에. RANKX은 테이블을 가져 와서 해당 테이블의 열에있는 값의 순위를 매김으로써 작동합니다. 위의 필자는 필터링 된 테이블을 테이블로 사용했습니다. 필터링 된 표는 해당 행에 대한 계측기와 동일한 계측기 만 포함하는 각 행에 대해 새 표를 작성합니다. 첫 번째 행에 대해 필터링 된 표는 다음과 같습니다. 그 필터링 테이블에

Date Instrument Value 2016-07-27 A 100 2016-07-26 A 102

날짜는 위를 기록하고 있습니다. 그때 현재 행의 Rank-1에 따라 각 행에 대해 두 번째 가장 최근의 날짜 Value을 빼 순위를 사용

Date Instrument Value Rank 2016-07-27 A 100 1 2016-07-26 A 102 2

.

Value second most recent date = CALCULATE(MAX([Value]);FILTER(table;EARLIER([Instrument])=[Instrument] && [Date Rank]= EARLIER([Date Rank]))

마지막으로 나는 차이 계산 :

PnL = [Value] - [Value second most recent date]

내가 EARLIER가 무엇을하고 있는지 잘 모르겠어요를하지만 난 그게 반복적 인 프로세스의 일종이라고 생각합니다.