온라인 Excel 편집기
무료 사용

MID 함수: 구문, 예제 및 오류 해결

2026-10-14 업데이트 · 무료 · Excel 및 Google Sheets 지원

구문

=MID(text, start_num, num_chars)

빠른 답변

MID는 셀 어디서나 문자를 돌려줍니다: =MID(A2, 4, 4)는 "AE-2026-041"을 "2026"로 만듭니다. 시작 위치와 글자 수를 주면 그 슬라이스를 잘라냅니다. 시작이 텍스트 길이를 넘기면 빈 문자열이 돌아오고, 시작이 1 미만이거나 글자 수가 음수면 #VALUE!입니다.

구문

=MID(text, start_num, num_chars)
인수의미
text자를 텍스트가 든 셀 또는 리터럴. 필수.
start_num몇 번째 문자부터 자를지, 1부터 셉니다 — 4면 네 번째 문자부터. 필수, 1 이상이어야 하고 미만은 #VALUE!.
num_chars그 위치에서 몇 글자를 가져올지: 4면 4글자. 필수, 0 이상이어야 하고 음수는 #VALUE!.

국가별 설정에 따라 인수가 쉼표 대신 세미콜론으로 구분됩니다: =MID(A2; 4; 4). 쉼표가 소수점 기호인 국가의 표준 동작입니다.

MID가 세는 것은 문자이며 바이트도 단어도 아닙니다: 글자·숫자·공백·이모지도 각각 한 개를 소비합니다. 위치는 1부터 시작하며 0번째 문자는 없고, MID는 결코 거꾸로 읽지 않습니다.

기본 예제

=MID(A2, 4, 4)

고정폭 작업의 주력: 제품 코드 "AE-2026-041"이 연도 "2026"를 내주고, 전화번호는 지역번호를, 송장 ID는 일련번호를 내줍니다 — 의미 있는 부분이 알려진 위치에 알려진 길이로 사는 모든 경우의 홈그라운드입니다.

=MID(A2, FIND("-", A2) + 1, FIND("-", A2, FIND("-", A2) + 1) - FIND("-", A2) - 1)

동적 업그레이드: 안쪽 FIND가 첫 하이픈을 찾고 바깥쪽 FIND가 그 뒤에서 두 번째 하이픈을 찾아 MID가 그 사이를 전부 잘라내어 "AE-2026-041"은 "2026", "US-Q3-772"는 "Q3"가 됩니다 — 위치를 하드코딩하지 않습니다.

=MID(A2, SEARCH(" ", A2) + 1, 30)

첫 공백 뒤 전부를 가져옵니다: SEARCH가 공백을 찾고 +1로 건너뛰며 30(크게 잡은 글자 수)이 안전하게 셀 나머지를 쥡니다 — "Jane Doe"는 "Doe", "Winston Churchill"은 "Churchill".

=IFERROR(MID(A2, FIND("-", A2) + 1, 4), A2)

운영 환경 버전: 하이픈이 없는 행은 FIND가 못 찾아 #VALUE!로 터집니다. IFERROR로 감싸면 그런 행은 그대로 돌아와 열 전체가 깨지지 않습니다.

MID는 숫자를 잘라내도 텍스트를 돌려줍니다: MID(123456, 2, 3)은 합산되지 않는 텍스트 "234". 숫자 추출은 VALUE로 감싸고(=VALUE(MID(A2, 4, 4))), 날짜는 일련번호라는 점에 주의 — MID는 표시가 아닌 일련번호에서 자릅니다.

자주 발생하는 오류와 해결 방법

증상가장 흔한 원인해결
#VALUE!start_num가 1 미만이거나 num_chars가 음수 — 또는 연결한 FIND/SEARCH가 구분 기호를 못 찾아 FIND가 먼저 #VALUE!를 반환함.시작은 1 이상, 글자 수는 0 이상을 쓰고, 구분 기호 찾기를 IFERROR로 감싸 폴백을 둡니다.
빈 문자열이 돌아옴start_num가 텍스트 길이를 넘음 — MID가 끝 너머까지 읽어 아무것도 못 가져옴.텍스트가 충분히 긴지 확인하거나 MIN(start_num, LEN(A2))로 시작을 범위 안에 묶습니다.
자르는 점이 한 글자 어긋남구분 기호 주변 오프바이원: +1로 건너뛰고 -1로 다음 앞에서 멈춤.한 행에서 위치를 세어보세요 — FIND는 구분 기호 위치를 반환하므로 FIND(...)+1이 바로 그 뒤 시작이고, 두 FIND의 차에서 1을 뺀 것이 슬라이스 길이입니다.
추출한 숫자가 계산 안 됨MID는 항상 텍스트를 반환해 "007"은 "007"이고 "234"은 합산되지 않음.=VALUE(MID(A2, 4, 4))로 자른 숫자를 진짜 수로 변환(선행 0은 사라집니다. 애초에 텍스트였으니까요).
결과가 통째로 밀림셀 시작에 보이지 않는 채움 공백이 있어 4번째가 생각한 자리가 아님.먼저 정리: =MID(TRIM(A2), 4, 4), 또는 열 전체 공백을 한 번에 제거.

오류는 아니지만 MID의 고전적 동작: start_num에 num_chars를 더한 값이 셀 길이를 넘으면 MID는 그냥 끝까지 가져옵니다 — 오류도 채움도 없습니다. =MID("Hi", 1, 50)은 그냥 "Hi". 덕분에 큰 글자 수는 "여기서부터 끝까지"의 안전한 표현으로 쓸 수 있습니다.

MID vs LEFT·RIGHT

MIDLEFTRIGHT
자르기 시작점지정한 임의 위치항상 첫 번째 문자항상 마지막 문자
인수텍스트 + 시작 위치 + 글자 수텍스트 + 글자 수텍스트 + 글자 수
적합한 용도중간 조각 — 지역번호, 두 구분자 사이 부분접두사, 이름, 고정폭 헤더접미사, 성, 확장자
동적 경계양끝 다 움직임 — FIND가 시작과 글자 수 모두에 공급움직이는 건 끝뿐(FIND/SEARCH 경유)움직이는 건 시작뿐(FIND/SEARCH와 LEN 경유)

MID가 일반해입니다: =LEFT(A2, 4)는 =MID(A2, 1, 4)이고, =RIGHT(A2, 4)는 셀이 충분히 길면 =MID(A2, LEN(A2) - 3, 4)입니다. LEFT와 RIGHT는 가장자리의 편의 표현이며, 조각이 중간에 있을 때는 셋 중 MID만 쓸 수 있습니다.

MID vs 텍스트 나누기·TEXTBEFORE/TEXTAFTER

MID(+ FIND/SEARCH)텍스트 나누기TEXTBEFORE / TEXTAFTER(Microsoft 365)
출력새 열의 살아있는 수식, 원본 무사셀을 그 자리에서 나누며 부주의하면 옆 열 덮어씀살아있는 수식: =TEXTBEFORE(A2, "-")와 =TEXTAFTER(A2, "-")
구분자 로직FIND/SEARCH와 +/- 오프셋으로 직접 조립대화상자 방식, 반복 구분자도 시각적으로 처리각 1 인수 — FIND도 오프셋 계산도 없음
두 구분자 사이 중간 조각네이티브 — MID가 두 FIND 사이를 자름가능하지만 연속 분할은 까다로움TEXTAFTER(TEXTBEFORE(A2, 구분2), 구분1) 겹치기 — 읽히지만 함수 2개
지원 버전모든 Excel 버전과 Google Sheets모든 Excel 버전Excel 365 / 2021 이상만

수명으로 고르세요: 반복 가져오기와 새로 고침을 견뎌야 하는 파싱은 MID 수식, 완성된 표의 일회성 재형성은 텍스트 나누기, Excel이 최신이고 조각이 단일 구분자 한쪽에 붙어 있으면 TEXTBEFORE/TEXTAFTER입니다.

Google Sheets에서 MID

  • 구문과 기본값이 동일 — 위 수식을 그대로 Sheets에 붙여넣을 수 있습니다.
  • 쉼표 소수점 지역에서는 세미콜론: =MID(A2; 4; 4), Excel과 같습니다.
  • FIND는 대소문자 구별, SEARCH는 미구별 + 와일드카드 — 짝의 동작도 동일.
  • 패턴 기반 중간 조각에는 FIND 중첩 대신 REGEXEXTRACT로 "두 하이픈 사이"를 한 번에 뽑을 수 있습니다.

한계와 고급 팁

  • 호출당 한 번 자르기: 코드를 세 조각으로 나누려면 세 열 — LEFT·MID·RIGHT를 나란히 두는 것이 고전적 파싱 배치입니다.
  • FIND와 SEARCH는 의도적으로 선택: 공백·하이픈처럼 대소문자 무관 구분자는 SEARCH, "a"와 "A"를 다르게 봐야 하면 FIND.
  • 구분자 기반 추출에는 모두 IFERROR를 감쌀 것 — 구분자 빠진 행 하나에서 #VALUE!가 열 전체로 퍼집니다.
  • 자른 뒤 숫자는 여전히 텍스트: =VALUE(MID(A2, 4, 4))가 계산 가능한 숫자로 돌아가는 길.
  • 큰 num_chars는 버그가 아니라 기능: =MID(A2, SEARCH(" ", A2) + 1, 999)가 길이를 재지 않고 "첫 공백 뒤 전부"를 안전하게 잡습니다.

MID를 파싱 라인의 중간 정거장으로 다루세요: TRIM으로 채움을 걷어내고, SEARCH로 첫 구분자를 찾고, 중첩 SEARCH로 둘째를 찾고, MID로 그 사이를 자르고, 숫자 같으면 VALUE로 변환. 각 단계를 자기 열에 두면 다음 달 가져오기 형식이 바뀌어도 고칠 수식은 하나입니다.

관련 도구

관련 함수

자주 묻는 질문

MID는 Excel에서 무엇을 하나요?

셀 어디서나 문자 슬라이스를 돌려줍니다: =MID(A2, 4, 4)는 네 번째 문자부터 4글자를 가져옵니다. LEFT나 RIGHT와 달리 MID는 시작 위치와 글자 수가 둘 다 필요해서 중간 조각을 잘라낼 수 있습니다.

MID로 두 하이픈 사이 텍스트를 추출하려면?

두 구분자를 모두 찾아 사이를 자릅니다: =MID(A2, FIND("-", A2) + 1, FIND("-", A2, FIND("-", A2) + 1) - FIND("-", A2) - 1). 안쪽 FIND가 첫 하이픈, 바깥쪽이 둘째를 찾고 차에서 1을 뺀 것이 슬라이스 길이입니다.

MID가 #VALUE!를 반환하는 이유는?

start_num가 1 미만이거나, num_chars가 음수이거나, 연결한 FIND/SEARCH가 구분자를 못 찾았기 때문 — FIND는 미발견 시 #VALUE!를 반환하고 MID가 그것을 물려받습니다. 시작은 1 이상, 글자 수는 0 이상으로 하고 구분자 찾기를 IFERROR로 감싸세요.

start_num가 텍스트 길이를 넘으면 어떻게 되나요?

MID는 빈 문자열을 반환합니다 — 끝 너머까지 읽어 아무것도 못 가져옵니다. =MID("Hi", 10, 4)는 ""입니다. 이는 "접미사가 있으면 가져오고 없으면 빈칸" 논리에 쓸 만하지만 오류를 기대하면 놀랍니다.

MID와 LEFT·RIGHT의 차이는?

MID는 지정한 위치에서 시작해 시작 위치와 글자 수가 둘 다 필요합니다. LEFT는 항상 1번 문자에서, RIGHT는 항상 끝에서 시작하며 글자 수만 필요합니다. MID가 일반해 — LEFT와 RIGHT는 가장자리 편의 표현입니다.

MID로 추출한 숫자가 계산되지 않는 이유는?

MID는 텍스트를 돌려주므로 그 "234"는 값이 아니라 라벨입니다. =VALUE(MID(A2, 4, 4))로 변환하세요 — 단 선행 0은 진짜 숫자에서 사라집니다. 텍스트로만 존재했던 것입니다.

MID는 Google Sheets에서 되나요?

됩니다 — 이름·인수·FIND/SEARCH 조합·쉼표 소수점 지역의 세미콜론까지 모두 동일. Sheets에는 중간 조각 패턴 추출용 REGEXEXTRACT도 추가로 있습니다.

내 파일로 직접 해볼 준비가 되셨나요?

Excel 텍스트를 열로 나누기 열기 — 무료