MATCH 함수
예제파일지원 버전 자세히 보기
엑셀 MATCH 함수는 범위 안에서 찾을 값의 위치 순번을 반환하는 함수입니다.
=MATCH(찾을값, 범위, [일치옵션])
- 범위는 반드시 단일행 또는 단일열이여야 합니다. (가로/세로로 긴 형태)
- 그렇지 않을 경우, MATCH 함수는 #N/A 오류를 반환합니다.
- 1 (또는 생략) : [기본값] 오름차순 정렬에서 찾을값보다 작은 값 중 가장 큰 값을 찾습니다.
- 0 : 정확히 일치
- -1 : 내림차순 정렬에서 찾을값보다 큰 값중 가장 작은 값을 찾습니다.
함수 개요
엑셀 MATCH 함수는 범위에서 지정한 값을 찾은 후, 해당 항목이 몇 번째 위치하는지 순번을 반환하는 함수입니다.
=MATCH("사과",{"배","귤","사과","포도","복숭아"})범위에서 사과의 순번인 '3'을 반환합니다.MATCH 함수는 주로 INDEX 함수 와 함께 사용되며, VLOOKUP 함수 보다 유연하고 강력한 검색 기능을 구현할 수 있습니다.
=INDEX({100,200,300,400,500},3)범위에서 3번째 값인 '300'을 반환합니다.=INDEX(가격범위,MATCH("사과",제품범위))제품 범위에서 "사과"를 찾아, 제품의 가격을 반환합니다.INDEX/MATCH 공식의 동작 원리는 아래 기초 입문 강의에서 알기 쉽게 정리했으니 참고해주세요!😊
MATCH 함수 간단 예제
A2:A6 셀에 직원 이름이 작성된 경우, 아래 함수는 범위에서 김영희 직원의 위치 순번을 반환합니다.
=MATCH("정지웅",A2:A6,0)=MATCH("정지웅", {"김선지", "최상혁", "정지웅", "황호성", "전숙경"}, 0)정지웅 직원의 위치 순번인 '3'을 반환합니다.MATCH 함수는 와일드카드 검색 을 지원합니다. 다음과 같이 함수를 작성하면, "상혁"으로 끝나는 직원 이름의 위치를 반환합니다.
=MATCH("*상혁", {"김선지", "최상혁", "정지웅", "황호성", "전숙경"}, 0)상혁으로 끝나는 직원 이름의 위치 순번인 '2'를 반환합니다.MATCH 함수의 일치 옵션을 활용하면, 작거나 같은 값 중 가장 큰 값을 검색할 수 있습니다. 아래 함수는 50,000 보다 작은 값 중, 가장 큰 값의 위치 순번을 반환합니다.
=MATCH(50000, {20000, 30000, 40000, 50000, 60000, 70000}, 1)50000보다 작은 값 중 가장 큰 값의 순번인 '3'을 반환합니다.자주 묻는 질문
MATCH함수가 잘못된 결과를 반환할 경우, 함수의 일치옵션을 확인합니다. 만약 1(작거나 같은 값) 또는 -1(크거나 같은 값)으로 설정한 경우, 범위는 반드시 오름차순 또는 내림차순으로 정렬되어야 합니다.
=MATCH(100,{128,90,82,87,164},1)범위가 오름차순으로 정렬되지 않아, 잘못된 순번인 '4'를 반환합니다.=MATCH(100,{82,87,90,128,164},1)100보다 작은 값 중 가장 큰 값인 90의 순번인 '3'을 반환합니다.그 외 주의사항
만약 찾을 값이 없거나 범위가 단일행 또는 단일열이 아닐 경우 함수는 #N/A 오류를 반환합니다.
일치 옵션을 1(작거나 값은 값) 또는 -1(크거나 값은 값)으로 설정한 경우, 범위는 반드시 오름차순 또는 내림차순으로 정렬해야 합니다.
찾을값이 문자이고, 일치옵션이 정확히일치(=0)일 경우에는 와일드카드(*,?,~)를 사용할 수 있습니다.
MATCH 함수는 찾은 값의 위치 순번을 반환합니다. 해당 순번의 실제 값을 얻으려면 INDEX 함수 를 함께 사용합니다.

예를들어서
브랜드 이름 상품번호 색깔번호 이렇게 있을때
브랜드 이름과 상품번호를 매치시켜서 색깔번호를 가져올려면 어떻게 하면 좋을까요?
상품번호가 중복이 많아서
브랜드에 상품번호가 일치했을때 색깔번호를 가져올수 있는 함수가 필요 합니다 ㅠㅠ
https://www.oppadu.com/vlookup-%ed%95%a8%ec%88%98-%eb%8b%a4%ec%a4%91%ec%a1%b0%ea%b1%b4-%ea%b2%80%ec%83%89/
네 맞습니다. Match 함수는 가로로 긴 1행 또는 세로로 긴 1열 대상으로만 올바르게 동작합니다. :)
넓은 배열을 범위로 입력하면 오류가 발생합니다.
아쉽게도 INDRECT 함수로는 동적범위를 참조할 수 없습니다. INDIRECT 함수로 동적범위를 참조하시려면, 표 기능을 사용하셔야 합니다.
=INDIRECT("표이름[필드명]")
으로 입력해서 사용해보세요.감사합니다!
한 셀에 여러 텍스트가 입력된 경우에 MATCH함수를 사용하기 위해 와일드카드 *를 사용할 때,
예를 들어 참조 범위에 "인도"와 "인도네시아"가 있는 경우, '인도'를 찾기 위해 인수로 "*"&인도&"*"를 입력할 경우 '인도네시아'를 찾아버리는 문제를 해결하고 싶은데 뾰족한 수가 없습니다 ㅠㅠ
말씀하신 내용은 로직상 인도, 인도네시아가 모두 검색되는 것이 맞습니다.
인도만 검색하려면 찾을 값으로 "인도"만 검색하셔야 합니다.^^
IF 함수로 정확히 일치할 경우, 포함할 경우를 나누어 검색되도록 함수를 작성해보세요.
아래와 같이 사용해보세요.
예를 들면
노란색 파란색 기타색 이라는 데이터에서 초록색이라는 글자를 찾으려 할때 이건 3번째 값인 기타색으로 가야하잖아요.
그러면 =match("초록",--({"노란색","파란색","기타색"}<>"초록색"),0) 이렇게 해야한다는 소린가요? <<이렇게 해봤으나 안되긴 했음..ㅜㅜ
아래 강의를 참고해서 수식을 수정해보시길 바랍니다.
https://www.oppadu.com/%ec%a7%84%ec%a7%9c%ec%93%b0%eb%8a%94-%ec%8b%a4%eb%ac%b4%ec%97%91%ec%85%80-7-5-4/