여러 범위 VLOOKUP 검색 공식
2007지원 버전 자세히 보기
서로 다른 여러 범위를 VLOOKUP 함수로 조회합니다.
인수 설명
01VLOOKUP + IFERROR 공식
=IFERROR ( VLOOKUP ( 찾을값, 범위1, 열번호, 0 ), IFERROR ( VLOOKUP ( 찾을값, 범위2, 열번호, 0 ), VLOOKUP ( 찾을값, 범위3, 열번호, 0 ) ) )인수 설명 자세히 보기(인수를 클릭하면 해당 영역만 강조됩니다. 여러 개를 함께 켜고 끌 수 있습니다.)
02VLOOKUP + VSTACK 공식 (엑셀 2024 이후)
=VLOOKUP ( 찾을값, VSTACK ( 범위1, 범위2, 범위3 ), 열번호, 0 )인수 설명 자세히 보기
동작 원리
01VLOOKUP + IFERROR 공식
VLOOKUP 함수는 각 범위를 차례로 조회하고 IFERROR 함수는 오류가 발생하면 다음 범위의 조회식을 계산합니다.
Excel 2007 이후 IFERROR 함수 공식의 예제 시트에서 F4 셀이 1800을 반환하는 계산 과정입니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.
첫 번째 범위에서 찾을값을 조회합니다
VLOOKUP 함수는 범위1의 상품 열에서 참외를 찾습니다. 범위1에는 참외가 없으므로 #N/A 오류를 반환합니다. IFERROR 함수는 #N/A 외의 오류도 처리하므로, 찾지 못한 경우에만 다음 범위를 조회하려면 Excel 2013 이후 IFNA 함수를 사용할 수 있습니다.
=VLOOKUP ( E4, $B$2:$C$3, 2, 0 )
범위1에는 참외가 없습니다. = #N/A
첫 번째 조회 결과입니다. 두 번째 범위에서 찾을값을 조회합니다
첫 번째 조회가 오류이므로 바깥 IFERROR 함수가 안쪽 IFERROR 함수를 계산합니다. 범위2의 VLOOKUP 함수도 참외를 찾지 못해 #N/A 오류를 반환합니다.
=VLOOKUP ( E4, $B$4:$C$5, 2, 0 )
범위2에도 참외가 없습니다. = #N/A
두 번째 조회 결과입니다. 세 번째 범위에서 결과를 찾습니다
두 번째 조회도 오류이므로 안쪽 IFERROR 함수가 범위3을 조회합니다. 참외와 일치하는 행의 두 번째 열에서 1800을 반환하며 전체 공식도 같은 값을 반환합니다.
=IFERROR ( VLOOKUP ( E4, $B$2:$C$3, 2, 0 ), IFERROR ( VLOOKUP ( E4, $B$4:$C$5, 2, 0 ), VLOOKUP ( E4, $B$6:$C$7, 2, 0 ) ) )
범위3에서 참외의 단가를 찾습니다. = 1800
참외의 단가입니다. 02VLOOKUP + VSTACK 공식 (엑셀 2024 이후)
VSTACK 함수는 같은 열 구조의 범위를 세로로 합치고 VLOOKUP 함수는 합쳐진 배열에서 값을 조회합니다.
M365·Excel 2024 VSTACK 함수 공식의 예제 시트에서 F4 셀이 1800을 반환하는 계산 과정입니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.
VSTACK 함수가 세 범위를 합칩니다
VSTACK 함수는 범위1, 범위2, 범위3을 입력한 순서대로 이어 붙여 6행 2열 배열을 반환합니다.
=VSTACK ( $B$2:$C$3, $B$4:$C$5, $B$6:$C$7 )
세 조회 범위를 세로로 합칩니다. = {"사과",1200;"배",1500;"복숭아",2500;"포도",3000;"참외",1800;"수박",2200}
위에서부터 이어진 6행 2열 배열입니다. VLOOKUP 함수가 합쳐진 배열을 조회합니다
VLOOKUP 함수는 합쳐진 배열의 첫 번째 열에서 참외를 찾고 같은 행의 두 번째 열에 있는 1800을 반환합니다.
=VLOOKUP ( E4, VSTACK ( $B$2:$C$3, $B$4:$C$5, $B$6:$C$7 ), 2, 0 )
합쳐진 배열에서 참외를 조회합니다. = 1800
참외의 단가입니다.
딱 필요했던 수식이었는데 정말 감사합니다!!!
추가로 질문드립니다.
지정해야 하는 여러 범위가 위와 같이 3개가 아니라 그 이상 (저의 경우 20개 범위)일 경우에는 어떻게 해야 할까요? iferror로 하니 3개까지만 범위가 지정되고 그 이상의 경우에는 인수가 너무 많다고 에러가 표시되더군요.
그럴 경우 수식이 다소 길어지겠지만, IFERROR로 범위를 계속 추가해서 사용해보세요 ^^ IFERROR 함수를 계속 추가하면 3개 이상으로도 범위를 사용할 수 있습니다.