엑셀 LEFT·RIGHT·MID 함수 — 문자열 일부 자르기와 사번·주소 나누기 예제
LEFT·RIGHT·MID 함수 형식은 어떻게 되나요?
세 함수 모두 「문자열(text)에서 몇 글자를 가져올지」를 정하는 함수이고, 차이는 어디서부터 세느냐입니다. LEFT는 왼쪽 끝, RIGHT는 오른쪽 끝, MID는 지정한 위치에서 시작합니다. 엑셀 2016 이후 버전과 Microsoft 365에서 모두 쓸 수 있습니다.
| 함수 | 형식 | 하는 일 |
|---|---|---|
| LEFT | =LEFT(text, [num_chars]) | 왼쪽 끝에서 num_chars 글자를 가져옵니다. |
| RIGHT | =RIGHT(text, [num_chars]) | 오른쪽 끝에서 num_chars 글자를 가져옵니다. |
| MID | =MID(text, start_num, num_chars) | start_num번째 글자부터 num_chars 글자를 가져옵니다. |
| FIND | =FIND(find_text, within_text, [start_num]) | 찾는 글자가 몇 번째에 있는지 숫자로 알려 줍니다. 대소문자를 구분합니다. |
| LEN | =LEN(text) | 문자열의 글자 수를 돌려줍니다. |
대괄호 [ ]는 생략할 수 있는 인수입니다. 수식에는 대괄호를 입력하지 않습니다. 지역 설정에 따라 인수 구분자가 쉼표(,) 대신 세미콜론(;)인 환경도 있으며, 이때는 구분자만 바꿔 입력합니다.
Microsoft 지원 문서에는 LEFT·RIGHT의 num_chars에 대해 다음 규칙이 안내되어 있습니다.
- num_chars는 0 이상이어야 합니다.
- num_chars가 문자열 길이보다 크면 문자열 전체를 돌려줍니다.
- num_chars를 생략하면 1로 처리합니다. 즉 =LEFT(A2)는 첫 글자 한 개만 가져옵니다.
출처: Microsoft 지원 — LEFT, RIGHT 함수 문서.
이 글의 예제 표 (A1:B9)
이 글은 아래 표 하나로 끝까지 진행합니다. A열은 「부서코드(2자)-입사연도(4자)-일련번호(4자)」 형식의 사번으로, 하이픈을 포함해 모두 12글자입니다. B열은 시·도, 구·군, 나머지가 공백으로 구분된 예시 주소입니다.
| 행 | A열 (사번) | B열 (주소) |
|---|---|---|
| 1 | 사번 | 주소 |
| 2 | HR-2024-0153 | 서울특별시 강남구 테헤란로 152 |
| 3 | SA-2021-0027 | 부산광역시 해운대구 센텀로 45 |
| 4 | IT-2019-0408 | 대전광역시 서구 둔산로 100 |
| 5 | HR-2023-0092 | 서울특별시 마포구 월드컵로 240 |
| 6 | SA-2024-0310 | 인천광역시 연수구 컨벤시아대로 165 |
| 7 | IT-2022-0015 | 대구광역시 수성구 달구벌대로 2503 |
| 8 | FN-2020-0261 | 광주광역시 북구 첨단과기로 123 |
| 9 | FN-2024-0007 | 서울특별시 송파구 올림픽로 300 |
주소는 수식 연습용 예시이며 실제 개인·사업장 정보가 아닙니다. 결과 수식은 C열부터 오른쪽 빈 칸에 입력합니다.
앞·뒤에서 자르기 — 사번에서 부서코드와 일련번호 꺼내기
사번의 부서코드는 항상 맨 앞 2글자이므로 LEFT, 일련번호는 항상 맨 뒤 4글자이므로 RIGHT로 가져옵니다. 글자 수가 고정이라 다른 함수와 조합할 필요가 없습니다.
C2: =LEFT(A2,2)
E2: =RIGHT(A2,4)
C2·E2를 입력한 뒤 아래로 채우기 하면 8행까지 같은 규칙이 적용됩니다.
| 행 | A열 (사번) | C열 =LEFT(A,2) | E열 =RIGHT(A,4) |
|---|---|---|---|
| 2 | HR-2024-0153 | HR | 0153 |
| 3 | SA-2021-0027 | SA | 0027 |
| 4 | IT-2019-0408 | IT | 0408 |
| 5 | HR-2023-0092 | HR | 0092 |
| 6 | SA-2024-0310 | SA | 0310 |
| 7 | IT-2022-0015 | IT | 0015 |
| 8 | FN-2020-0261 | FN | 0261 |
| 9 | FN-2024-0007 | FN | 0007 |
일련번호 앞의 0이 그대로 남는 것은 결과가 숫자가 아니라 문자열이기 때문입니다. 이 점은 아래 6절에서 다시 다룹니다.
한글은 한 글자를 1글자로 셉니다. 예를 들어 =LEFT(B2,5)는 「서울특별시」를 돌려줍니다. 문서에는 LEFTB·RIGHTB가 바이트 기준 함수로 소개되어 있고, 한국어처럼 2바이트 문자를 쓰는 언어를 기본 언어로 설정했을 때 한글 한 글자를 2바이트로 센다고 안내되어 있습니다. 최신 문서에서는 LEFTB·RIGHTB가 더 이상 쓰지 않는(deprecated) 함수로 표시되어 있으므로, 글자 수로 자를 때는 LEFT·RIGHT를 씁니다.
가운데만 자르기 — MID로 입사연도 꺼내기
문자열 가운데 일부는 MID에 「시작 위치」와 「글자 수」를 모두 적어 가져옵니다. 사번 HR-2024-0153에서 입사연도 2024는 4번째 글자부터 4글자입니다.
| 글자 위치 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| HR-2024-0153 | H | R | - | 2 | 0 | 2 | 4 | - | 0 | 1 | 5 | 3 |
D2: =MID(A2,4,4)
결과는 D2=2024, D3=2021, D4=2019, D5=2023, D6=2024, D7=2022, D8=2020, D9=2024입니다. 시작 위치는 「앞에 있는 글자 수 + 1」로 계산하면 실수가 적습니다. 앞에 「HR-」 3글자가 있으므로 시작 위치는 4입니다.
정리하면, 같은 사번에서 세 함수는 다음과 같이 대응합니다.
| 꺼낼 값 | 수식 | A2 결과 |
|---|---|---|
| 부서코드 | =LEFT(A2,2) | HR |
| 입사연도 | =MID(A2,4,4) | 2024 |
| 일련번호 | =RIGHT(A2,4) | 0153 |
길이가 제각각인 주소 나누기 — FIND와 LEN 조합
글자 수가 칸마다 다르면 숫자를 직접 적을 수 없으므로, FIND로 공백 위치를 찾아 그 값을 LEFT·MID·RIGHT에 넘깁니다. 예제 주소는 공백이 2개이고 「시·도 / 구·군 / 나머지」 순서입니다.
B2 「서울특별시 강남구 테헤란로 152」로 필요한 숫자를 먼저 확인합니다.
| 구하는 값 | 수식 | 결과(숫자) |
|---|---|---|
| 첫 번째 공백 위치 | =FIND(" ",B2) | 6 |
| 두 번째 공백 위치 | =FIND(" ",B2,FIND(" ",B2)+1) | 10 |
| 전체 글자 수 | =LEN(B2) | 18 |
두 번째 공백은 「첫 번째 공백 바로 다음 글자(+1)부터 찾아라」라는 뜻으로 FIND의 세 번째 인수에 시작 위치를 줘서 구합니다.
이 숫자로 세 부분을 나누는 수식은 다음과 같습니다.
F2 (시·도): =LEFT(B2,FIND(" ",B2)-1)
G2 (구·군): =MID(B2,FIND(" ",B2)+1,FIND(" ",B2,FIND(" ",B2)+1)-FIND(" ",B2)-1)
H2 (나머지): =RIGHT(B2,LEN(B2)-FIND(" ",B2,FIND(" ",B2)+1))
B2 기준으로 한 줄씩 계산하면 다음과 같습니다.
- F2: 6−1=5이므로 LEFT(B2,5) → 서울특별시
- G2: 시작 6+1=7, 글자 수 10−6−1=3이므로 MID(B2,7,3) → 강남구
- H2: 18−10=8이므로 RIGHT(B2,8) → 테헤란로 152 (테헤란로 4 + 공백 1 + 숫자 3 = 8글자)
| 행 | F열 시·도 | G열 구·군 | H열 나머지 |
|---|---|---|---|
| 2 | 서울특별시 | 강남구 | 테헤란로 152 |
| 3 | 부산광역시 | 해운대구 | 센텀로 45 |
| 4 | 대전광역시 | 서구 | 둔산로 100 |
| 5 | 서울특별시 | 마포구 | 월드컵로 240 |
| 6 | 인천광역시 | 연수구 | 컨벤시아대로 165 |
| 7 | 대구광역시 | 수성구 | 달구벌대로 2503 |
| 8 | 광주광역시 | 북구 | 첨단과기로 123 |
| 9 | 서울특별시 | 송파구 | 올림픽로 300 |
구·군 이름이 「서구」(2글자)든 「해운대구」(4글자)든 같은 수식이 맞는 이유는, 글자 수를 두 공백 위치의 차이로 계산하기 때문입니다. 수식이 길어 보이면 F열에 첫 공백 위치, G열에 두 번째 공백 위치를 따로 계산해 두고 참조하는 방법도 있습니다. 수식이 짧아지고 검산하기도 쉽습니다.
이 수식은 주소가 「시·도 구·군 나머지」 형태로 공백이 최소 2개 있다는 가정에서 동작합니다. 「세종특별자치시 한누리대로 2130」처럼 공백이 1개뿐인 주소나 도(道) 단위 주소(시 이름과 구 이름이 따로 붙는 경우)는 결과가 틀리거나 오류가 날 수 있으므로, 실제 데이터에서는 먼저 공백 개수를 확인합니다.
잘라 낸 값은 문자열 — 숫자로 바꾸고 집계에 쓰기
LEFT·MID·RIGHT의 결과는 숫자처럼 보여도 문자열이어서, 계산이나 숫자 비교에 쓰려면 숫자로 바꿔야 합니다. 가장 간단한 방법은 결과에 1을 곱하는 것입니다.
D2: =MID(A2,4,4)*1
E2: =RIGHT(A2,4)*1
| 수식 | A2(HR-2024-0153) 결과 | A9(FN-2024-0007) 결과 |
|---|---|---|
| =MID(A2,4,4)*1 | 2024 | 2024 |
| =RIGHT(A2,4)*1 | 153 | 7 |
숫자로 바뀌면 앞의 0(0153의 0)은 사라집니다. 일련번호의 0을 살려야 한다면 문자열 그대로 두고, 합계·크기 비교가 필요할 때만 숫자로 바꿉니다.
잘라 낸 값은 개수 세기나 합계 조건으로도 바로 쓸 수 있습니다. 부서코드를 C열에 뽑아 두면 =COUNTIF(C2:C9,"HR")의 결과는 2입니다(C2, C5). 입사연도를 숫자로 바꾼 D열이라면 =COUNTIF(D2:D9,2024)의 결과는 3입니다(D2, D6, D9). 조건 개수 세기는 COUNTIF·COUNTIFS 사용법 정리에서 이어서 볼 수 있습니다.
잘라 낸 값을 다른 표에서 찾을 때도 형식이 맞아야 합니다. 한쪽은 문자열 「0153」, 다른 쪽은 숫자 153이면 서로 다른 값으로 취급되어 찾기 함수가 실패할 수 있습니다. 이 현상은 VLOOKUP이 #N/A만 나올 때의 원인과 확인 순서에서 따로 정리했습니다.
결과가 이상할 때 확인할 것
대부분의 문제는 「시작 위치가 한 글자 어긋남」「눈에 안 보이는 공백」「문자열과 숫자 혼동」 세 가지에서 나옵니다. 아래 표 순서대로 확인합니다.
| 증상 | 원인 | 확인 방법 |
|---|---|---|
| #VALUE! 오류 | FIND가 찾는 글자(공백·하이픈)를 못 찾았거나, 글자 수에 음수가 들어감 | FIND 부분만 따로 =FIND(" ",B2)로 입력해 오류가 나는지 봅니다. 글자 수 계산식(LEN−FIND 등)이 0 미만이 되는 행이 없는지 봅니다. |
| 한 글자 더 나오거나 모자람 | MID의 시작 위치를 「앞 글자 수」로 적고 +1을 빼먹음 | =LEN(A2)와 글자 위치 표를 직접 세어 시작 위치를 다시 계산합니다. |
| 공백이 있는데 위치가 안 맞음 | 앞뒤 또는 중간에 공백이 두 칸 이상 들어 있음 | =LEN(B2)와 =LEN(TRIM(B2))를 비교합니다. 값이 다르면 TRIM으로 정리한 뒤 FIND를 씁니다. |
| 일련번호 앞의 0이 사라짐 | 숫자로 바꾸는 *1을 적용했거나, 원본이 숫자로 저장되어 있음 | 원본 칸의 서식과 맞춤을 확인합니다. 숫자는 오른쪽, 문자열은 왼쪽에 붙는 것이 기본입니다. |
| 날짜 칸에 LEFT를 썼더니 엉뚱한 숫자 | 날짜는 화면 표시와 달리 내부적으로 일련번호 숫자로 저장되어 있어, LEFT는 그 숫자의 앞부분을 가져옴 (예: 2024-03-15는 45366이므로 LEFT(…,4)는 4536) | 연도·월·일은 LEFT 대신 YEAR·MONTH·DAY 함수로 꺼냅니다. |
| 한글을 자르는데 글자가 어긋남 | LEFTB·RIGHTB·MIDB 같은 바이트 기준 함수를 사용함 | 글자 수 기준인 LEFT·RIGHT·MID로 바꿉니다. |
원본을 직접 덮어쓰지 말고 옆 열에 수식 결과를 만든 뒤, 확인이 끝나면 값으로 붙여넣기 하는 순서가 안전합니다. 위 설명은 2026-10-28 기준으로 확인한 Microsoft 지원 문서에 맞춘 것이며, 문서 내용과 화면은 버전에 따라 달라질 수 있습니다. MID·FIND·LEN의 세부 규칙은 아래 출처의 함수 목록에서 각 함수 문서로 들어가 확인할 수 있습니다.