목차
엑셀에서 VLOOKUP 함수는 아주 유용한 함수인 것과 동시에 오류가 많이 발생하는 함수이기도 합니다.
사용 방법이 은근히 까다롭기 때문인데 이번 포스팅에서는 VLOOKUP함수에서 발생할 수 있는 오류를 정리해 보겠습니다.
오늘은 VLOOKUP 함수에서 발생할 수 있는 오류중 #N/A에 대해서 다루어 보겠습니다.
VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])
- lookup_value는 조회하려는 값입니다.
- table_array는 값을 검색할 셀의 범위입니다.
- col_index_num은 table_array에서 가져올 값이 몇 번째 열에 포함되는지를 넣어주는 것입니다.
- range_lookup는 선택값이며 TRUE인 경우는 테이블의 첫 번째 열이 정렬되어 있어야 하며 가까운 값을 검색합니다.(유사 일치) FALSE인 경우 정확한 값을 검색합니다. 기본값은 TRUE입니다.
1. 조회 값이 table_array의 첫 번째 열에 없는 경우
이름을 가지고 업무시간을 가져오고 싶었지만 #N/A오류가 발생했습니다.
F2에 입력된 수식입니다.
=VLOOKUP(E2,A2:C4,2,FALSE)
table_array의 첫 번째열 값을 기준으로 조회를 해야 합니다.
이경우는 이름으로 업무시간을 조회하고 싶은 것이므로 이름이 첫 번째 열이 되어야 합니다.
=VLOOKUP(E2,B2:C4,2,FALSE)
즉 함수의 두 번째 인자의 범위를 B2:C4까지 지정해 주면 업무시간을 제대로 가져오는 것을 볼 수 있습니다.
이런 문제를 해결하기 위해 INDEX/MATCH 또는 XLOOKUP 함수를 사용해야 합니다.
해당 함수들의 사용법은 아래 포스팅에서 확인 가능합니다.
VLOOKUP은 그만! XLOOKUP, INDEX/MATCH를 사용해 보자. (tistory.com)
2. 정확히 일치하는 항목이 없는 경우
range_lookup이 TRUE인 경우는 유사한 값을 가져오기 때문에 오류가 발생하지 않지만 FALSE인 경우는 정확히 일치하는 값을 가져와야 하는데 없는 경우 #N/A오류가 발생합니다.
둘 중 한 가지를 해결해 줘야 하는데 range_lookup을 TRUE로 바꾸는 경우 나도 모르게 원치 않는 값을 가져올 수 있습니다.
그러니 정확한 이름으로 조회해 오도록 수정하겠습니다.
간혹 겉으로 봤을 때 텍스트가 일치하는데 값을 잘못 가져오는 경우 셀의 형식을 확인해야 합니다.
숫자가 있으면 숫자형으로 되어 있어야 합니다.
3. table_array가 오름차순으로 정렬되지 않은 경우
오름차순 문제는 range_lookup값이 TRUE인 경우만 해당됩니다.
FALSE는 정렬되지 않아도 됩니다.
Dave의 업무시간을 조회하려고 하는데 40이 조회되지 않고 38이 조회되었습니다.
Can - Dave - Jane순으로 정렬이 되면 해결됩니다.
1. 이름 열의 데이터를 드래그하고 우클릭합니다.
2. [정렬]에 커서를 가져갑니다.
3. [텍스트 오름차순 정렬]을 클릭합니다.
4. [선택 영역 확장]을 선택합니다.
5. [정렬]을 클릭합니다.
F2의 수식은 같지만 정렬을 하여 제대로 된 값을 가져오게 되었습니다.
4. 값이 큰 부동 소수점인 경우
흔히 발생하지는 않지만 셀에 시간 값이나 큰 10진수, 소수가 있다면 #N/A가 발생할 수 있습니다.
이런 경우 ROUND를 사용하여 최대 5자리 소수로 반올림하여야 오류가 없어집니다.
'업무 프로그램 > MS 엑셀' 카테고리의 다른 글
엑셀 한글 깨짐 해결(ft. cvs 인코딩 변경) (0) | 2023.06.16 |
---|---|
엑셀 VLOOKUP 오류 총정리 2탄(ft. #VALUE!, #REF) (1) | 2023.06.15 |
엑셀 문자열 데이터 구분 기호로 나누기 (0) | 2023.06.12 |
엑셀 녹색 삼각형(초록색 세모) 없애기(ft. IF가 안될 때) (0) | 2023.06.08 |
VLOOKUP은 그만! XLOOKUP, INDEX/MATCH를 사용해 보자. (0) | 2023.06.07 |