=SUBSTITUTE(A2,"-","")는 A2의 텍스트에서 대시를 모두 지웁니다. SUBSTITUTE는 이전 텍스트를 찾아 그 자리에 새 텍스트를 넣는데, 여기서는 빈 텍스트입니다. =SUBSTITUTE(A2,"-",".")라면 대시마다 점을 넣습니다.
| A | B | C | |
|---|---|---|---|
| 1 | Phone | Digits only | With dots |
| 2 | 555-201-3344 | 5552013344 | 555.201.3344 |
| 3 | 555-870-1122 | 5558701122 | 555.870.1122 |
| 4 | 555-433-9001 | 5554339001 | 555.433.9001 |
숫자만 남아도 결과는 텍스트입니다. 숫자가 필요하면 앞에 --를 붙이세요: =--SUBSTITUTE(A2,"-","").
SUBSTITUTE와 REPLACE 비교
=SUBSTITUTE(text, old_text, new_text, [instance_num])
=REPLACE(old_text, start_num, num_chars, new_text)
SUBSTITUTE는 내용을 찾으며 old_text가 어디에 있든 상관하지 않습니다. REPLACE는 아무것도 찾지 않습니다. 글자를 세어 start_num부터 num_chars개를 덮어씁니다.
| A | B | |
|---|---|---|
| 1 | Text | Result |
| 2 | Report 2025 final | Report 2026 final |
| 3 | Report 2025 final | Report 2026 final |
| 4 | ID-0042 | SKU-0042 |
| 5 | 5551234 | 555-1234 |
- B2와 B3은 같은 결과를 내지만, B3은 연도가 8번째 글자에서 시작하기 때문에 동작할 뿐입니다. 텍스트가 바뀌어도 SUBSTITUTE는 여전히 찾지만 REPLACE는 찾지 못합니다.
- B4는 무엇이든 처음 2글자를
SKU로 바꿉니다. - B5는 길이 0을 씁니다. 아무것도 지우지 않으므로 REPLACE가 세 번째 글자 뒤에 대시를 끼워 넣습니다. 특정 위치에 문자를 넣는 표준 방법입니다.
텍스트를 알면 SUBSTITUTE를, 위치를 알면 REPLACE를 쓰세요. 위치를 기준으로 고칠 때는 FIND가 위치를 줄 수 있습니다: =REPLACE(A2,FIND(" ",A2),1,"_")는 첫 번째 공백을 바꿉니다.
두 번째(n번째)로 나오는 것만 바꾸기
SUBSTITUTE의 네 번째 인수는 몇 번째로 나오는 것을 바꿀지 고릅니다. 이 인수가 없으면 모두 바뀝니다:
| A | B | |
|---|---|---|
| 1 | Path | Result |
| 2 | 2026-03-15-final | 2026/03/15/final |
| 3 | 2026-03/15-final | |
| 4 | 2026-03-15 final |
B2는 모든 대시를 바꿉니다. 2를 쓴 B3은 두 번째 대시만 바꿔 2026-03/15-final이 되고, B4는 세 번째 대시 자리에 공백을 넣습니다. 일치하는 개수보다 큰 인스턴스 번호는 아무것도 바꾸지 않습니다.
| A | B | |
|---|---|---|
| 1 | Plan | New name |
| 2 | Basic monthly |
직접 해 보세요: B2에서 수식으로 A2의 요금제 이름에 있는 Basic을 Standard로 바꾸세요.
서로 다른 문자 여러 개 지우기
SUBSTITUTE는 호출 한 번에 old_text 하나를 처리합니다. 여러 개라면 호출을 중첩하세요. 각 호출은 안쪽 호출의 결과를 받아 처리합니다.
| A | B | |
|---|---|---|
| 1 | Phone | Digits |
| 2 | (555) 201-3344 | 5552013344 |
| 3 | (555) 870-1122 | 5558701122 |
안쪽부터 읽으세요. (를 지우고, ), -, 공백 순서로 지웁니다. Microsoft 365에서는 =REGEXREPLACE(A2,"[^0-9]","")가 숫자가 아닌 문자를 한 번에 모두 지웁니다. 남는 공백만 처리한다면 단어 사이에 공백 하나를 남기는 TRIM이 더 알맞습니다.
문자나 단어가 나오는 횟수 세기
빈 텍스트로 바꾸는 SUBSTITUTE는 나오는 것을 모두 지우므로, 줄어든 길이가 지운 글자 수입니다. 단어를 세려면 단어의 길이로 나누세요:
| A | B | C | |
|---|---|---|---|
| 1 | Text | Commas | "red" appears |
| 2 | red, green, red, blue | 3 | 2 |
| 3 | Red, red, red | 2 | 2 |
C3은 3이 아니라 2를 반환합니다. SUBSTITUTE는 대소문자를 구분하므로 Red는 지워지지 않습니다. 대소문자와 관계없이 세려면 SUBSTITUTE(LOWER(A3),"red","")를 쓰세요.
| A | B | |
|---|---|---|
| 1 | Tags | Count |
| 2 | excel,text,formulas,tips |
직접 해 보세요: A2의 태그는 쉼표로 구분되어 있습니다. B2에서 태그가 몇 개인지 세세요(쉼표 개수보다 하나 많습니다).
흔한 실수: SUBSTITUTE로 숫자 바꾸기
SUBSTITUTE는 숫자의 텍스트를 다루고 결과도 텍스트입니다. 1050에 =SUBSTITUTE(A2,"0","")를 쓰면 텍스트 15가 나오며, SUBSTITUTE는 저장된 값인 1050을 읽으므로 $1,050.00 같은 표시 형식은 무시됩니다. 숫자를 바꾸려면 계산을 쓰세요. 수식 없이 여러 셀의 텍스트를 한 번에 바꾸려면 홈 > 찾기 및 선택 > 바꾸기(Ctrl+H, Mac에서는 Control+H)를 쓰세요. 대/소문자 구분 옵션이 있고 그 자리에서 바꿉니다.
자주 묻는 질문
엑셀에서 SUBSTITUTE와 REPLACE의 차이는 무엇인가요?
SUBSTITUTE는 내용으로 텍스트를 찾습니다: =SUBSTITUTE(A2,"old","new")는 모든 old를 바꿉니다. REPLACE는 위치로 동작합니다: =REPLACE(A2,5,3,"new")는 무엇이든 5번째 글자부터 3글자를 덮어씁니다.
엑셀에서 셀의 특정 문자를 지우려면 어떻게 하나요?
빈 텍스트로 바꿉니다: =SUBSTITUTE(A2,"-","")는 대시를 모두 지웁니다. 여러 문자는 호출을 중첩하세요: =SUBSTITUTE(SUBSTITUTE(A2,"(",""),")","").
셀에 어떤 문자가 몇 번 나오는지 세려면 어떻게 하나요?
그 문자를 지우기 전과 후의 길이를 비교합니다: =LEN(A2)-LEN(SUBSTITUTE(A2,",",""))는 A2의 쉼표를 셉니다. 단어라면 그 길이로 나누세요: =(LEN(A2)-LEN(SUBSTITUTE(A2,"red","")))/3.
SUBSTITUTE는 대소문자를 구분하나요?
네. =SUBSTITUTE("Red red","red","blue")는 Red blue가 됩니다. 대소문자를 무시하려면 먼저 텍스트를 소문자로 바꾸거나(=SUBSTITUTE(LOWER(A2),"red","blue")), 기본적으로 대소문자를 무시하는 찾기 및 바꾸기(Ctrl+H)를 쓰세요.