이 항목에서는 함수의 잘못된 결과에 대한 가장 일반적인 VLOOKUP 이유를 설명하고 대신 INDEX 및 MATCH 를 사용하기 위한 제안을 제공합니다.
: 또한 빠른 참조 카드: VLOOKUP 문제해결 팁을 참조하여 #NA 문제에 대한 일반적인 이유를 편리한 PDF 파일로 제공합니다. PDF를 다른 사람과 공유하거나 참조용으로 인쇄할 수 있습니다.
문제: 조회 값이 table_array 인수의 첫 번째 열에 없습니다.
VLOOKUP의 한 가지 제약 조건은 테이블 배열의 가장 왼쪽 열에 있는 값만 찾을 수 있다는 것입니다. 조회 값이 배열의 첫 번째 열에 없으면 #N/A 오류가 표시됩니다.
다음 표에서는 케일 판매 수를 검색하고자 합니다.
조회 값 "Kale"이 table_array 인수 A2:C10의 두 번째 열(Produce)에 나타나기 때문에 #N/A 오류가 발생합니다. 이 경우 Excel은 B열이 아닌 A열에서 해당 항목을 찾습니다.
해결 방법: 올바른 열을 참조하도록 VLOOKUP을 조정하여 이 문제를 해결할 수 있습니다. 가능하지 않으면 열을 이동해 보세요. 또한 셀 값이 다른 계산의 결과인 크거나 복잡한 스프레드시트가 있는 경우 또는 단순히 열을 이동할 수 없는 다른 논리적 이유가 있는 경우 매우 비실용적일 수 있습니다. 해결 방법은 조회 테이블 내 위치와 관계없이 열에서 값을 조회할 수 있도록 INDEX 및 MATCH 함수를 함께 사용하는 것입니다. 다음 섹션을 참조하세요.
대신 INDEX/MATCH를 사용하는 것이 좋습니다.
INDEX 및 MATCH는 VLOOKUP이 요구 사항을 충족하지 못하는 많은 경우에 적합한 옵션입니다. INDEX/MATCH의 중요한 이점은 조회 테이블의 임의 위치에 있는 열에서 값을 조회할 수 있다는 것입니다. INDEX는 위치에 따라 지정된 테이블/범위에서 값을 반환합니다. MATCH는 테이블/범위에서 값의 상대적 위치를 반환합니다. 수식에서 INDEX와 MATCH를 함께 사용하여 테이블/배열에서 값의 상대 위치를 지정하여 테이블/배열에서 값을 조회합니다.
VLOOKUP 대신 INDEX/MATCH를 사용하면 몇 가지 이점이 있습니다.
-
INDEX 및 MATCH를 사용하면 반환 값이 조회 열과 동일한 열에 있을 필요가 없습니다. 이는 반환 값이 지정된 범위에 있어야 하는 VLOOKUP과 다릅니다. 이것은 어떤 문제가 있나요? VLOOKUP을 사용할 경우 반환 값이 포함된 열 번호를 알아야 합니다. 어려운 것처럼 보이지 않을 수 있지만 큰 테이블이 있고 열 수를 계산해야 하는 경우 번거로울 수 있습니다. 또한 테이블에서 열을 추가/제거하는 경우 col_index_num 인수를 다시 계산하고 업데이트해야 합니다. INDEX 및 MATCH를 사용할 경우 조회 열이 반환 값이 포함된 열과 다르기 때문에 계산이 필요하지 않습니다.
-
INDEX 및 MATCH를 사용하면 배열의 행 또는 열을 지정하거나 둘 다 지정할 수 있습니다. 즉, 값을 세로 및 가로 방향으로 둘 다 조회할 수 있습니다.
-
INDEX 및 MATCH를 사용하여 모든 열에서 값을 조회할 수 있습니다. 테이블의 첫 번째 열에 있는 값만 조회할 수 있는 VLOOKUP과 달리 조회 값이 첫 번째 열, 마지막 열 또는 그 사이에 있는 경우 INDEX 및 MATCH가 작동합니다.
-
INDEX 및 MATCH는 반환 값이 포함된 열에 대한 동적 참조를 만드는 유연성을 제공합니다. 이는 INDEX 및 MATCH를 중단하지 않고 테이블에 열을 추가할 수 있음을 의미합니다. 반면 VLOOKUP은 테이블에 대한 정적 참조를 만들기 때문에 테이블에 열을 추가해야 하는 경우 중단됩니다.
-
INDEX 및 MATCH는 일치에 더 많은 유연성을 제공합니다. INDEX 및 MATCH는 정확히 일치하거나 조회 값보다 크거나 작은 값을 찾을 수 있습니다. VLOOKUP은 값에 가장 가까운 일치(기본값) 또는 정확한 값만 검색합니다. VLOOKUP은 기본적으로 테이블 배열의 첫째 열이 사전순으로 저장된다고 가정하며, 테이블이 이 방법으로 설정되지 않을 경우 VLOOKUP은 테이블에서 첫 번째로 가장 가까운 일치를 반환하고 이 값은 찾고 있는 데이터가 아닐 수 있습니다.
구문
INDEX/MATCH에 대한 구문을 작성하려면 INDEX 함수의 배열/참조 인수를 사용하고 MATCH 구문을 인수 내부에 중첩해야 합니다. 다음과 같은 형식을 취합니다.
=INDEX(배열 또는 참조, MATCH(lookup_value,lookup_array,[match_type])
INDEX/MATCH를 사용하여 위의 예에서 VLOOKUP을 대체해 보겠습니다. 구문은 다음과 같이 표시됩니다.
=INDEX(C2:C10,MATCH(B13,B2:B10,0))
간단한 영어로 다음을 의미합니다.
=INDEX(C2:C10에서 값 반환, 이 값의 일치 조건 MATCH(케일, 이 값은 B2:B10 배열에 포함됨, 이 배열에서 반환 값은 케일에 해당하는 첫 번째 값임))을 의미합니다.
이 수식은 C2:C10에서 케일(B7에 있음)에 해당하는 첫 번째 값을 검색하고 C7에서 케일과 일치하는 첫 번째 값(100)을 반환합니다.
문제: 정확한 일치 항목을 찾을 수 없음
range_lookup 인수가 FALSE이고 VLOOKUP이 데이터에서 정확한 일치 항목을 찾을 수 없으면 #N/A 오류가 반환됩니다.
해결 방법관련 데이터가 스프레드시트에 있는 것이 확실하고 VLOOKUP이 오류를 catch하지 않으면 시간을 내어 참조된 셀에 숨겨진 공백이 있거나 인쇄되지 않는 문자가 있는지 확인하세요. 또한 셀이 올바른 데이터 유형을 따르는지 확인하세요. 예를 들어 숫자가 있는 셀은 텍스트가 아닌 숫자 형식이어야 합니다.
문제: 조회 값이 배열의 가장 작은 값보다 작음
range_lookup 인수가 TRUE로 설정되고 조회 값이 배열의 가장 작은 값보다 작은 경우 #N/A 오류가 표시됩니다. TRUE로 설정하면 배열에서 유사 일치를 검색하고 조회 값보다 작은 가장 가까운 값을 반환합니다.
다음 예제에서 조회 값은 100이지만 B2:C10 범위에는 100보다 작은 값이 없으므로 오류입니다.
해결 방법:
-
필요에 따라 조회 값을 수정합니다.
-
조회 값을 변경할 수 없고 일치 값에 더 큰 유연성이 필요한 경우 VLOOKUP 대신 INDEX/MATCH를 사용해 보세요. 이 문서의 위 섹션을 참조하세요. INDEX/MATCH를 사용하여 조회 값보다 크거나, 작거나, 같은 값을 조회할 수 있습니다. VLOOKUP 대신 INDEX/MATCH를 사용하는 방법에 대한 자세한 내용은 이 항목의 이전 섹션을 참조하세요.
문제: 조회 열은 오름차순으로 정렬되지 않습니다.
range_lookup 인수가 TRUE로 설정되고 조회 열 중 하나가 오름차순(A-Z)으로 정렬되지 않은 경우 #N/A 오류가 표시됩니다.
해결 방법:
-
VLOOKUP 함수를 변경하여 정확한 일치 항목을 검색합니다. 이렇게 하려면 range_lookup 인수를 FALSE로 설정합니다. FALSE에는 정렬이 필요하지 않습니다.
-
INDEX/MATCH 함수를 사용하여 정렬되지 않은 테이블에서 값을 조회합니다.
문제: 값이 큰 부동 소수점 숫자임
셀에 시간 값이나 큰 10진수가 있으면 부동 소수점 정밀도 때문에 Excel에서 #N/A 오류가 반환됩니다. 부동 소수점 숫자는 소수점 뒤에 오는 숫자입니다. Excel은 시간 값을 부동 소수점 숫자로 저장합니다. Excel에서는 매우 큰 부동 소수점이 있는 숫자를 저장하지 못하기 때문에 함수가 제대로 작동하려면 부동 소수점 숫자를 5자리 소수 자릿수로 반올림해야 합니다.
해결 방법: ROUND 함수를 사용하여 숫자를 최대 5자리 소수 자릿수로 반올림하여 숫자를 줄입니다.
추가 지원
언제든지 Excel 기술 커뮤니티에서 전문가에게 문의하거나 커뮤니티에서 지원을 받을 수 있습니다.