사번에서 입사연도만 뽑고 싶을 때, 전화번호에서 뒷자리만 추출하고 싶을 때.
셀 데이터의 일부만 꺼내야 하는 상황은 실무에서 자주 생겨요.
이런 작업에 쓰는 게 텍스트 함수입니다.
이 글에서는 LEFT, RIGHT, MID, LEN, TEXT 함수의 문법과 실무 예제를 다룹니다.
LEFT 함수 - 왼쪽부터 추출
=LEFT(텍스트, 글자수)
텍스트의 왼쪽(앞쪽)부터 지정한 글자수만큼 추출해요.
글자수를 생략하면 1글자만 반환합니다.
| 수식 | 결과 |
|---|---|
| =LEFT("2025-03-15",4) | 2025 |
| =LEFT("S001-김민수",4) | S001 |
| =LEFT("서울특별시",2) | 서울 |
RIGHT 함수 - 오른쪽부터 추출
=RIGHT(텍스트, 글자수)
텍스트의 오른쪽(뒤쪽)부터 지정한 글자수만큼 추출합니다.
| 수식 | 결과 |
|---|---|
| =RIGHT("010-1234-5678",4) | 5678 |
| =RIGHT("INV-2025-0312",4) | 0312 |
| =RIGHT("RB-23FD",4) | 23FD |
MID 함수 - 중간에서 추출
=MID(텍스트, 시작위치, 글자수)
왼쪽에서 몇 번째 글자부터 시작해서, 지정한 글자수만큼 추출해요.
LEFT나 RIGHT로 처리할 수 없는 중간 위치 추출에 사용합니다.
| 수식 | 결과 | 설명 |
|---|---|---|
| =MID("2025-03-15",6,2) | 03 | 6번째 글자부터 2글자 (월) |
| =MID("2025-03-15",9,2) | 15 | 9번째 글자부터 2글자 (일) |
| =MID("ABC-1234-XY",5,4) | 1234 | 5번째 글자부터 4글자 |
LEN 함수 - 글자수 세기
=LEN(텍스트)
텍스트의 전체 글자수를 반환해요.
공백도 1글자로 세고, 한글과 영문 모두 1글자로 취급합니다.
| 수식 | 결과 |
|---|---|
| =LEN("엑셀 함수") | 5 |
| =LEN("ABC123") | 6 |
LEN 함수는 단독으로 쓰기보다 다른 함수와 조합할 때 유용해요.
예를 들어 RIGHT와 함께 쓰면 특정 구분자 뒤의 텍스트를 동적으로 추출할 수 있습니다.
실무 예제 1 - 사번에서 부서코드와 일련번호 분리
사번 형식이 "DEV-0312" (부서코드 3자리 + 하이픈 + 일련번호 4자리)일 때:
데이터 (A열):
| A | |
|---|---|
| 2 | DEV-0312 |
| 3 | SAL-0045 |
| 4 | HRM-0128 |
| 5 | MKT-0067 |
부서코드 추출 (B열):
=LEFT(A2,3)
결과: DEV
일련번호 추출 (C열):
=RIGHT(A2,4)
결과: 0312
형식이 고정되어 있으면 이렇게 간단하게 분리할 수 있어요.
실무 예제 2 - 구분자 위치가 유동적인 경우
이메일 주소에서 아이디(@앞 부분)만 추출하고 싶은 경우, @ 위치가 사람마다 달라서 LEFT만으로는 처리가 안 돼요.
이때 FIND 함수를 함께 사용합니다.
=FIND("@",A2)
FIND는 특정 문자가 몇 번째에 있는지 알려주는 함수예요.
"user@company.com"에서 @는 5번째 → FIND 결과는 5
아이디 추출:
=LEFT(A2,FIND("@",A2)-1)
결과: user
FIND 결과에서 1을 빼는 이유는, @ 자체는 포함하지 않기 위해서예요.
도메인 추출:
=MID(A2,FIND("@",A2)+1,LEN(A2)-FIND("@",A2))
결과: company.com
MID의 시작위치를 FIND+1로, 글자수를 전체길이-FIND 위치로 계산한 거예요.
이처럼 FIND + LEN + LEFT/MID를 조합하면 가변 길이 데이터도 처리할 수 있습니다.
TEXT 함수 - 숫자/날짜를 원하는 형식의 텍스트로 변환
=TEXT(값, 서식코드)
숫자나 날짜를 특정 형식의 텍스트로 바꿔줘요.
셀 서식을 바꾸는 게 아니라, 실제 텍스트 값으로 변환하는 겁니다.
| 수식 | 결과 | 설명 |
|---|---|---|
| =TEXT(45678,"#,##0") | 45,678 | 천 단위 구분 쉼표 |
| =TEXT(0.15,"0.0%") | 15.0% | 백분율 표시 |
| =TEXT(TODAY(),"YYYY-MM-DD") | 2026-02-16 | 날짜를 텍스트로 |
| =TEXT(TODAY(),"YYYY년 MM월 DD일") | 2026년 02월 16일 | 한글 형식 |
| =TEXT(45678,"000000") | 045678 | 앞에 0 채우기 (6자리) |
TEXT 함수는 다른 텍스트와 합칠 때 자주 사용해요.
="마감일: " & TEXT(B2,"YYYY-MM-DD")
날짜 셀을 & 연산자로 직접 연결하면 숫자(시리얼값)가 표시되지만, TEXT 함수로 감싸면 원하는 날짜 형식으로 표시됩니다.
자주 하는 실수 / 주의사항
1. LEFT/RIGHT/MID는 항상 텍스트를 반환
숫자처럼 보여도 결과는 텍스트예요.
=LEFT("12345",2) 의 결과 "12"는 텍스트이므로 계산에 사용하려면 VALUE 함수로 숫자로 변환해야 합니다.
=VALUE(LEFT(A2,4))
2. 셀 서식과 실제 값의 차이
셀에 "2025-03-15"로 표시되어 있어도 실제 값은 날짜 시리얼 번호(숫자)일 수 있어요.
이 경우 LEFT(A2,4)가 "2025"가 아닌 예상과 다른 값을 반환할 수 있습니다.
날짜에서 연도를 추출하려면 LEFT 대신 YEAR 함수를 쓰는 게 안전해요.
=YEAR(A2) → 2025
=MONTH(A2) → 3
=DAY(A2) → 15
3. FIND 함수는 대소문자를 구분함
FIND("A","abc")는 오류가 나요.
대소문자를 구분하지 않으려면 SEARCH 함수를 대신 사용하세요. 문법은 FIND와 동일합니다.
관련 함수 안내
텍스트를 합치는 함수로 CONCATENATE와 TEXTJOIN이 있어요.
CONCATENATE는 모든 버전에서 사용 가능하고, TEXTJOIN은 구분자를 지정할 수 있어서 더 편리합니다.
다음 글에서는 INDEX+MATCH 조합을 다룰 예정이에요.
VLOOKUP의 방향 제한 없이 유연하게 값을 찾는 방법입니다.
'엑셀' 카테고리의 다른 글
| 엑셀 데이터 유효성 검사 사용법 - 드롭다운 목록과 입력 제한 (0) | 2026.02.18 |
|---|---|
| 엑셀 INDEX MATCH 함수 조합 사용법 - VLOOKUP보다 유연한 검색 (0) | 2026.02.17 |
| 엑셀 피벗테이블 만들기 - 기초부터 실무 활용까지 (0) | 2026.02.16 |
| 엑셀 XLOOKUP 함수 사용법 - VLOOKUP의 한계를 넘는 검색 함수 (0) | 2026.02.16 |
| 엑셀 SUMIF COUNTIF 함수 사용법 - 조건별 합계와 개수 구하기 (0) | 2026.02.14 |