다음을 통해 공유


EARLIER 함수

언급된 열의 외부 계산 패스에서 지정한 열의 현재 값을 반환합니다.

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

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

구문

EARLIER(<column>, <number>)

매개 변수

용어

정의

열로 확인하는 열 또는 식입니다.

num

(선택 사항) 외부 계산 패스에 대한 양수입니다.

다음 계산 수준으로 외부 이동은 1로 표시되며 두 수준 외부 이동은 2로 표시됩니다.

생략되는 경우 기본값은 1입니다.

속성 값/반환 값

number개의 외부 계산 패스에서 column의 현재 행 값입니다.

예외

오류 설명

주의

테이블 검색 시작 이전의 행 컨텍스트가 있는 경우 EARLIER가 뒤에 나옵니다. 그렇지 않은 경우 오류가 반환됩니다.

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

[!참고]

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

EARLIER의 사용법을 설명하려면 순위 값을 계산한 다음 다른 계산의 순위 값을 사용하는 시나리오를 작성해야 합니다.

간단한 테이블인 ProductSubcategory를 기반으로 하는 다음 예제는 각 ProductSubcategory에 대한 전체 판매를 보여 줍니다.

순위 열을 포함하는 최종 테이블은 아래와 같습니다.

ProductSubcategoryKey

EnglishProductSubcategoryName

TotalSubcategorySales

SubcategoryRanking

18

Bib-Shorts

$156,167.88

18

26

Bike Racks

$220,720.70

14

27

Bike Stands

$35,628.69

30

28

Bottles and Cages

$59,342.43

24

5

Bottom Brackets

$48,643.47

27

6

Brakes

$62,113.16

23

19

Caps

$47,934.54

28

7

Chains

$8,847.08

35

29

Cleaners

$16,882.62

32

8

Cranksets

$191,522.09

15

9

Derailleurs

$64,965.33

22

30

Fenders

$41,974.10

29

10

Forks

$74,727.66

21

20

Gloves

$228,353.58

12

4

Handlebars

$163,257.06

17

11

Headsets

$57,659.99

25

31

Helmets

$451,192.31

9

32

Hydration Packs

$96,893.78

20

21

Jerseys

$699,429.78

7

33

Lights

 

36

34

Locks

$15,059.47

33

1

Mountain Bikes

$34,305,864.29

2

12

Mountain Frames

$4,511,170.68

4

35

Panniers

 

36

13

Pedals

$140,422.20

19

36

Pumps

$12,695.18

34

2

Road Bikes

$40,551,696.34

1

14

Road Frames

$3,636,398.71

5

15

Saddles

$52,526.47

26

22

Shorts

$385,707.80

10

23

Socks

$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

Wheels

$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 함수는 이제 모든 행이 EARLIER에 대한 현재 값인 $156,167.88보다 큰 TotalSubcategorySales 값을 갖는 테이블을 반환합니다.

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

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

EARLIER 함수는 항상 현재 테이블 연산 이전의 열 값을 가져옵니다. 이 전에 루프에서 값을 얻으려면 두 번째 인수를 2로 설정합니다.

참고 항목

참조

EARLIEST 함수

관련 자료

필터 함수(DAX)