ExcelREPLACE위치 치환

엑셀 REPLACE

특정 위치부터 N글자를 잘라 새 텍스트로 바꾸는 함수 — 주민번호·카드번호 마스킹의 정석

REPLACE 수식 구조

=REPLACE(텍스트, 시작위치, 길이, 새텍스트)

텍스트 (old_text)

원본 문자열. 셀 참조 또는 직접 텍스트

시작위치 (start_num)

교체 시작 위치. 1부터 시작 (프로그래밍의 0이 아닌 1-based)

길이 (num_chars)

잘라낼 글자 수. 0이면 삽입만, 기존 글자 유지

새텍스트 (new_text)

그 자리에 들어갈 문자열. 길이가 num_chars와 달라도 OK (결과 길이는 자동 조정)

내용 매칭으로 치환하려면 SUBSTITUTE를 사용. REPLACE는 위치 기반이라 같은 문자열이 여러 번 나와도 한 곳만 정확히 잘라냅니다.

직접 체험해보세요

시작 위치와 길이 슬라이더를 움직여보세요. 잘려나갈 구간이 분홍색으로 강조됩니다. 길이를 0으로 두면 삽입만 됩니다

B2==REPLACE("901015-1234567", 8, 7, "*******")
빠른 예시:
8
7

8번부터 7글자를 잘라내고 새 텍스트로 교체

원본 (A2)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
9
0
1
0
1
5
-
1
2
3
4
5
6
7

8~14번 글자 → 새 텍스트로 교체

REPLACE 결과 (B2)

901015-*******

새로 삽입된 부분 · 나머지는 원본 그대로

원본 길이

14

삭제

7

결과 길이

14

실전 활용 예제

=REPLACE(A2, 8, 7, "*******")

주민등록번호 뒷자리 마스킹 — "901015-1234567"의 8번 위치(- 다음)부터 7글자를 *로 교체. 개인정보 노출 방지 패턴.

예시: REPLACE("901015-1234567", 8, 7, "*******")"901015-*******"
=REPLACE(A2, 6, 9, "****-****")

카드번호 중간 가리기 — 카드번호 16자리 중 가운데 8자리를 *로. 앞 4·뒤 4만 보여주는 PCI 표준 마스킹.

예시: "1234-5678-9012-3456""1234-****-****-3456"
=REPLACE(A2, 1, 0, "010-")

맨 앞에 삽입 (num_chars=0) — 휴대폰 번호에 국가코드처럼 prefix 붙이기. 시작위치 1, 길이 0이면 순수 삽입.

예시: REPLACE("12345678", 1, 0, "010-")"010-12345678"
더 알아보기

REPLACE vs SUBSTITUTE — 언제 무엇을?

이름은 비슷하지만 동작이 정반대입니다. 잘못 쓰면 엉뚱한 결과 — "무엇을 바꿀지 정하는 방식"이 핵심.

상황REPLACESUBSTITUTE
위치를 정확히 알 때
특정 문자를 모두 바꿀 때
주민번호·카드번호 마스킹
하이픈·공백 제거
N번째 매칭만

한마디로: "N번째 자리부터" → REPLACE, "특정 문자를" → SUBSTITUTE. 자세한 내용 매칭은 SUBSTITUTE 페이지.

마스킹·삽입·잘라내기 — 위치 기반 3패턴

1. 마스킹 — 보이지 말아야 할 부분

=REPLACE(A2, 8, 7, REPT("*", 7))

REPT로 별표 7개 동적 생성. 마스크 길이가 가변일 때 유용

2. 삽입 — num_chars=0의 위력

=REPLACE(A2, 4, 0, "-")

4번 위치 앞에 하이픈 삽입. 기존 글자는 그대로 유지

3. 잘라내기만 — new_text=""

=REPLACE(A2, 5, 3, "")

5번 위치부터 3글자 삭제. 빈 문자열로 교체

이 3패턴이 REPLACE 사용의 95%. 어떤 글자를 다룰지보다 어디서 어디까지가 중요합니다.

FIND·LEN과 결합 — 동적 위치 찾기

REPLACE의 약점은 위치를 미리 알아야 한다는 것. 데이터마다 위치가 다르면 FIND·LEN과 조합해 동적으로 위치를 계산.

이메일 도메인만 가리기

=REPLACE(A2, FIND("@", A2)+1, 99, "***")

@ 위치를 FIND로 찾아서 그 뒤를 모두 ***로 교체. 99는 충분히 큰 수

마지막 N글자만 마스킹

=REPLACE(A2, LEN(A2)-3, 4, "****")

LEN으로 끝 위치 역산. 카드번호 끝 4자리 가리기 등

이 패턴은 REPLACE의 진가입니다. 위치를 동적으로 계산하면 SUBSTITUTE로는 어려운 작업이 깔끔하게 됩니다.

자주 묻는 질문 (FAQ)

Q. start_num이 텍스트 길이를 넘어가면?

텍스트 끝에 new_text가 추가됩니다. 예: REPLACE("ABC", 10, 0, "XYZ") = "ABCXYZ". 음수면 #VALUE! 오류.

Q. 한글이나 이모지에서 위치는?

REPLACE는 문자 단위로 셉니다 (바이트 아님). 한글 한 글자 = 1, 일반 이모지도 거의 1. 단, 일부 확장 이모지(👨‍👩‍👧‍👦처럼 ZWJ로 결합된 것)는 여러 코드 포인트라 의도와 다를 수 있습니다.

Q. REPLACEB는 뭐가 다른가요?

REPLACEB는 바이트 단위로 셉니다 (DBCS 환경). 한국어 윈도우에서 한글 한 글자 = 2바이트로 계산. 한국어 텍스트 다룰 때 의도와 다를 수 있으니 보통 REPLACE 사용.

Q. 결과를 셀에 직접 덮어쓰고 싶어요

REPLACE는 수식이라 새 셀에 결과만 표시. 원본 셀을 영구 변경하려면 결과를 복사 → 값으로 붙여넣기(Ctrl+Alt+V → 값). 또는 Ctrl+H의 Find & Replace는 위치 기반은 직접 지원 X — REPLACE 함수가 더 정확.