범위에서 특정 값을 갖는 셀을 순서로 반환하는 MATCH 함수(INDEX 함수와 같이 사용하기)

등록일 : 2026.07.12 (13:24)  / 조회 : 0
이전 강좌 INDEX 함수에 이어 이번엔 MATCH 함수를 알아보겠습니다. 이전 강좌를 보신 분들이라면 MATCH 함수가 어떤 기능을 하는지 대략 눈치채셨을 것으로 생각합니다. MATCH 함수는 범위에서 특정 셀을 순서로 반환하는 기능입니다. 매우 단순합니다. 문제는 "뭐 하러?"입니다. 사실 MATCH 함수로 순서만 반환하는 경우는 거의 없습니다. 그렇게 반환된 순서로 또 다른 작업을 하기 위한 것이죠. 이전 강좌를 보지 않고 이 글로 들어오신 분들은 반드시 아래 강좌를 클릭해 내용을 보시고 돌아오시길 바랍니다.

index 함수2.png

행과 열의 순서로 셀 값을 반환하는 INDEX 함수

행과 열의 순서로 셀 값을 반환하는 INDEX 함수에 관해 설명합니다. INDEX 함수의 기능과 인수들을 정리합니다. INDEX 함수의 array 인수를 어떤 기준으로 선택하는지 알아봅니다. INDEX 함수와 함께 MATCH 함수를 왜 사용하는지를 설명합니다.

https://flylight.kr/


이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.


일단 "뭐 하러?"를 알아보기 전에 MATCH 함수 사용법을 알아보겠습니다. 매우 단순한 함수이니 예를 보기 전에 함수부터 정리하겠습니다.

MATCH

범위에서 찾을 값을 가진 셀의 순서를 반환

MATCH(lookup_value, lookup_array, [match_type])
lookup_valuelookup_array(범위)에서 찾을 값
lookup_array검색할 범위
match_type[선택] lookup_array에서 찾을 lookup_value의 일치 형태. 생략 시 "보다 작음(1)"이 적용됨
보다 작음(1) - lookup_value 이하의 수에서 가장 큰 값.
정확히 일치(0) - lookup_value와 동일한 값(여러개가 있을 경우 첫번째)
보다 큼(-1) - lookup_value 이상의 수에서 가장 작은 값.

함수 정리는 위와 같습니다. 간단하게 lookup_value는 찾을 값, lookup_array는 범위라는 것이죠. match_type 인수가 조금 이해하기 힘들긴 하지만 아주 특별한 경우가 아니라면 일반적으로 "정확히 일치"를 사용하므로 사실 생략하지 않는 것이 일반적인 방법입니다. 생략하면 기본 "보다 작음"이 되므로 일반적이라면 인수 3가지를 모두 정의해야 한다는 얘기입니다.

예제 확인

예제는 위와 같습니다. C7 셀은 데이터 유효성 검사로 음식 메뉴를 목록화해 두었습니다. 이 방법이 궁금하신 분들은 아래 강좌를 확인하시고 돌아와 주세요.

데이터 유효성 검사 목록.png

문서 자동화의 시작 "데이터 유효성 검사"와 함수 사용하기

엑셀의 데이터 유효성 검사 기능을 설명합니다. 숫자로 제한 대상을 설정하고 입력할 수 있는 범위를 설정해 봅니다. 데이터 유효성 검사의 목록을 사용하면 특정 범위의 값만 사용할 수 있다는 것을 확인합니다. 데이터 유효성 검사와 함수를 함께 사용하면 문서를 자동화하는 데 효과적이란 것을 알아봅니다.

https://flylight.kr/



그럼, C7 셀로 선택된 메뉴가 전체 음식 메뉴 중 몇 번째 순서인지를 MATCH 함수로 알아보겠습니다.

match 함수
  1. 작성할 셀(D7)을 클릭하여 선택합니다.
  2. 수식 입력줄에서 MATCH 함수명을 작성합니다. ⇒ =MATCH(
  3. 첫 번째 lookup_value 인수로 찾을 값을 가진 셀(C7)을 참조합니다. ⇒ =MATCH(C7
  4. 쉼표로 구분, 두 번째 인수 lookup_array로  음식 메뉴 전체를 범위로 참조합니다. ⇒ =MATCH(C7,B3:F3
  5. 쉼표로 구분, 세 번째 인수 match_type은 "정확히 일치"로 선택하고 엔터(닫힌 괄호 자동 생성 후 셀 완성) ⇒ =MATCH(C7,B3:F3,0)

결과, 2가 반환됩니다. 선택한 범위(lookup_array)에서 2번째 순서가 "된장찌개"라는 것이죠. 간단합니다.





다음, "뭐 하러?"에 대한 얘기입니다. "순서는 알았어. 그럼 그걸로 뭘 하려고?"라는 것이죠.
"된장찌개"가 나오는 요일을 반환하겠습니다. INDEX 함수를 사용할 것입니다. "요일"이라고 명시되었으니, 범위(array)는 확정입니다. 표에서 요일이 작성된 B2:F2가 되겠죠. 그럼, 남은 것은 "몇 번째냐?"라는 것이고, 그것이 방금 알아본 "메뉴 중 된장찌개의 순서"입니다. 즉 INDEX 함수의 두 번째 인수 column_num이 지금 만든 수식인 "MATCH(C7,B3:F3,0)"가 되는 것이죠.

index,match 조합
  1. 작성할 셀(E7)을 클릭하여 선택합니다.
  2. 수식 입력줄에서 INDEX 함수명을 작성합니다. ⇒ =INDEX(
  3. array 인수로 표의 요일 범위를 참조합니다. ⇒ =INDEX(B2:F2
  4. 쉼표로 구분, 찾고자 하는 셀의 column_num(열 순서)을 방금 알아본 MATCH 함수와 동일한 방법으로 반환합니다. ⇒ =INDEX(B2:F2,MATCH(C7,B3:F3,0)
    - 이때 INDEX 함수 안에서 MATCH 함수를 사용했으므로 바로 엔터를 치면 안 됩니다. 먼저 MATCH 함수의 괄호를 닫아 MATCH 함수를 완성합니다.
  5. 최종 INDEX 함수의 괄호를 닫아 INDEX 함수도 완성하고 최종 엔터. ⇒ =INDEX(B2:F2,MATCH(C7,B3:F3,0))

결과, "화"가 반환됩니다. 수식이 다소 복잡해 보이지만, 원리는 간단합니다. INDEX 함수에서 반환하고자 하는 범위를 정하고, 그 순서는 MATCH 함수를 통해 찾아낸 것입니다. 물론, 이미 D7 셀에서 순서를 반환했으니 "MATCH(C7,B3:F3,0)" 대신 D7 셀을 참조해도 당연히 됩니다. 하지만 만약 순서를 반환하지 않았다면, 당연히 참조할 것도 없으므로 column_array는 MATCH 함수로 반환하는 방법밖에 없습니다.

이제 처리할 것은 "가격"만 남았습니다. 당연히 column_num이 바뀌지 않습니다. 바뀔 것은 찾고자 하는 범위(array)겠죠. 간단하니 직접 해 보시길 바랍니다. 정답은 아래 댓글에서 확인해 주세요. 그리고 데이터 유효성 검사로 목록화해 둔 C7 셀의 값을 변경하고 "순서, 요일, 가격"이 모두 정상 반영되는지도 확인하시길 바랍니다.


첨부파일

match와 index.xlsx

(9.4 Kb)save_alt






이전글

윤슬로

42026.07.11
코멘트 의견글 입니다. ()

굵게 밑줄 기울임 취소선 글자색 배경색 윗첨자 아래첨자

왼쪽 정렬 가운데 정렬 오른쪽 정렬 양쪽 정렬

배경색 윗첨자 아래첨자 밑줄 기울임 취소선

url og table

html

줄이기 늘리기