셀 안의 텍스트 자르고 합치기 - LEFT·RIGHT·MID·TEXT 실무 정리
주문코드 하나에 연도, 지점, 일련번호가 다 섞여 있는데 이걸 각각 따로 뽑아야 할 때가 있습니다. 반대로 이름과 날짜를 자연스러운 문장으로 합쳐서 안내 메일 문구를 만들어야 할 때도 있습니다. 둘 다 텍스트 함수 몇 개만 알면 수작업 없이 처리할 수 있습니다.
1. 자르기 - LEFT, RIGHT, MID
세 함수 모두 '몇 번째 글자부터 몇 글자를 가져올지'를 지정하는 방식입니다.
| 함수 | 문법 | 동작 |
|---|---|---|
LEFT |
=LEFT(텍스트,개수) |
왼쪽에서부터 지정한 개수만큼 가져옴 |
RIGHT |
=RIGHT(텍스트,개수) |
오른쪽에서부터 지정한 개수만큼 가져옴 |
MID |
=MID(텍스트,시작위치,개수) |
중간 임의 위치에서부터 지정한 개수만큼 가져옴 |
"2024-SEL-001"이라는 주문코드가 A2에 있다면, 연도는 =LEFT(A2,4), 지점코드는 =MID(A2,6,3), 일련번호는 =RIGHT(A2,3)로 각각 뽑아낼 수 있습니다. MID의 두 번째 인수(6)는 '지점코드가 왼쪽에서 6번째 글자부터 시작한다'는 뜻으로, 하이픈까지 포함해서 글자 수를 세야 합니다.
2. 합치기 - & 연산자
텍스트를 이어 붙일 때는 & 기호를 씁니다. =A2&B2처럼 셀과 셀 사이에 넣으면 두 값이 그대로 붙습니다. 사이에 공백이나 문구를 넣고 싶으면 큰따옴표로 직접 추가합니다.
=A2&" 고객님" → "김민수 고객님"
3. 날짜·숫자를 문장에 맞게 - TEXT 함수
날짜나 숫자를 &로 그냥 이어 붙이면 "45566" 같은 일련번호나 의도치 않은 형식으로 나오는 경우가 많습니다. 이럴 때 TEXT 함수로 먼저 원하는 형식의 문자열로 바꾼 뒤 합쳐야 합니다.
=TEXT(값,"서식코드")
위 예시처럼 =A2&" 고객님 ("&TEXT(B2,"yyyy년 m월 d일")&" 가입)"이라고 쓰면, B2의 날짜값이 "2024년 3월 5일" 형식의 텍스트로 바뀐 뒤 앞뒤 문구와 자연스럽게 합쳐집니다.
4. 자주 쓰는 TEXT 서식코드
| 서식코드 | 결과 예시 |
|---|---|
"yyyy-mm-dd" |
2024-03-05 |
"yyyy년 m월 d일" |
2024년 3월 5일 |
"0000" |
숫자 7을 "0007"로 앞자리 0 채움 |
"#,##0" |
1200000을 "1,200,000"으로 표시 |
"0%" |
0.15를 "15%"로 표시 |
자주 막히는 지점 세 가지
1) MID로 뽑았는데 글자 수가 하나씩 밀려서 나온다
증상: 원하는 부분보다 한 글자 앞뒤로 밀린 값이 나옵니다.
원인: 하이픈(-)이나 공백도 글자 수에 포함된다는 점을 빠뜨린 경우가 대부분입니다.
해결: 원본 텍스트를 눈으로 한 글자씩 세어 시작 위치를 다시 확인합니다. 구분자가 일정하지 않다면 FIND 함수로 하이픈 위치를 먼저 찾아 자동화하는 방법도 있습니다.
2) 날짜를 &로 합쳤더니 숫자로 나온다
증상: "2024-03-05" 대신 "45356" 같은 숫자가 붙어 나옵니다.
원인: 엑셀은 날짜를 내부적으로 일련번호(숫자)로 저장하기 때문에, TEXT로 형식을 지정하지 않고 그냥 &로 이어 붙이면 이 숫자가 그대로 노출됩니다.
해결: 날짜나 서식이 있는 숫자를 문장에 넣을 때는 반드시 TEXT 함수로 먼저 감싼 뒤 &로 합칩니다.
3) LEFT·RIGHT로 뽑은 값이 숫자 계산에 안 먹힌다
증상: LEFT로 뽑은 "2024"를 다른 숫자와 더하려니 오류가 나거나 0으로 계산됩니다.
원인: LEFT·RIGHT·MID의 결과는 항상 텍스트 형식입니다. 겉보기엔 숫자 같아도 실제로는 문자입니다.
해결: 숫자로 써야 한다면 =VALUE(LEFT(A2,4))처럼 VALUE 함수로 한 번 더 감싸 숫자로 변환합니다.
자주 묻는 질문
구분자 위치가 매번 다르면 LEFT·MID 위치를 어떻게 지정하나요?
FIND 함수로 구분자(하이픈, 쉼표 등)의 위치를 먼저 찾은 뒤, 그 결과를 LEFT나 MID의 위치 인수에 넣으면 구분자 위치가 매번 달라도 자동으로 처리됩니다. 예를 들어 =LEFT(A2,FIND("-",A2)-1)은 첫 번째 하이픈 앞부분만 가져옵니다.
공백을 기준으로 이름과 성을 나눌 수 있나요?
네, 같은 원리로 FIND(" ",A2)로 공백 위치를 찾은 뒤 LEFT·MID와 조합하면 됩니다. 다만 이름에 공백이 여러 개 섞여 있으면 예상과 다르게 나뉠 수 있어, 원본 데이터의 공백 상태를 먼저 확인하는 것이 안전합니다.
TEXT 함수와 셀 서식(표시 형식) 지정은 뭐가 다른가요?
셀 서식은 값은 그대로 두고 화면에 보이는 모양만 바꾸는 것이고, TEXT 함수는 값 자체를 문자열로 바꿔서 다른 텍스트와 합칠 수 있게 해줍니다. 단순히 보기 좋게만 하려면 셀 서식으로 충분하지만, 다른 텍스트와 이어 붙이려면 TEXT 함수가 필요합니다.
여러 셀 텍스트를 한 번에 합치는 더 간단한 방법이 있나요?
엑셀 2019 이상이나 365에서는 =CONCAT(A2:A5)나 =TEXTJOIN(", ",TRUE,A2:A5)로 여러 셀을 한 번에 합칠 수 있습니다. TEXTJOIN은 구분자와 빈 셀 제외 여부까지 지정할 수 있어 여러 셀을 합칠 때 &보다 편리합니다.
정리
- LEFT·RIGHT·MID는 각각 왼쪽·오른쪽·중간에서 글자를 잘라내며, 위치는 하이픈·공백까지 포함해 세어야 합니다.
- 텍스트를 합칠 때는 & 연산자를 쓰고, 날짜나 서식이 있는 숫자는 TEXT로 먼저 문자열로 바꿔야 원하는 모양이 나옵니다.
- LEFT·RIGHT·MID의 결과는 텍스트이므로 계산에 쓰려면 VALUE로 변환해야 합니다.
- 구분자 위치가 일정하지 않다면 FIND와 조합해 자동으로 위치를 찾게 만듭니다.
- 여러 셀을 한 번에 합치려면 TEXTJOIN이나 CONCAT이 & 연산자보다 효율적입니다.
관련 글
- 엑셀 숫자가 텍스트로 저장됐을 때, 원인과 해결법 4가지
- 엑셀 날짜 계산 총정리 - 영업일, 근속연수, 월말 구하기
- 엑셀 실무 함수 12개 정리 - 안 쓰는 함수 걸러낸 기준까지
댓글
댓글 쓰기