이전

적용 대상:계산 열계산 테이블측정값 시각적 계산

멘션 열의 외부 평가 패스에서 지정된 열의 현재 값을 반환합니다.

EARLIER은 특정 값을 입력으로 사용하고 해당 입력을 기반으로 계산을 생성하려는 중첩된 계산에 유용합니다. Microsoft Excel에서는 현재 행의 컨텍스트 내에서만 이러한 계산을 수행할 수 있습니다. 그러나 DAX에서는 입력 값을 저장한 다음 전체 테이블의 데이터를 사용하여 계산할 수 있습니다.

EARLIER은 주로 계산 열의 컨텍스트에서 사용됩니다.

구문

EARLIER(<column>, <number>)  

매개 변수

용어 정의
column 열로 확인되는 열 또는 식입니다.
num (선택 사항) 외부 평가 패스에 대한 양수입니다.

다음 평가 수준 아웃은 1로 표시됩니다. 2개 수준 아웃은 2로 표시됩니다.

생략된 기본값은 1입니다.

반환 값

열의 현재 행 값(외부 평가 패스 수)입니다.

예외

오류에 대한 설명

설명

  • 테이블 검색을 시작하기 전에 행 컨텍스트가 있는 경우 EARLIER 이 성공합니다. 그렇지 않으면 오류를 반환합니다.

  • EARLIER는 이론적으로 해당 열의 전체 행 수에 동일한 수(식의 구문에 따라 다름)를 곱하는 것과 가까운 많은 연산을 수행해야 하므로 함수 성능이 느릴 수 있습니다. 예를 들어 열에 행이 10개 있는 경우 약 100개의 작업이 필요할 수 있습니다. 행이 100개이면 10,000개에 가까운 작업이 수행될 수 있습니다.

  • 이 함수는 계산 열 또는 RLS(행 수준 보안) 규칙에서 사용되는 경우 DirectQuery 모드에서 사용할 수 없습니다.

참고 항목

실제로 VertiPaq 메모리 내 분석 엔진은 실제 계산 수를 줄이기 위해 최적화를 수행하지만 재귀를 포함하는 수식을 만들 때는 주의해야 합니다.

예시

EARLIER의 사용을 설명하기 위해 순위 값을 계산한 다음 다른 계산에서 해당 순위 값을 사용하는 시나리오를 빌드해야 합니다.

다음 예제는 이 간단한 테이블인 ProductSubcategory를 기반으로 하며 각 ProductSubcategory의 총 매출을 보여 줍니다.

순위 열을 포함한 최종 테이블이 여기에 표시됩니다.

ProductSubcategoryKey EnglishProductSubcategoryName TotalSubcategorySales SubcategoryRanking
18 빕 쇼츠 $156,167.88 18
26 자전거 랙 $220,720.70 14
27 자전거 스탠드 $35,628.69 30
28 물병 및 거치대 $59,342.43 24
5 바텀 브라켓 $48,643.47 27
6 브레이크 $62,113.16 23
19 Caps $47,934.54 28
7 Chains $8,847.08 35
29 Cleaners $16,882.62 32
8 크랭크 세트 $191,522.09 15
9 Derailleurs $64,965.33 22
30 Fenders $41,974.10 29
10 포크 $74,727.66 21
20 장갑 $228,353.58 12
4 핸들바 $163,257.06 17
11 헤드세트 $57,659.99 25
31 Helmets $451,192.31 9
32 Hydration Packs $96,893.78 20
21 Jerseys $699,429.78 7
33 조명 36
34 잠금 $15,059.47 33
1 산악용 자전거 $34,305,864.29 2
12 Mountain Frames $4,511,170.68 4
35 Panniers 36
13 Pedals $140,422.20 19
36 펌프 $12,695.18 34
2 도로용 자전거 $40,551,696.34 1
14 Road Frames $3,636,398.71 5
15 Saddles $52,526.47 26
22 반바지 $385,707.80 10
23 양말 $28,337.85 31
24 Tights $189,179.37 16
37 Tires and Tubes $224,832.81 13
3 Touring Bikes $13,334,864.18 3
16 Touring Frames $1,545,344.02 6
25 Vests $240,990.04 11
17 바퀴 $648,240.04 8

순위 값 만들기

행에서 지정된 값에 대한 순위 값을 가져오는 한 가지 방법은 비교되는 값보다 크거나 작은 값이 있는 동일한 테이블의 행 수를 계산하는 것입니다. 이 기술은 테이블에서 가장 높은 값에 대해 빈 값이나 0 값을 반환하는 반면, 같은 값은 동일한 순위 값을 가지며 다음 값(같음 값 이후)은 연속되지 않은 순위 값을 갖습니다. 아래 샘플을 참조하세요.

다음 수식을 사용하여 새 계산 열인 SubCategorySalesRanking을 만듭니다.

= COUNTROWS(FILTER(ProductSubcategory, EARLIER(ProductSubcategory[TotalSubcategorySales])<ProductSubcategory[TotalSubcategorySales]))+1  

다음 단계에서는 계산 방법을 자세히 설명합니다.

  1. EARLIER 함수는 테이블의 현재 행에 대한 TotalSubcategorySales 값을 가져옵니다. 이 경우 프로세스가 시작되므로 테이블의 첫 번째 행입니다.

  2. EARLIER([TotalSubcategorySales])은 외부 루프의 현재 행인 $156,167.88로 평가됩니다.

  3. 이제 FILTER 함수는 모든 행의 값이 $156,167.88(EARLIER현재 값)보다 큰 TotalSubcategorySales 값을 갖는 테이블을 반환합니다.

  4. COUNTROWS 함수는 필터링된 테이블의 행 수를 계산하고 해당 값을 현재 행의 새 계산 열에 1을 더한 값에 할당합니다. 상위 순위 값이 공백이 되지 않도록 하려면 1을 추가해야 합니다.

  5. 계산 열 수식은 다음 행으로 이동하고 1~4단계를 반복합니다. 이러한 단계는 테이블의 끝에 도달할 때까지 반복됩니다.

EARLIER 함수는 항상 현재 테이블 작업 전에 열 값을 가져옵니다. 그 전에 루프에서 값을 가져와야 하는 경우 두 번째 인수를 2로 설정합니다.

EARLIEST 함수
필터 함수