엑셀 함수텍스트 함수엑셀 활용

엑셀 LEFT·RIGHT·MID 함수 — 문자열 일부 자르기와 사번·주소 나누기 예제

🗓 기준일 2026-10-28📚 출처 3곳⏱ 6분 읽기
한 줄 답엑셀에서 문자열의 앞부분은 LEFT(text, 글자 수), 뒷부분은 RIGHT(text, 글자 수), 가운데 부분은 MID(text, 시작 위치, 글자 수)로 잘라 내며, 잘라 낼 길이가 칸마다 다르면 FIND로 공백·하이픈의 위치를 찾아 LEFT·MID·RIGHT의 글자 수 자리에 넣습니다.

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사번주소
2HR-2024-0153서울특별시 강남구 테헤란로 152
3SA-2021-0027부산광역시 해운대구 센텀로 45
4IT-2019-0408대전광역시 서구 둔산로 100
5HR-2023-0092서울특별시 마포구 월드컵로 240
6SA-2024-0310인천광역시 연수구 컨벤시아대로 165
7IT-2022-0015대구광역시 수성구 달구벌대로 2503
8FN-2020-0261광주광역시 북구 첨단과기로 123
9FN-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)
2HR-2024-0153HR0153
3SA-2021-0027SA0027
4IT-2019-0408IT0408
5HR-2023-0092HR0092
6SA-2024-0310SA0310
7IT-2022-0015IT0015
8FN-2020-0261FN0261
9FN-2024-0007FN0007

일련번호 앞의 0이 그대로 남는 것은 결과가 숫자가 아니라 문자열이기 때문입니다. 이 점은 아래 6절에서 다시 다룹니다.

한글은 한 글자를 1글자로 셉니다. 예를 들어 =LEFT(B2,5)는 「서울특별시」를 돌려줍니다. 문서에는 LEFTB·RIGHTB가 바이트 기준 함수로 소개되어 있고, 한국어처럼 2바이트 문자를 쓰는 언어를 기본 언어로 설정했을 때 한글 한 글자를 2바이트로 센다고 안내되어 있습니다. 최신 문서에서는 LEFTB·RIGHTB가 더 이상 쓰지 않는(deprecated) 함수로 표시되어 있으므로, 글자 수로 자를 때는 LEFT·RIGHT를 씁니다.

가운데만 자르기 — MID로 입사연도 꺼내기

문자열 가운데 일부는 MID에 「시작 위치」와 「글자 수」를 모두 적어 가져옵니다. 사번 HR-2024-0153에서 입사연도 2024는 4번째 글자부터 4글자입니다.

글자 위치123456789101112
HR-2024-0153HR-2024-0153
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)*120242024
=RIGHT(A2,4)*11537

숫자로 바뀌면 앞의 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의 세부 규칙은 아래 출처의 함수 목록에서 각 함수 문서로 들어가 확인할 수 있습니다.

광고