brunch

You can make anything
by writing

C.S.Lewis

by Cheon Dec 25. 2016

[테이블 계산] LOOKUP( ) 함수

Primary 함수 중

Primary 함수는 Primary 함수 내에 다른 함수가 포함된다.


예: LOOKUP(SUM(Sales), 2)



Primary 함수

TOTAL( )

PREVIOUS_VALUE( )

LOOKUP( )

RUNNING( )

WINDOW( )




1. LOOKUP( )은 무엇인가?



‘LOOKUP(식, [오프셋])’은 지정된 상대적 오프셋만큼 현재 행으로부터 떨어진 대상 행에서 주어진 식을 계산하여 그 값을 반환한다. 대상 행을 결정할 수 없으면, ‘NULL'을 반환한다. 

또한, 'FIRST( ) + n’ 혹은 'LAST( ) - n’을 이용해서 대상을 파티션의 첫 번째 혹은 마지막 행에서부터의 상대 위치로 지정을 할 수 있다.



예를 들어보자.



◆ 계산된 필드에서, 아래와 같이 총 4개의 수식을 작성하자.






◆ ‘Order Date’, ‘Sales’, 그리고 위에서 만든 수식 4개를 드래그하여 아래와 같은 테이블을 만들자.


테이블 안에서는 각 연도별 Sales 값이 나와있고, ‘LOOKUP( )’을 사용해서 반환된 값이 나와있다.




세번째 열(‘테이블(아래로) 기준으로 lookup-1’)은 'LOOKUP(SUM([Sales]), -1)’을 사용했다.


위에서 읽은 ‘LOOKUP( )’의 개념을 따르면, 위 수식의 뜻은 현재 행으로부터 -1(그 전의 행)만큼 떨어진 대상 행에서 주어진 식을 계산하여 그 값을 반환하는 것이다. 즉, 첫번째 행 전의 행은 없기 때문에 ‘NULL’을 반환하여 값이 없는 것이고, 두번째 행 전의 행은 ‘2012년도’의 행을 말하므로, ‘2012년도’의 SUM(Sales)의 값을 반환하고, 그 값은 $484,247이다. 


세번째 행, 네번째 행도 두번째 행과 마찬가지로 각 행 그 전의 행의 값(SUM(Sales))을 반환하면 된다.(세번째 행의 그 전의 행은 ‘2013년도 행’, 네번째 행의 그 전의 행은 ‘2014년도 행’이다.) 




네번째 열(‘테이블(아래로) 기준으로 lookup+2’)은 'LOOKUP(SUM([Sales]), 2)’을 사용했다.


위 수식의 뜻은 현재 행으로부터 +2(그 두 앞의 행)만큼 떨어진 대상 행에서 주어진 식을 계산하여 그 값을 반환하는 것이다. 즉, 첫번째 행 두 앞의 행은 ‘2014년도’의 행을 말하므로, ‘2014년도’의 SUM(Sales)의 값을 반환하고, 그 값은 $608,474이다. 


두번째 행 두 앞의 행은 ‘2015년도’의 행을 말하므로, ‘2015년도’의 SUM(Sales)의 값을 반환하고, 그 값은 $733,947이다. 세번째 행과 네번째 행 두 앞의 행은 존재하지 않기 때문에 ‘NULL’을 반환하여 값이 없는 것이다.




다섯번째 열(‘테이블(아래로) 기준으로 lookup first+1’)은 'LOOKUP(SUM([Sales]), FIRST( )+1)’을 사용했다.


위 수식의 뜻은 첫번째 행으로부터 +1(그 다음 행)만큼 떨어진 대상 행에서 주어진 식을 계산하여 그 값을 반환하는 것이다. 즉, 다섯번째 열의 모든 행의 값은 첫번째 행(‘2012년도’)으로부터 +1만큼 떨어진 두번째 행(‘2013년도’)의 값인 $470,533을 반환한다. 




여섯번째 열(‘테이블(아래로) 기준으로 lookup last-1’)은 'LOOKUP(SUM([Sales]), LAST( )-1)’을 사용했다.


위 수식의 뜻은 마지막 행으로부터 -1(그 전의 행)만큼 떨어진 대상 행에서 주어진 식을 계산하여 그 값을 반환하는 것이다. 즉, 여섯번째 열의 모든 행의 값은 마지막 행(‘2015년도’)으로부터 -1만큼 떨어진 마지막에서 두번째 행(‘2014년도’)의 값인 $608,474를 반환한다. 





2. LOOKUP( )은 언제 사용할 수 있을까?



'LOOKUP( )'을 사용할 수 있는 간단한 예제 중 하나는 전년도와의 매출액의 차이를 보여주는 테이블을 만드는 것이다.


◆ ‘Order Date’, ‘Category’, 그리고 ‘Sales’를 사용해서 아래와 같은 테이블을 만들자.


◆ 계산된 필드에서 아래와 같은 수식을 작성하자.


위 수식의 뜻은 각 행의 매출액에서 그 전행의 매출액을 뺀 값이다.


◆ 위 수식(‘전년도와의 매출액 차이’)을 더블클릭하자.

◆ ‘Category’를 색상으로 드래그하자.


위 테이블을 보면, 각 Category의 Sales값이 연도별로 나오고, 각 Category에서 전년도와의 매출액 차이값이 연도별로 나온다. 예를 들어, Furniture에서 2012년도와 비교해 2013년도의 매출액의 차이는 ’$13,325’이다. 위와 같이 'LOOKUP( )’을 사용하면 전년도와의 매출액의 차이를 보여주는 테이블을 만들 수 있다.



위의 예제는 아주 간단한 경우이지만, 'LOOKUP( )’의 개념을 잘 이해하면, 다른 상황에서도 적용할 수 있을 것이다.

매거진의 이전글 [테이블 계산] PREVIOUS_VALUE( ) 함수
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari