엑셀 제각각인 전화번호 한 형식으로 맞추기

· 엉클벤 엑셀함수(스프레드시트)

핵심 요약

  • 띄어쓰기·점·하이픈이 제각각이고 앞자리 0까지 빠진 휴대전화 번호를 "010-0000-0000" 한 가지 모양으로 맞춥니다.
  • SUBSTITUTE로 공백·하이픈·점을 지우고, VALUE로 숫자로 바꾼 뒤, TEXT로 하이픈을 다시 넣습니다. 이름 칸의 앞뒤 공백은 TRIM으로 지웁니다.
  • 예제 9줄 중 7줄이 같은 모양으로 정리되고, 자릿수가 모자라거나 글자가 섞인 2줄은 "확인" 표시가 붙습니다.

연락처를 여러 곳에서 받아 한 표에 모으면 모양이 제각각입니다. 어떤 줄은 "010 0000 2001", 어떤 줄은 "010.0000.2002", 어떤 줄은 앞의 0이 사라진 "1000002003"입니다. 이대로 두면 같은 번호인데도 중복 찾기에 걸리지 않고, 문자 발송 프로그램이 정해진 형식을 요구할 때 일일이 고쳐야 합니다. 연락 명단을 쓰기 전에 번호 모양부터 하나로 맞춰 두면 뒤 작업이 모두 편해집니다.

생활에서도 동창회 주소록, 학부모 단체 연락처처럼 여러 사람이 각자 적어 낸 번호를 정리할 때 똑같이 씁니다. 이 글은 엑셀 "목적별 함수 조합" 시리즈의 한 편입니다. SUBSTITUTE와 TEXT는 컴활 실기 준비에서도 다루는 문자열 함수라 겹쳐 쓰는 연습으로 좋습니다.

전화번호 한 번에 정리 - SUBSTITUTE TRIM

예제 표 — 모양이 제각각인 연락처

맨 위 줄은 열 문자, 맨 왼쪽 칸은 행 번호입니다. 이름과 번호는 모두 가상입니다. 작은따옴표(' ')는 공백이 있다는 걸 보이려고 붙인 표시이고 실제 칸에는 없습니다.

AB어떤 문제인가
1이름연락처
2' 김하늘'010 0000 2001이름 앞 공백, 번호 띄어쓰기
3'이도윤 '010.0000.2002이름 뒤 공백, 점
4박서연1000002003숫자로 저장돼 앞의 0이 빠짐
5최민준010-0000-2004정상
6' 정수아 '' 010-0000-2005 '앞뒤 공백
7한 지호010 - 0000 - 2006하이픈 양옆 공백
8윤서준010.0000-2007점과 하이픈 섞임
9강예린0100000200한 자리 모자람
10임도현010-0000-20O9숫자 0 대신 영문 O

4행은 누군가 01000002003을 그냥 입력한 경우입니다. Microsoft 문서에 따르면 엑셀은 수식과 계산을 위해 숫자 앞의 0을 자동으로 지웁니다. 그래서 칸에는 1000002003만 남습니다.

완성 수식

이름 정리 — C2에 넣고 C10까지 채웁니다.

=TRIM(A2)

번호 정리 — D2에 넣고 D10까지 채웁니다(D2 오른쪽 아래 작은 네모를 끌거나 두 번 누릅니다).

=IFERROR(TEXT(VALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B2," ",""),"-",""),".","")),"000-0000-0000"),"확인 필요")

점검 — E2에 넣고 E10까지 채웁니다. 결과가 010으로 시작하지 않으면 "확인"이 붙습니다.

=IF(LEFT(D2,3)="010","","확인")
행C 이름 정리D 번호 정리E 점검
2김하늘010-0000-2001
3이도윤010-0000-2002
4박서연010-0000-2003
5최민준010-0000-2004
6정수아010-0000-2005
7한 지호010-0000-2006
8윤서준010-0000-2007
9강예린001-0000-0200확인
10임도현확인 필요확인

이 결과는 예제 표를 엑셀 파일로 만들어 파이썬 formulas 라이브러리로 계산해 확인했습니다. 9행과 10행처럼 원래 번호가 틀린 줄은 수식이 고칠 수 없으니, "확인"이 붙은 줄만 골라 원본을 보고 직접 고칩니다.

수식 풀어 보기 — 안쪽부터

2행의 "010 0000 2001"을 예로 가장 안쪽부터 한 겹씩 벗겨 봅니다.

단계식중간 결과
① 공백 지우기SUBSTITUTE(B2," ","")"01000002001"
② 하이픈 지우기SUBSTITUTE(①,"-","")"01000002001" (지울 게 없어 그대로)
③ 점 지우기SUBSTITUTE(②,".","")"01000002001"
④ 숫자로 바꾸기VALUE(③)1000002001 (앞의 0이 빠진 숫자)
⑤ 하이픈 넣기TEXT(④,"000-0000-0000")"010-0000-2001"
⑥ 오류 가리기IFERROR(⑤,"확인 필요")오류가 없으니 ⑤ 그대로
  • SUBSTITUTE(텍스트, 찾을 글자, 바꿀 글자)는 찾을 글자를 모두 바꿉니다. 바꿀 글자를 ""(빈 글자)로 두면 지우는 효과가 납니다. 한 번에 한 종류만 바꾸므로 공백·하이픈·점을 지우려고 세 번 겹쳤습니다. 괄호 같은 다른 기호가 섞여 있으면 한 겹 더 씌우면 됩니다.
  • VALUE는 숫자처럼 생긴 글자를 진짜 숫자로 바꿉니다. 이 과정에서 앞의 0이 빠지는데, 오히려 그 덕분에 4행처럼 처음부터 0이 빠져 있던 번호와 모양이 같아집니다.
  • TEXT(값, 서식)의 서식 "000-0000-0000"에서 0은 "여기에 숫자 한 자리, 없으면 0을 채움"이라는 뜻입니다. 0이 11개이니 10자리 숫자 1000002001 앞에 0이 하나 채워져 "010-0000-2001"이 됩니다. Microsoft 문서에도 TEXT 함수로 "000-00-0000"처럼 앞의 0을 포함한 모양을 만드는 예가 있습니다.
  • IFERROR는 10행처럼 영문 O가 섞여 VALUE가 #VALUE! 오류를 낼 때 오류 대신 "확인 필요"를 보여 줍니다.

번호에는 왜 TRIM을 안 썼나요? TRIM은 Microsoft 문서 설명대로 "단어 사이의 공백 하나를 제외한" 공백을 지웁니다. 계산해 보니 =TRIM(" 010 0000 2001 ")의 결과는 "010 0000 2001"로, 가운데 공백이 남았습니다. 번호는 공백을 하나도 남기면 안 되니 SUBSTITUTE로 모두 지우고, TRIM은 띄어쓰기를 살려야 하는 이름 칸에 씁니다. 7행 "한 지호"처럼 이름 가운데 공백이 하나 남는 것도 이 때문입니다.

자주 막히는 곳

공백이 분명히 있는데 안 지워질 때 — 웹 페이지에서 복사해 온 번호에는 겉보기엔 공백이지만 다른 문자(줄바꿈 없는 공백, 유니코드 160번)가 섞여 있을 수 있습니다. Microsoft 문서도 TRIM이 이 문자를 지우지 못한다고 안내합니다. 이럴 때는 가장 안쪽에 한 겹을 더 씌웁니다.

SUBSTITUTE(B2,UNICHAR(160),"")

UNICHAR는 Microsoft 문서 기준 Excel 2013 이후 버전에서 쓸 수 있습니다. 계산해 보니 이 문자가 섞인 번호도 "01000002001"로 깔끔하게 지워졌습니다.

  • 정리한 번호를 원래 칸에 덮어쓰고 싶을 때 — D열을 복사한 뒤 선택하여 붙여넣기로 값만 붙여 넣습니다. 그냥 붙여 넣으면 수식째 옮겨져 원본을 지우는 순간 결과가 깨집니다.
  • 결과는 글자입니다. TEXT 함수의 결과는 텍스트라서 숫자 계산에는 쓸 수 없습니다. 전화번호는 계산할 일이 없으니 문제 되지 않습니다.
  • 휴대전화 11자리 기준입니다. "02-000-0000" 같은 지역번호 전화는 자릿수가 달라 이 서식으로는 모양이 틀어집니다. E열 점검에서 "확인"이 붙으니 그 줄은 따로 봅니다.
  • 번호를 처음부터 0이 안 빠지게 입력하려면 — Microsoft 문서 기준으로 숫자 앞에 작은따옴표(')를 붙여 입력하거나, 입력 전에 칸 서식을 "텍스트"로 바꿔 두면 글자로 저장됩니다.

다른 방법

  • 보이는 모양만 바꾸기(셀 서식) — 번호가 4행처럼 숫자로 저장돼 있다면, 칸을 선택하고 Ctrl + 1로 셀 서식 창을 열어 사용자 지정에 000-0000-0000을 넣는 방법도 있습니다. 값은 그대로 두고 화면에만 010-0000-2003처럼 보입니다. 다만 공백·점이 섞인 글자 번호에는 효과가 없어서, 모양이 섞인 명단에는 위 수식이 낫습니다.
  • 하이픈 없는 11자리로 맞추기 — 문자 발송 프로그램이 하이픈 없는 번호를 원하면 서식을 "00000000000"(0 열한 개)로 바꾸면 됩니다.

자주 묻는 질문

결과가 001-0000-0200처럼 이상하게 나와요.

원래 번호의 자릿수가 모자란 경우입니다. 수식은 11자리가 되도록 앞에 0을 채우기 때문에 숫자가 밀려서 보입니다. 원본 번호를 확인해 빠진 숫자를 채워 넣어야 합니다.

괄호가 들어간 번호도 정리할 수 있나요?

SUBSTITUTE를 두 겹 더 씌워 "("와 ")"를 빈 글자로 바꾸면 됩니다. 지울 기호 하나마다 한 겹씩 늘어난다고 생각하면 쉽습니다.

TRIM과 SUBSTITUTE 중 무엇으로 공백을 지우나요?

띄어쓰기는 남기고 앞뒤·중복 공백만 지우려면 TRIM, 공백을 하나도 남기지 않으려면 SUBSTITUTE(칸," ","")를 씁니다. 이름에는 TRIM, 번호에는 SUBSTITUTE가 맞습니다.

함께 보면 좋은 글

참고: SUBSTITUTE 함수 (Microsoft 지원) · TEXT 함수 (Microsoft 지원) · 앞에 오는 0과 더 큰 숫자를 유지 (Microsoft 지원)

벤

글쓴이 · 엉클벤

엑셀·스프레드시트 함수, AI 활용법, 컴퓨터·스마트폰 생활 팁을 따라 하기 쉽게 정리합니다. 틀린 내용은 연락처로 알려 주세요. 소개 보기

📚 벤스페이퍼 엑셀 강좌

기초부터 피벗 테이블까지 배우는 순서대로 정리한 엑셀 강좌 전체 목차에서 다음 글을 이어서 볼 수 있습니다.

Powered by Blogger