
엑셀에서 데이터를 분석하다 보면 동일한 조건이 여러 번 나타나는 상황에서 마지막으로 일치하는 값을 찾아야 하는 경우가 자주 있습니다. 일반적인 VLOOKUP 함수는 첫 번째로 발견되는 값만 반환하기 때문에, 가장 최근의 거래 기록이나 최신 업데이트된 정보를 찾기 위해서는 특별한 방법이 필요합니다. 이 문서에서는 INDEX와 MATCH 함수를 활용한 고급 기법부터 최신 XLOOKUP 함수까지 다양한 방법을 자세히 살펴보겠습니다.
INDEX MATCH 배열 공식으로 마지막 값 검색하기
가장 전통적이면서도 강력한 방법은 INDEX와 MATCH 함수를 결합한 배열 공식을 사용하는 것입니다. =INDEX($C$2:$C$13,MATCH(2,1/(B2:B13=E2))) 공식은 놀라운 로직을 사용합니다. B2:B13=E2 부분에서 조건에 맞는 셀들을 TRUE/FALSE로 판단하고, 1/(TRUE/FALSE)를 통해 TRUE는 1로, FALSE는 오류값으로 변환합니다. 그 다음 MATCH 함수가 존재하지 않는 숫자 2를 찾으려 하면서, 배열에서 마지막 1의 위치를 반환하게 됩니다. 이 방법은 모든 엑셀 버전에서 작동하며, 복잡해 보이지만 매우 안정적인 결과를 제공합니다. 공식을 입력할 때는 Ctrl+Shift+Enter를 함께 눌러 배열 공식으로 만들어야 하며, 마이크로소프트 INDEX 함수 공식 문서에서 더 자세한 정보를 확인할 수 있습니다.
XLOOKUP 함수의 역방향 검색 기능
엑셀 365나 2021 버전을 사용하고 있다면 XLOOKUP 함수가 제공하는 놀라운 기능을 활용할 수 있습니다. =XLOOKUP(E2, $B$2:$B$13, $C$2:$C$13,,,-1) 공식에서 마지막 매개변수인 -1이 핵심입니다. 이 값은 엑셀에게 검색 방향을 아래에서 위로 바꾸라고 지시하여, 자동으로 마지막으로 일치하는 값을 찾아줍니다. XLOOKUP은 VLOOKUP의 제한사항들을 해결한 차세대 조회 함수로, 왼쪽 방향 검색, 정확한 일치, 오류 처리 등 다양한 기능을 기본적으로 제공합니다. 특히 대용량 데이터를 다룰 때 성능상의 장점도 크며, 공식 작성이 훨씬 직관적입니다.
- XLOOKUP은 배열 공식 입력 없이도 자동으로 동적 배열 결과를 반환합니다
- 검색 범위와 반환 범위의 크기가 달라도 자동으로 조정됩니다
- 기본값으로 정확한 일치를 사용하여 더 정확한 결과를 보장합니다
- 오류 발생시 사용자 정의 메시지를 표시할 수 있습니다
LOOKUP 함수를 활용한 간단한 접근법
때로는 더 간단한 방법이 효과적일 수 있습니다. LOOKUP 함수는 정렬된 데이터에서 마지막 값을 찾는 데 특화되어 있습니다. =LOOKUP(2,1/(B2:B13=E2),C2:C13) 공식은 INDEX/MATCH 조합과 유사한 논리를 사용하지만 더 간결합니다. 다만 이 방법은 반환하려는 열의 데이터가 오름차순으로 정렬되어 있을 때만 정확하게 작동합니다. LOOKUP 함수는 이진 검색을 사용하기 때문에 매우 빠른 성능을 보여주지만, 데이터가 정렬되지 않은 경우 예상치 못한 결과를 반환할 수 있습니다.
| 방법 | 적용 버전 | 장점 |
|---|---|---|
| INDEX MATCH 배열공식 | 모든 엑셀 버전 | 가장 안정적, 정렬 불필요 |
| XLOOKUP 역방향 | 365, 2021 | 직관적, 고성능 |
| LOOKUP 함수 | 모든 엑셀 버전 | 간단한 공식, 빠른 속도 |
| SUMPRODUCT 조합 | 모든 엑셀 버전 | 복잡한 조건 처리 가능 |
SUMPRODUCT와 MAX 함수 조합 활용법
더욱 복잡한 조건을 처리해야 할 때는 SUMPRODUCT와 MAX 함수를 조합한 방법이 유용합니다. =INDEX(C2:C13,SUMPRODUCT(MAX((B2:B13=E2)*ROW(B2:B13)))-1) 공식은 조건에 맞는 행들 중에서 가장 큰 행 번호를 찾아내는 방식으로 작동합니다. ROW 함수가 각 행의 번호를 반환하고, 조건에 맞지 않는 행은 0으로 만들어서 MAX 함수가 가장 큰 행 번호를 선택하게 됩니다. 이 방법은 특히 여러 조건을 동시에 만족하는 마지막 값을 찾을 때 매우 강력합니다.
엑셀 대학교의 조회 함수 가이드에서는 이러한 고급 기법들에 대한 추가적인 설명과 예제를 제공합니다. SUMPRODUCT 함수는 배열 연산에 특화되어 있어서, 복잡한 비즈니스 로직을 엑셀 공식으로 구현할 때 자주 사용됩니다. 예를 들어 특정 기간 내에서 특정 조건을 만족하는 가장 최근 거래를 찾거나, 여러 부서 중에서 가장 최근 보고서를 찾는 등의 작업에 활용할 수 있습니다.
VBA 매크로를 이용한 자동화 솔루션
반복적인 작업이 많거나 더 높은 성능이 필요한 경우에는 VBA 매크로를 활용할 수 있습니다. 사용자 정의 함수를 만들어서 =LastMatch(검색값, 검색범위, 반환범위) 형태로 간단하게 사용할 수 있습니다. VBA 코드는 For 루프를 역방향으로 돌려서 마지막 일치값을 찾는 방식으로 작동하며, 복잡한 조건이나 대용량 데이터에서도 안정적인 성능을 보여줍니다. 또한 에러 처리, 진행 상황 표시, 로그 기록 등 추가 기능을 구현할 수도 있습니다.
VBA 솔루션의 가장 큰 장점은 완전한 커스터마이징이 가능하다는 점입니다. 복잡한 비즈니스 룰을 적용하거나, 여러 워크시트에 걸쳐 데이터를 검색하거나, 실시간으로 데이터가 변경될 때 자동으로 업데이트되는 기능 등을 구현할 수 있습니다. 마이크로소프트 VBA 시작 가이드를 참고하면 기본적인 VBA 문법부터 고급 기능까지 학습할 수 있습니다.
파워쿼리를 활용한 데이터 변환 방법
엑셀의 파워쿼리 기능을 사용하면 GUI 환경에서 복잡한 데이터 변환 작업을 수행할 수 있습니다. 데이터 탭에서 데이터 가져오기를 선택한 후, 그룹화 기능을 사용하여 각 그룹의 마지막 항목을 선택할 수 있습니다. 파워쿼리는 M 언어라는 함수형 언어를 기반으로 하지만, 대부분의 작업을 마우스 클릭만으로 수행할 수 있어서 코딩 지식이 없어도 사용하기 쉽습니다. 특히 외부 데이터 소스와 연결해야 하거나, 정기적으로 데이터를 업데이트해야 하는 경우에 매우 유용합니다.
파워쿼리의 또 다른 장점은 데이터 계보 관리와 자동 새로고침 기능입니다. 원본 데이터가 변경되면 클릭 한 번으로 모든 변환 단계를 다시 실행하여 최신 결과를 얻을 수 있습니다. 또한 파워쿼리 공식 블로그에서 최신 기능과 팁들을 지속적으로 업데이트하고 있어서, 고급 사용자들에게는 더욱 강력한 도구가 될 수 있습니다. 큰 데이터셋을 다룰 때는 메모리 사용량과 처리 속도 면에서도 일반 공식보다 우수한 성능을 보여줍니다.



