- 최초 작성일: 2000-02-13
- 최종 수정일: 2026-09-29
- 조회수: 28 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: MID 함수의 모든 것
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
여러가지 문자열 함수 중에서 Mid()라는 함수가 있습니다. 일반적으로 Mid() 함수라고 하면 문자열 중에서 일부를 발췌하는 기능을 담당하고 있는 것으로 알고 계실 것입니다.
이번 시간에는 Mid()함수의 모든 것에 대해 낱낱이 공개합니다(너무 거창한가?) 오늘 다룰 Mid() 함수는 문자열을 처리할 때 빈번히 사용되는 중요한 함수이므로 완전히 익혀 두시기 바랍니다. Visual Basic(또는 VBA) programming 작업시 많이 사용되므로 이 기회에 눈여겨 보세요.
MID 함수의 모든 것
핵심 요약
- 워크시트의 MID 함수는 시작 위치와 문자 수를 지정해 문자열 일부를 추출합니다.
- VBA에서는 문자 수 인수를 생략해 특정 위치 이후의 문자열 전체를 가져올 수도 있습니다.
- VBA의 Mid 문은 문자열 일부 또는 특정 위치 이후의 내용을 다른 문자열로 직접 바꾸는 데도 사용할 수 있습니다.
(1) 가장 기본적인 형태(워크시트 상에서 사용 가능)
| (문자열) | ABCDEFG12346abcdefg | |
| (사용예 1) | 12346 | |
가장 일반적인 형태로서 문자열 중 8번째 문자부터 5글자를 발췌합니다.
(2) 특정 위치 이후의 문자열 모두 발췌하기(모듈시트 상에서만 사용 가능)
| (문자열) | ABCDEFG12346abcdefg |
Dim A As String
A = "ABCDEFG12345abcdefg"
A=mid(A,8)
참고: 위 표의 문자열은 ABCDEFG12346abcdefg로 숫자 부분이 12346이지만 코드에는 ABCDEFG12345abcdefg로 12345라고 적혀 있습니다. 아래 결과 설명은 코드의 12345를 기준으로 한 것입니다. 또한 원문의 코드에는 문자열의 큰따옴표가 빠져 있었으나, VBA에서 실행할 수 있도록 큰따옴표를 붙였습니다.
이렇게 하면 A라는 변수에는 8번째 이후의 모든 문자열, 즉 "12345abcdefg"가 저장됩니다. 단, 이 방법은 일반 워크시트 상에서는 사용할 수 없습니다.
(3) 특정 위치의 문자열 치환하기(모듈시트 상에서만 사용 가능)
| (문자열) | ABCDEFG12346abcdefg |
Dim A As String
A = "ABCDEFG12345abcdefg"
mid(A,8,5)="67890"
이렇게 하면 A라는 변수에는 8번째 이후의 5개 문자열의 내용을 "67890"으로 대체합니다. 즉 A라는 변수의 값은 "ABCDEFG67890abcdefg"가 되는 것이지요. 대개의 분들이 이 방법은 모르고 있는 것 같더군요.
(4) 특정 위치의 이후의 모든 문자열 치환하기(모듈시트 상에서만 사용 가능)
| (문자열) | ABCDEFG12346abcdefg |
Dim A As String
A = "ABCDEFG12345abcdefg"
mid(A,8)="67890"
참고: 아래 설명과 달리 VBA의 Mid 문은 대입하는 문자열의 길이만큼만 바꿉니다. mid(A,8)="67890"을 실행하면 8번째 이후가 모두 바뀌는 것이 아니라 8번째부터 5글자만 바뀌어 A의 값은 ABCDEFG67890abcdefg가 됩니다. 8번째 이후를 모두 바꾸려면 Left(A,7) & "67890"처럼 앞부분과 새 문자열을 이어 붙여야 합니다.
이렇게 하면 A라는 변수에는 8번째 이후의 모든 문자열의 내용을 "67890"으로 대체합니다. 즉 A라는 변수의 값은 "ABCDEFG67890"이 되지요. 이 방법도 대개의 분들이 모르시더군요.
이상의 4가지 사용법 중에서 (1)번만 워크시트 상에서 사용할 수가 있고 나머지는 모듈시트 상에서만 사용 가능합니다. 나중에 시작될 Visual Basic 강좌에 대비하여 미리 익혀두시면 좋을 것입니다.
다음 시간에…
정리 — MID 함수의 모든 것
| 구분 | 내용 |
|---|---|
| 워크시트 | =MID(C19,8,5) : 문자열의 8번째부터 5글자 발췌 |
| VBA 발췌 | A=mid(A,8) : 8번째 이후 전부 발췌 |
| VBA 치환 1 | mid(A,8,5)="67890" : 8번째부터 5글자 치환 |
| VBA 치환 2 | mid(A,8)="67890" : 8번째부터 대입한 문자열의 길이만큼 치환 |
| 사용 범위 | 워크시트에서는 첫 번째 방법만, 나머지는 모듈시트(VBA)에서만 사용 |
자주 묻는 질문 (FAQ)
Q1. 워크시트에서 MID 함수로 문자열의 일부를 꺼내려면 어떻게 하나요?
문자열과 시작 위치, 글자 수를 지정합니다. 원문의 예처럼 8번째 문자부터 5글자를 지정하면 그 부분이 발췌됩니다.
Q2. 특정 위치 이후의 문자열을 모두 꺼내려면 어떻게 하나요?
VBA에서 Mid 함수의 글자 수 인수를 생략하면 시작 위치 이후의 문자열이 모두 반환됩니다. 이 방법은 워크시트에서는 사용할 수 없습니다.
Q3. 특정 위치의 문자열을 다른 내용으로 바꾸려면 어떻게 하나요?
VBA에서 Mid를 대입문의 왼쪽에 쓰고 시작 위치와 글자 수를 지정한 뒤 바꿀 문자열을 대입합니다.
마치며
워크시트용과 VBA용 사용법이 다르므로, Mid를 쓸 때는 어디서 실행하는지부터 확인하시기 바랍니다. VBA에 대한 기초 지식을 공부하실 분은 아이엑셀러 닷컴 사이트 상단 메뉴에서 [Excel 강의] - [Excel 입문]을 먼저 보시면 이해하기 쉽습니다.