• 최초 작성일: 1999-07-25
  • 최종 수정일: 2026-09-29
  • 조회수: 26 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: 문자열 함수 응용

들어가기 전에

오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.

어제 내드린 숙제(숙제라고 하니까 좀 이상하긴 하지만) 잘들 해보셨나 모르겠습니다.

몇 분은 해결을 하셨다면서 자랑스럽게 메일을 보내주셨는데 축하드립니다.

권현욱(엑셀러)
저자: 권현욱(엑셀러), 아이엑셀러 대표

필자는 Excel 컨설턴트, 작가, 그리고 크리에이터입니다. 현재 Microsoft Excel MVP이며, 『챗GPT+엑셀 업무자동화 정석』을 비롯한 10여 권의 도서를 집필했습니다. Excel 자동화 및 생산성 향상 분야에서 25년 넘는 경력을 보유하고 있습니다.

권현욱(엑셀러) 님의 최신 포스트:
  • 최신 글을 불러오는 중...


26년 경력 Microsoft MVP 권현욱(엑셀러) 지음

📊 신간 전자책(PDF) · 287쪽 · 13500원

엑셀 대시보드를 만드는 최적의 '표준 3계층 구조'

  • 3초 안에 읽히는 화면 설계 감각 습득
  • Microsoft Excel MVP의 실전 노하우 수록
  • 중간마진 없는 합리적인 가격, 오직 아이엑셀러에서만!
지금 구매하기 완성 화면 보기

문자열 함수 응용

핵심 요약

  • 문자열 전체 길이에서 특정 문자를 빈 문자로 바꾼 뒤의 길이를 빼면 그 문자의 개수를 구할 수 있습니다.
  • 특정 문자를 두 배로 바꾼 문자열의 길이에서 원래 길이를 빼는 방법으로도 같은 결과를 얻습니다.
  • 연결 연산자와 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 입문]을 먼저 보시면 이해하기 쉽습니다.