이 하나 까다로운하지만 행할 수있다. 이해하기가 약간 어려울 수 있지만 이미 EARLIER 함수를 사용 했으므로의 마지막 날짜와 마지막 날과 마지막 날의 날짜 차이 사이에 을 계산하면 원하는 결과에 매우 근접합니다.
그래서 가정 소스 데이터는 다음과 같다 :
ID User Day
1 1 1-Jan
2 1 10-Jan
3 2 2-Feb
4 2 3-Feb
5 2 7-Feb
나는 종류의 특정 사용자에 대한 각 방문 순위 것 새로운 계산 된 열을 만드는 시작합니다. 이 공식은 그것을 수행해야합니다
=CALCULATE (
COUNTROWS ('datatable'),
'datatable'[User] = EARLIER ('datatable'[User]),
'datatable'[Day] < EARLIER ('datatable'[Day]),
ALL ('datatable')
)
+ 1
이 순위가 당신에게 데이터 테이블 사용자 기준으로 순위를 추가
수행이와 ID User Day CountLoginNumber
1 1 1/1/2014 12:00:00 AM 1
2 1 1/10/2014 12:00:00 AM 2
3 2 2/2/2014 12:00:00 AM 1
4 2 2/3/2014 12:00:00 AM 2
5 2 2/7/2014 12:00:00 AM 3
가 다른 중첩 된 열 (I에 대한 또 하나 개의 마법 공식이있다 솔직히
=
IF (
AND (
[CountLoginNumber] > 1,
[CountLoginNumber]
= CALCULATE (
COUNTROWS ('datatable'),
'datatable'[User] = EARLIER ('datatable'[User]),
ALL ('datatable')
)
),
CALCULATE (
LASTDATE ('datatable'[Day]),
'datatable'[User] = EARLIER ('datatable'[User]),
ALL ('datatable')
)
- CALCULATE (
LASTDATE ('datatable'[Day]),
'datatable'[User] = EARLIER ('datatable'[User]),
'datatable'[CountLoginNumber]
< EARLIER ('datatable'[CountLoginNumber]),
ALL ('datatable')
),
BLANK()
)
, t : 모든 무거운 않는) 그것을 마지막 로그인의 날짜라는 이름의 한 그는 내가 Powerpivot에서 쓴 가장 긴 공식 중 하나입니다. 분리 된 계산 된 열을 사용하여 수행 할 수 있지만 큰 팬이 아닙니다. 이것은 공식은 기본적으로 무엇을 :
- IF가 1 개 이상 로그인이 및 로그인의 날짜가 각 사용자에 대해 마지막으로 알려진 로그인에 동일한 경우 (I 만의 날짜 차이를 계산할지 여부를 절 검사 마지막으로 알려진 날짜).
- 위에서 언급 한 조건이 참인 경우 2 개의 계산식이 있습니다. 첫 번째 계산식은 각 사용자의 로그인 최종 날짜를 계산합니다. 두 번째 것은 매우 동일한 사용자에 대해 이전 것을 계산합니다). 두 날짜를 빼면 원하는 결과가이됩니다.
- IF 조건이 TRUE가 아닌 경우 실행되는 BLANK() function도 있습니다. 그냥
:-) 경우 결과 표는 다음과 같다 : 그와
ID User Day CountLoginNumber Date of Last Login
1 1 1/1/2014 12:00:00 AM 1
2 1 1/10/2014 12:00:00 AM 2 9
3 2 2/2/2014 12:00:00 AM 1
4 2 2/3/2014 12:00:00 AM 2
5 2 2/7/2014 12:00:00 AM 3 4
, 당신은 모든 다음 (분석을 수행하는 간단한 (전원) 피벗 테이블을 만들 수 있습니다)해야 할 일.
필요한 경우 내 source file in Excel (2013)을 확인하십시오. 희망이 도움이!
저는 DAX를 처음 사용했지만 몇 가지 생각 : 1. 사용자가 같은 날에 두 번 로그인하면 어떻게 될까요? 그들이 3 번 로그인 한 경우 0 일을 반환 하시겠습니까! 2. 시간 인텔리전스 기능 LASTNONBLANK가 위의 코드를 단순화 할 수 있다고 생각합니다. 내가 DAX에서 더 나을 때 더 생각해 볼 것입니다! – HarveyFrench