- 최초 작성일: 1999-07-25
- 최종 수정일: 2026-09-29
- 조회수: 26 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: 문자열 함수 응용
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
어제 내드린 숙제(숙제라고 하니까 좀 이상하긴 하지만) 잘들 해보셨나 모르겠습니다.
몇 분은 해결을 하셨다면서 자랑스럽게 메일을 보내주셨는데 축하드립니다.
문자열 함수 응용
핵심 요약
- 문자열 전체 길이에서 특정 문자를 빈 문자로 바꾼 뒤의 길이를 빼면 그 문자의 개수를 구할 수 있습니다.
- 특정 문자를 두 배로 바꾼 문자열의 길이에서 원래 길이를 빼는 방법으로도 같은 결과를 얻습니다.
- 연결 연산자와 CONCATENATE 함수는 문자열이나 셀값을 이어 붙이는 같은 기능을 수행합니다.
Step 1: 문자열 속 특정 문자 개수 세기
참고: 수식의 a21, B21은 원본 워크시트 기준 셀 주소입니다. 직접 적용하실 때에는 자신의 문자열이 있는 셀 주소로 바꿔 입력하시기 바랍니다.
어제 문제에 대한 답을 말씀드리자면,
=len(a21)-len(substitute(a21,"a",""))
라고 입력하고 엔터키를 치면 됩니다.
또는
=len(substitute(a21,"a","aa"))-len(a21)
이라고 해도 되겠지요?
두 경우 모두 함수는 같은 함수를 사용하되 접근방식은 달리한 경우입니다. 즉 위의 경우는 문자열 내부에 있는 "a"를 공란으로 치환한 후 원래의 문자열에서 빼준 것이고, 아래의 것은 문자열 내부에 있는 "a"를 두 배로 부풀린 다음 원래 문자열의 수를 빼준 설명을 하다보니 말이 좀 꼬인 것 같은데 이해 하시겠지요? ^^
Step 2: 문자열과 계산 결과 연결하기
참고: 이 예제의 문자열은 이전 글(여러 가지 문자열 함수들)의 퀴즈 문자열과 다릅니다. 이 글의 문자열에는 a가 17개 있어 본문과 일치하며, 이전 글의 퀴즈 문자열에는 a가 21개 있습니다.
abcd aaa ccc adbd addd adce aaaddd adveaz aadfd aaora 위 문자열 중에서 'a'는 모두 17개 있습니다…
="위 문자열 중에서 'a'는 모두 " & LEN(B21)-LEN(SUBSTITUTE(B21,"a","")) & "개 있습니다…"
Step 3: & 연산자로 문자열 연결하기
위의 예에서 보면 "&" 연산자를 사용하여 문자열과 문자열(또는 셀값)을 서로 연결한 것을 알 수 있습니다. "&"는 문자열과 문자열을 연결하는 기능을 수행하는 연산자입니다. 즉 a1 셀에 "아름다운" 이라는 문자열이, b1 셀에 "세상을 위하여"라는 문자열이 있다고 가정할 경우, c1 셀에 가서 =a1 & b1이라고 입력하고 엔터키를 치면 "아름다운 세상을 위하여"라고 표시가 됩니다.
Step 4: CONCATENATE 함수 활용하기
이 &연산자와 동일한 기능을 수행하는 함수로는 Concatenate() 함수가 있습니다.
=a1 & b1
나
=Concatenate(a1, b1)
은 동일한 기능을 수행하는 것입니다.
참고: 최신 Excel에는 CONCATENATE 함수를 대신하는 CONCAT, TEXTJOIN 함수가 있으며, CONCATENATE도 호환성을 위해 계속 사용할 수 있습니다.
오늘은 짧게 여기까지…
정리 — 문자열 함수 응용
| 구분 | 내용 |
|---|---|
| 개수 세기 1 | =len(a21)-len(substitute(a21,"a","")): 특정 문자를 빈 문자로 바꾼 문자열의 길이를 원래 길이에서 뺌 |
| 개수 세기 2 | =len(substitute(a21,"a","aa"))-len(a21): 특정 문자를 두 배로 바꾼 문자열의 길이에서 원래 길이를 뺌 |
| 문장으로 표시 | 연결 연산자로 문자열과 계산 결과를 이어 붙여 a의 개수를 문장 속에 표시 |
| 연결 연산자 | 문자열과 문자열(또는 셀값)을 연결. =a1 & b1 |
| CONCATENATE | 연결 연산자와 동일한 기능의 함수. =Concatenate(a1, b1) |
자주 묻는 질문 (FAQ)
Q1. 문자열에 특정 문자가 몇 개 있는지 세려면 어떻게 하나요?
LEN 함수와 SUBSTITUTE 함수를 조합합니다. 전체 길이에서 특정 문자를 빈 문자로 바꾼 문자열의 길이를 빼면 그 문자의 개수가 됩니다.
Q2. 다른 방법으로도 개수를 셀 수 있나요?
특정 문자를 두 배로 바꾼 문자열의 길이에서 원래 문자열의 길이를 빼도 같은 결과를 얻습니다. 함수는 같고 접근 방식만 다릅니다.
Q3. 문자열을 서로 연결하는 방법에는 무엇이 있나요?
연결 연산자를 사용하거나 Concatenate 함수를 사용합니다. 두 방법은 동일한 기능을 수행합니다.
마치며
같은 함수라도 접근 방식을 바꾸면 다양한 해법이 나오므로 직접 수식을 만들어 확인해 보시기 바랍니다. VBA에 대한 기초 지식을 공부하실 분은 아이엑셀러 닷컴 사이트 상단 메뉴에서 [Excel 강의] - [Excel 입문]을 먼저 보시면 이해하기 쉽습니다.