DGET 함수
지원 버전 자세히 보기
엑셀 DGET 함수는 조건에 맞는 행이 하나일 때 그 행의 값을 찾아오는 함수입니다.
인수 설명
=DGET(표, 필드명, 조건범위)
- 머리글 행과 데이터 행이 함께 들어간 온전한 표여야 합니다.
- 머리글을 빼고 지정하면 필드명을 찾지 못해 오류가 납니다.
- 큰따옴표로 묶은 머리글을 쓰거나, 표의 왼쪽에서 센 열 번호를 씁니다.
- 조건 범위의 머리글은 표의 머리글과 글자가 같아야 합니다.
- 조건을 같은 행에 나란히 적으면 AND, 서로 다른 행에 적으면 OR가 됩니다.
함수 개요
엑셀 DGET 함수는 조건에 맞는 행에서 원하는 값을 하나 찾아오는 함수입니다. 조건에 맞는 행이 딱 하나일 때만 값을 돌려주고, 없으면 #VALUE!, 두 개 이상이면 #NUM! 오류를 냅니다. 이 성질을 이용해 값이 중복인지 검사하는 용도로도 씁니다.
A1:D7 범위에 사번·이름·부서·내선번호 표가 있고, F1 셀에 머리글 "사번", F2 셀에 조건 "K1047"을 적어 두었습니다.
=DGET(A1:D7,"내선번호",F1:F2)사번이 K1047인 사람의 내선번호를 찾아옵니다.
중복을 따질 필요가 없다면 VLOOKUP 함수 나 XLOOKUP 함수 가 더 간단합니다. 조건에 맞는 여러 건을 한 번에 가져오려면 FILTER 함수 를 사용합니다.
DGET 함수 간단 예제
A1:D7 범위에 사번·이름·부서·내선번호 표가 있습니다. F1 셀에 "사번", F2 셀에 "K1047"을 입력해 조건 범위를 만듭니다.
=DGET(A1:D7,"내선번호",F1:F2)사번이 K1047인 직원의 내선번호를 찾아옵니다.
이름만으로 찾으면 동명이인이 걸릴 수 있습니다. F1 셀에 "부서", G1 셀에 "이름"을 적고 F2 셀에 "개발팀", G2 셀에 "이하윤"을 같은 행에 적으면 대상이 한 명으로 좁혀집니다.
=DGET(A1:D7,"내선번호",F1:G2)개발팀 이하윤의 내선번호를 찾아옵니다.
조건에 맞는 행이 두 개 이상이면 DGET 함수는 #NUM! 오류를 냅니다. 이 성질로 값이 중복인지 확인할 수 있습니다. F1 셀에 "부서", F2 셀에 "영업1팀"을 적으면 두 행이 걸립니다.
=IFERROR(DGET(A1:D7,"이름",F1:F2),"중복 또는 없음")조건에 맞는 행이 하나가 아니면 안내 문구를 보여 줍니다.
그 외 주의사항
조건에 맞는 행이 하나일 때만 값을 돌려줍니다. 하나도 없으면 #VALUE!, 두 개 이상이면 #NUM! 오류가 나옵니다. 오류 대신 빈칸을 보이려면 IFERROR 함수로 감쌉니다.
조건 셀의 글자는 대소문자를 구분하지 않습니다. 대소문자까지 구분해 찾으려면 EXACT 함수를 쓰는 방식으로 바꿉니다.
조건 셀에 "김*"처럼 와일드카드를 쓰면 여러 행이 걸리기 쉽습니다. DGET 함수는 대상이 하나여야 하므로 와일드카드는 되도록 쓰지 않습니다.
조건 범위의 머리글은 표의 머리글과 글자가 정확히 동일해야 합니다. 다르면 조건이 무시되어 표 전체가 대상이 되고, 행이 여러 개이므로 #NUM! 오류가 나옵니다.