데이터 가공은 핵심적인 작업이죠. 특히 SUBSTITUTE와 REPLACE 함수는 텍스트를 효율적으로 수정하고 정리하는 데 매우 유용합니다. 이 둘은 비슷해 보여도 목적과 사용법이 명확히 달라 올바른 선택이 중요합니다.
그렇다면 두 함수는 어떤 차이가 있을까요?
함수의 기본 개념
데이터 가공의 효율을 극대화하려면 각 함수의 문법과 실제 적용 사례를 정확히 이해하는 것이 필수적입니다.
위치 기반 치환 - REPLACE 함수
REPLACE 함수는 텍스트 내 특정 위치에서 특정 길이의 문자열을 새로운 문자열로 바꿀 때 사용해요. 규칙적인 패턴을 가진 텍스트 데이터를 수정할 때 아주 효과적이죠.
REPLACE 함수 예제
| 원본 텍스트 | 함수 | 결과 |
|---|---|---|
| C1: 2024-01-01 | =REPLACE(C1, 6, 2, "02") |
2024-02-01 |
| D1: 010-1234-5678 | =REPLACE(D1, 5, 4, "9876") |
010-9876-5678 |
| E1: bananaa | =REPLACE(E1, 7, 1, "s") |
bananas |
REPLACE는 주로 규칙적인 형식의 텍스트 데이터, 예를 들어 날짜, 전화번호, 제품 코드 등을 수정할 때 아주 유용합니다.
문자열 기반 치환 - SUBSTITUTE 함수
반면, SUBSTITUTE 함수는 텍스트 내에 존재하는 특정 문자열을 모두 찾아 새로운 문자열로 대체합니다. 위치나 길이에 관계없이 일괄적으로 바꾸는 데 적합해요.
SUBSTITUTE 함수 예제
| 원본 텍스트 | 함수 | 결과 |
|---|---|---|
| C1: 서울특별시 서울구 | =SUBSTITUTE(C1, "서울", "부산") |
부산특별시 부산구 |
| D1: Apple_Apple_Apple | =SUBSTITUTE(D1, "_", "-") |
Apple-Apple-Apple |
| E1: A-B-C-D | =SUBSTITUTE(E1, "-", " ", 2) |
A-B C-D |
SUBSTITUTE는 주로 일괄적인 문자열 대체나 오타 수정 등 텍스트의 위치에 관계없이 특정 문자를 바꿔야 할 때 효과적입니다.
핵심 차이점 파악하기
결론적으로, 텍스트의 위치와 길이가 중요하다면 REPLACE를, 단순히 특정 문자열을 일괄적으로 바꾸고 싶을 때는 SUBSTITUTE를 사용하면 됩니다.
함수별 차이점 한눈에 보기
| 구분 | REPLACE | SUBSTITUTE |
|---|---|---|
| 주요 특징 | 위치와 길이를 지정하여 변경 | 특정 문자열을 모두 찾아 변경 |
| 사용 목적 | 규칙적인 데이터 형식 수정 | 일괄적인 문자열 대체, 오타 수정 |
| 예시 | ‘123-456-7890’에서 ‘456’을 ‘987’로 변경 | ‘서울, 부산, 서울, 대구’에서 모든 ‘서울’을 ‘수도권’으로 변경 |
| 적합한 상황 | 파일 이름, 날짜 형식 등 구조화된 데이터 변경 | 특정 단어 전체 삭제 또는 교체 |
REPLACE와 SUBSTITUTE 활용 팁
함수 사용 시 발생할 수 있는 오류를 줄이려면, 텍스트가 대소문자를 구분하는지 미리 확인하는 것이 좋습니다. 또한, FIND나 SEARCH 같은 함수와 함께 사용하면 더욱 강력한 텍스트 가공이 가능해요. 이 두 함수는 텍스트 내 특정 문자열의 위치를 찾아주므로, 그 값을 REPLACE 함수의 start_num 인수로 활용할 수 있습니다. 텍스트 데이터를 다룰 때 이 조합을 기억해 두세요!
REPLACE는 위치와 길이에 따라, SUBSTITUTE는 특정 문자열을 기준으로 텍스트를 편집하는 데 최적화되어 있습니다. 이 두 함수의 명확한 차이점을 이해하면 어떤 상황에서든 데이터를 정확하고 빠르게 가공할 수 있어요.
SUBSTITUTE와 REPLACE, 궁금한 점을 해결해 드려요
이 두 함수에 대해 여전히 궁금한 점이 있으신가요? 자주 묻는 질문들을 모아봤으니 함께 살펴보고 궁금증을 해결해 보세요!
-
Q. REPLACE와 SUBSTITUTE의 가장 큰 차이점은 무엇인가요?
A. REPLACE는 텍스트의 시작 위치와 바꿀 문자 수를 기준으로 작업하는 반면, SUBSTITUTE는 텍스트 내의 특정 문자열을 찾아 바꿉니다. 위치 기반인지 문자열 기반인지가 가장 큰 차이라고 할 수 있어요.
-
Q. SUBSTITUTE로 특정 횟수만 바꾸려면 어떻게 하나요?
A.
SUBSTITUTE(text, old_text, new_text, instance_num)함수에서 마지막 인수(instance_num)를 사용하면 돼요. 이 인수에1을 넣으면 첫 번째로 발견된 문자열만,2를 넣으면 두 번째로 발견된 문자열만 바꿔줍니다. 이 인수를 생략하면 텍스트 내의 모든 해당 문자열이 바뀌게 됩니다. -
Q. 두 함수를 함께 쓸 수도 있나요?
A. 네, 물론입니다. 예를 들어,
FIND()나SEARCH()함수로 특정 문자열의 위치를 찾은 후, 그 위치 값을REPLACE()함수의start_num인수로 활용하는 식으로 응용할 수 있어요. 이렇게 하면 더욱 복잡한 텍스트 가공을 유연하게 처리할 수 있죠. -
Q. SUBSTITUTE 함수도 대소문자를 구분하나요?
A. 네,
SUBSTITUTE함수는 기본적으로 대소문자를 구분해요. 예를 들어 'Apple'과 'apple'은 다른 문자열로 인식합니다. 만약 대소문자 구분 없이 바꾸고 싶다면LOWER()나UPPER()함수를 활용해 텍스트를 모두 소문자나 대문자로 통일한 후 사용하면 문제를 해결할 수 있습니다.