갈루아의 반서재

728x90

 

 

엑셀에서 특정 열의 마지막 값은 다음과 같이 찾을 수 있다. 

여기서는 LOOKUP 함수를 사용하여 마지막 값을 찾아보자.

 

위 예제에서 카운트 열(B열)에 마지막 값이 존재하는 과일의 이름은 다음과 같이 찾을 수 있다.

=LOOKUP(2,1/(B2:B10<>""),A2:A10)

 

여기서 A2:A10은 값이 있는 열 범위로, 즉, 마지막 값 존재 여부를 따지는 열로 필요한 열로 변경해서 사용하면 된다. 

그리고 B2:B10<>"" 조건으로 여기서는 값이 비어있지않은 셀을 찾는데 사용된다.

마지막으로 LOOKUP(2,1/조건,범위)은 조건에 맞는 가장 마지막 값을 찾는 수식이다.

 

그럼 여기서 1/조건에 대해서 더 살펴보자. 

1/조건은 조건을 만족하는 셀에 대해 1 값을 반환하고, 조건을 만족하지 않는 셀에는 #DIV/0! 오류를 발생시키게 된다.

예제의 조건인 B2:B10<>"" 는 각 셀이 빈 값이 아닌지를 확인한 후 결과값을 TRUE 또는 FALSE의 배열로 반환하게 된다.

 

즉, 1/(B2:B10<>"")의 결과 TRUE는 1로 변환되고, FALSE는 0으로 변환되어 1/0은 #DIV/0! 오류를 만들게 되는 것이다.  {1, 1, #DIV/0!, 1, ...}  같은 형태의 결과 배열을 반환한다.

 

다음으로 LOOKUP(2, ...) 부분을 보면, LOOKUP은 찾을 값이 2로, 앞서 생성된 배열에서 LOOKUP은 2보다 작거나 같은 가장 마지막 값을 찾게 된다. 2는 항상 배열에서 존재하지 않으므로 마지막 1을 선택하게 된다. 

 

LOOKUP 방식은 숫자뿐만 아니라 텍스트에도 사용할 수 있고, 열에 빈 셀이 포함되어 있어도 정상 작동한다는 장점이 있다.

 

다음 예제를 통해 위의 내용을 한 번 더 정리해보자. 

A열 B열
1 10
2 20
3 (빈 셀)
4 40
5 50

 

=LOOKUP(2,1/(B:B<>""),B:B)

 

동작:

  • 조건 평가: {TRUE, TRUE, FALSE, TRUE, TRUE}
  • 배열 생성: {1, 1, #DIV/0!, 1, 1}
  • LOOKUP이 2를 찾고 마지막 1에 해당하는 값(50)을 반환.

결과: 50

728x90