엑셀 함수 > 자주 사용하는 함수 > MATCH 함수 - 범위에서 값의 위치 찾기

MATCH 함수 - 범위에서 값의 위치 찾기

엑셀의 MATCH 함수는 지정된 범위에서 찾고자 하는 값의 위치를 반환합니다.

단순히 위치만 찾아 주므로 위치만 가지고는 쓸 일이 많이 없습니다. INDEX 함수 등 다른 함수와 함께 사용해서 성적 등급을 계산하는 등 응용해서 많이 사용되므로 함수의 구조를 잘 이해해  두면 복잡한 문제 해결 시 많은 도움이 됩니다.

 

구문(Syntax)

MATCH

MATCH(lookup_value, lookup_array, [match_type])

지정된 범위에서 찾고자 하는 값의 위치를 반환한다.

인수 :

  • lookup_value : 찾고자 하는 값
  • lookup_array : 값을 찾을 범위
  • match_type : 일치 유형
    1 또는 생략 : lookup_value와 일치하거나  작은 것을 찾음, lookup_array 는 오름차순으로 정렬되어 있어야 함
    0 : lookup_value와 일치하는 것을 찾음, lookup_array 는 정렬되어 있지 않아도 됨
    -1 : lookup_value와 일치하거나  큰 것을 찾음, lookup_array 는 내림차순으로 정렬되어 있어야 함
실습용 엑셀파일 다운로드 : 엑셀-MATCH-함수-범위에서-값의-위치찾기.xlsx

 

사용 예

1) 일치하는 값의 위치 찾기

오름차순 정렬된 자료에서 숫자 85의 위치를 찾으려면

MATCH 함수로 일치하는 값의 위치 찾기

[B16] 셀에 다음 수식을 입력합니다.

=MATCH(85,B5:B13,0) => 8

MATCH 함수로 일치하는 값의 위치 찾기 수식설명

찾는 값 85는 [B5:B13] 범위의 8번째에 있으므로 위치 8이 구해집니다.
(위치 8은 행의 번호가 아니라 찾는 범위내에서의 위치임)

 

※ 주의 : 만약 다음과 같이 수식을 입력하면(표에 없는 79을 찾으면) 

=MATCH(79,B5:B13,0) => #N/A
표에서 79와 일치하는 값은 없으므로 #N/A오류 발생합니다.

 

2) 근사값의 위치 찾기(오름차순)

이번에는 일치하는 값이 아닌 근사값 84의 위치를 오름차순으로 정렬된 자료에서 찾으려면

MATCH 함수로 근사값의 위치 찾기(오름차순)

[B22] 셀에 다음 수식을 입력합니다.

=MATCH(84,B5:B13,1) => 7

MATCH 함수로 근사값의 위치 찾기(오름차순) 수식 설명

84와 일치하는 값은 없지만 84보다 작은 77을 찾아서 위치 7을 구해줍니다.

※ 주의 :  만약 다음과 같이 수식을 입력하면(마지막 인수를 -1로 입력하면 내림차순으로 찾음) 

=MATCH(84,B5:B13,-1) => #N/A
84와 일치하는 값이 없고 오름 차순 정렬되어 있지 않아서 오류가 발생합니다.

 

3) 근사값의 위치 찾기(내림차순)

이번에는 근사값 84의 위치를 내림차순으로 정렬된 자료에서 찾으려면

MATCH 함수로 근사값의 위치 찾기(내림차순)

[B28] 셀에 다음 수식을 입력합니다.

=MATCH(84,D5:D13,-1) => 2

MATCH 함수로 근사값의 위치 찾기(내림차순) 수식 설명

84와 일치하는 값은 없지만 84보다 큰 85를 찾아서 위치 2를 구해줍니다.

 

 


관련 글

XMATCH 함수 사용법 XMATCH 함수 사용법 - 엑셀의 XMATCH 함수는 지정된 범위에서 찾고자 하는 값의 위치를 반환합니다. 이 함수는 용도가 비슷한 MATCH 함수 기능에 다음과 같은 유용한…

XMATCH 함수 사용법 더 보기 »

XLOOKUP 함수 사용법 XLOOKUP 함수 - 표에서 값찾기(VLOOKUP 단점 해결) - XLOOKUP 함수는 기존 VLOOKUP, HLOOKUP 함수의 몇 가지 단점(찾는 키값이 항상 1열에 있어야 하고, 가로로 된 표는 VLOOKUP 대신 HLOOKUP…

XLOOKUP 함수 - 표에서 값찾기(VLOOKUP 단점 해결) 더 보기 »

HLOOKUP 함수 사용법 HLOOKUP 함수 - 표를 수평으로 따라가면서 값찾기 - 엑셀의 HLOOKUP 함수는 셀 범위에서 원하는 값을 찾을 때 사용하는 함수입니다. HLOOKUP이라는 함수 이름은 Horizontal Lookup을 줄여서 쓴 것으로 다음과…

HLOOKUP 함수 - 표를 수평으로 따라가면서 값찾기 더 보기 »

INDEX 함수 - 범위에서 행과 열을 이용하여 값 찾기 - 엑셀의 INDEX 함수는 테이블이나 범위에서 행과 열에 해당하는 값을 찾아줍니다. INDEX 함수에는 배열형과 참조형이라는 두 가지 형식이 있습니다. INDEX 함수는…

INDEX 함수 - 범위에서 행과 열을 이용하여 값 찾기 더 보기 »

VLOOKUP으로 안될 때 INDEX,MATCH 함수 사용 VLOOKUP으로 안될때 INDEX, MATCH 함수 사용하기 - 다음과 같은 표에서 상품코드 'A005'에 해당하는 상품 '마우스패드'를 찾아야 한다면 어떻게 해야 할까요? 찾는 키값이 첫 번째 열이 아니라 다른…

VLOOKUP으로 안될때 INDEX, MATCH 함수 사용하기 더 보기 »

INDEX, MATCH를 이용한 다중조건으로 찾기 INDEX, MATCH 함수를 이용한 다중조건으로 값찾기 - 다음 그림과 같이 상품정보에서 단가를 연도별로 관리한다고 할때 단가를 찾으려면 상품코드에 연도 조건을 추가해서 찾아야 합니다. 이 경우에 VLOOKUP 함수나…

INDEX, MATCH 함수를 이용한 다중조건으로 값찾기 더 보기 »

 

 

엑셀웍스 책 출간 안내

그동안 엑셀웍스에 올린 '엑셀 강좌', '함수 사용법', 여러 '실무 예제'에서 핵심만 뽑아 '된다! 엑셀 수식 & 함수' 책으로 출간하였습니다.

엑셀웍스 책 출간안내  자세히 보기

온라인 구매처: 예스24   교보문고   알라딘 

“MATCH 함수 - 범위에서 값의 위치 찾기”의 16개의 댓글

  1. 도와주세요

    안녕하세요 ㅠㅠ
    1이란 숫자 입력시 a2:c2 범위에 X값이 포함되어있다면 "예"
    2란 숫자가 입력시 a2:c2 →(범위변경) a3:c3 범위에서 X값이 포함되어있는지 검색
    3란 숫자가 입력시 a2:c2 →(범위변경) a4:c4 범위에서 X값이 포함되어있는지 검색
    4란 숫자가 입력시 a2:c2 →(범위변경) a5:c5 범위에서 X값이 포함되어있는지 검색

    이걸..찾기위해서 한참을 강의를 찾아보는데 ㅠㅠ 어렵네요
    고수님 혹시 도움좀 부탁드려도 될까요?

    1. 안녕하세요. 댓글의 내용만으로는 명확하지 않은 부분이 있습니다. 파일을 admin@xlworks.net으로 보내주시면 확인해 보겠습니다.
      감사합니다.

  2. 도와주세요

    안녕하세요 ㅠㅠ
    1이란 숫자 입력시 a2:c2 범위에 X값이 포함되어있다면 "예"
    2란 숫자가 입력시 a2:c2 →(범위변경) a3:c3 범위에서 X값이 포함되어있는지 검색
    3란 숫자가 입력시 a2:c2 →(범위변경) a4:c4 범위에서 X값이 포함되어있는지 검색
    4란 숫자가 입력시 a2:c2 →(범위변경) a5:c5 범위에서 X값이 포함되어있는지 검색

    이걸..찾기위해서 한참을 강의를 찾아보는데 ㅠㅠ 어렵네요
    고수님 혹시 도움좀 부탁드려도 될까요?

    1. Match함수에 대해 여쭙니다 이럴때는 어찌해야하는지요
      아래와같이 값을 찿을 범위가 참조영역이 변할때마다 범위를 변경하고자 한다면
      예를 들어 두셀에 숫자가 E1=3, F1=5 들어있다면
      =match(a2,b&e1:f&f1,0) 하면 에러 발생합니다 . 즉 범위가 B3:F5가 되겠죠
      참조범위가 변함에 따라 찿는 범위가 자동으로 변경되도록 할수있는 방법은 없는지요

  3. 감사합니다ㅠㅠ 업무에 해당 INDEX, MATCH 함수사용방법이 필요했는데 큰도움이 되었습니다 !!!

  4. Match함수에 대해 여쭙니다 이럴때는 어찌해야하는지요
    아래와같이 값을 찿을 범위가 참조영역이 변할때마다 범위를 변경하고자 한다면
    예를 들어 두셀에 숫자가 E1=3, F1=5 들어있다면
    =match(a2,b&e1:f&f1,0) 하면 에러 발생합니다 . 즉 범위가 B3:F5가 되겠죠
    참조범위가 변함에 따라 찿는 범위가 자동으로 변경되도록 할수있는 방법은 없는지요

    1. 안녕하세요. 참조를 동적으로 바꾸는 INDIRECT함수를 사용하면 됩니다.
      =match(a2,indirect("b"&e1&":"&"f"&f1),0)
      혹시 위 수식을 복사해서 붙여넣었는데 오류가 나면 쌍따옴표를 키보드에 있는 쌍따옴표로 다시 입력해보세요.
      INDIRECT함수에 대해서는 다음 링크를 참고하세요.
      https://xlworks.net/excel-function-indirect/
      감사합니다.

  5. 안녕하세요. 급여명세서를 만들고 있는데요,
    예를들어 그중 11월급여시트에 과세금액이 2,000,000원 나오면
    간이세액표 시트에서 2,000,000 ~ 2,010,000 구간을(칸이 200 과 210 각각 나눠있음) 찾아
    11월급여시트에 있는 공제가족수(1,2,3등값이 있음)에 해당하는 값을(간이세액표 시트의 구간옆에 각 공제가족수1이면 얼마,2면 얼마 나눠있음)
    11월급여시트의 소득세란에 넣으려고 합니다.
    이럴땐 어떤 함수를 어떻게 이용해야 하는지요?

  6. 안녕하세요.엑셀 강의 큰 도움되고 있어서 정말 감사합니다!

    혹시 원하는 텍스트 영역 예를 들면 t열에 있는 텍스트 들이
    c열에 있을 때. c열에 있는 동일한 텍스트가 볼드처리 되거나 텍스트 섹상이 변하게 적용하고 싶은데
    가능한 부분일까요?

    1. 안녕하세요. 조건부 서식을 이용하면 됩니다.
      예를 들어 C2셀과 T2셀에 동일한 텍스트가 있다고 할 때 다음과 같이 하면 됩니다.
      1. 조건부 서식 추가 : C2셀을 마우스로 선택한 후 리본메뉴 > 홈 탭 > 스타일 그룹 > 조건부 서식 클릭 > 셀강조 규칙 > 같음(E)... > 팝업화면에서 왼쪽 빈칸에 "=$T2"를 입력하고 오른쪽 서식은 원하는 것을 선택
      2. 다른 셀에도 조건부 서식 복사 : C2셀을 선택한 후 "서식 복사" > C3부터 C10까지 동일한 서식을 적용한다고 했을 때 C3:C10을 선택한 후 서식 붙여넣기

  7. 안녕하세요 항상 엑셀강의 잘보고있습니다. 감사합니다.
    질문이 있습니다만
    특정인물의 근무시간표를 만들고있습니다.
    홍길동, 김민수, 이민수, 박민수 등등
    있다고 쳤을때 홍길동의 근무시간만 찾아내서 계산하는것까진 했습니다
    ({=SUM(($A$5:$A$26=$AX1)*($G$5:$AK$26))}
    (a5:a26 가 명단리스트 ax1 이 홍길동 g5 : ak26가 근무시간 기록하는 곳 )
    여기서 문제가...일반 근무의경우 그대로 인건비를 곱하면되는데
    잔업의경우 1.25 를 곱해야되요.
    잔업시간을 계산해야되는데 좋은방법이 없을까요 ?
    홍길동의 8시간이상근무시에는 9는 한시간 10은 두시간 등등으로 전부 더하기 위해선 어떻게 해야되나요?

    1. 안녕하세요.
      잔업시간은 다음 수식으로 구하세요. 배열수식이므로 수식입력 후 ctrl+shift+enter해주세요.
      =SUM(($A$5:$A$26=$AX1)*IF(($G$5:$AK$26)>8,($G$5:$AK$26)-8,0))
      개인별 근무시간이 8시간이 넘으면 근무시간에서에서 8을 빼고, 넘지 않으면 0을 반환하도록 해서 다 더하면 개인별 잔업시간이 됩니다.

  8. 조건부 서식을 이용해서 수치의 범위를 지정(10~20)하고 값을 입력했을때 (10) 입력한 값을 빨간색으로 표시하는건 할수있는데
    그 범위를 변경하였을때(20~30) 똑같은 값을 입력했을 경우 바로 적용 가능하게 하는 수식이나 조건부서식이 있을까요?

    1. 조건부 서식을 A열에 적용한다고 했을 때 B1셀에 범위의 시작값, B2셀에 범위의 끝값을 입력하고 조건부서식의 수식을 다음과 같이 입력하면 될것 같습니다.
      =AND(A1>=$B$1, A1<=$B$2)

댓글 남기기

Scroll to Top