엑셀 문자열 추출 - egsel munjayeol chuchul

안녕하세요! IT꾼 유선생입니다.

이메일의 앞자리 아이디를 추출, 주민등록번호 앞자리 추출, 특정 패턴의 문장에서 필요한 부분만 추출 등 엑셀 특정문자 추출이 필요한 경우가 있을겁니다.

저같은 경우는 특정 패턴의 문장에서 일정 부분만 따로 추출해내야하는 경우에 많이 사용했던 함수들을 오늘 알려드릴려고합니다.

1. 문자의 위치별로 추출해내는 LEFT RIGHT MID 함수

2. 특정 문자의 위치를 알려주는 SEARCH FIND 함수

이 두가지를 상세하게 파해쳐보겠습니다!

엑셀 특정 문자 뒤 텍스트 추출 공식의 간단 사용법

엑셀 특정 문자 뒤 텍스트 추출 공식 목차

  1. 사용된 공식
  2. 예제파일 다운로드
  3. 공식 사용방법
  4. 특정문자 뒤 텍스트 추출 공식의 동작원리 설명
  5. 특정문자 사이 텍스트 추출 공식의 동작원리 설명

영상강의

동영상 재생이 안 되시나요? - 유튜브에서 시청 하기

  1. 이번 강의에서 다룰 내용

    00:11

  2. RIGHT 함수 살펴보기

    01:12

  3. LEN 함수 살펴보기

    01:27

  4. FIND 함수 살펴보기

    01:40

  5. 특정 문자 뒤 내용 추출하기

    02:01

  6. 특정 문자 사이 내용 추출하기

    05:19

큰 화면으로 보기


예제파일 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.

  • [실무기초] 특정문자 뒤 텍스트 추출하기

    예제파일

    다운로드


사용된 공식
  1. 특정문자 뒤 텍스트 추출 공식

    =RIGHT(셀, LEN(셀)-FIND("특정문자",셀)-LEN("특정문자")+1)

  2. 특정문자 사이 텍스트 추출 공식 (서로 다른 문자일 경우)

    =MID(셀, FIND("특정문자1", 셀)+LEN("특정문자1"), FIND("특정문자2", 셀)-FIND("특정문자1", 셀)-LEN("특정문자1"))

사용예제
엑셀 문자열 추출 - egsel munjayeol chuchul
특정 문자 뒤 텍스트 추출 공식의 사용법을 알아봅니다.
안내

이번 강의에서는 특정 문자 뒤 텍스트를 추출하는 공식에 대해 알아봅니다.

해당 공식은 셀 글자수에 상관없이 특정문자 뒤 텍스트를 자동으로 추출합니다. 공식의 단계별 동작원리는 아래 관련 포스트에 자세히 적어드렸습니다.

특정 문자 뒤 텍스트 추출 공식 상세설명 보러가기

만약 두 특정문자 사이의 텍스트를 추출해야 할 경우 두번째 공식을 사용할 수 있습니다. 해당 강의에서 사용한 공식은 '서로 다른' 두 특정문자일 경우 예제입니다. 만약 두개의 같은 특정문자 사이의 텍스트를 추출해야 할 경우의 공식도 아래 관련 포스트에서 자세히 적어드렸습니다.

특정 문자 사이 텍스트 추출 공식 상세설명 보러가기

특정문자 뒤 텍스트 추출 공식 사용법

  1. 특정 문자 뒤 텍스트 추출 공식을 복사한 뒤, 예제파일 C2 셀에 붙여넣기 합니다. #NAME? 오류가 출력되면 정상입니다.
    엑셀 문자열 추출 - egsel munjayeol chuchul
    특정문자 뒤 텍스트 추출 공식을 복사/붙여넣기 합니다
  2. C2셀을 선택한 뒤, 단축키 CTRL + H 또는 [찾기 및 선택] - [바꾸기]로 이동합니다.
    엑셀 문자열 추출 - egsel munjayeol chuchul
    [찾기 및 바꾸기] 기능을 실행합니다.
  3. 찾을 내용은 '셀', 바꿀내용은 'A2' 를 입력한 후 [바꾸기]를 클릭합니다.
    엑셀 문자열 추출 - egsel munjayeol chuchul
    찾을내용과 바꿀내용을 입력한 뒤 [바꾸기] 버튼을 클릭합니다.
  4. 한번 더 찾을 내용에는 '특정문자', 바꿀내용은 '특기: '를 입력합니다. (특기: 뒤에는 '띄어쓰기'를 포함하여 입력합니다.)
    엑셀 문자열 추출 - egsel munjayeol chuchul
    다시 한번 더 찾을내용과 바꿀내용을 입력한 뒤 [바꾸기] 버튼을 클릭합니다.
  5. 특정문자 뒤 텍스트 추출 작업이 완료되었습니다.
    엑셀 문자열 추출 - egsel munjayeol chuchul
    텍스트 추출 작업이 완료되었습니다.
  6. 마우스 커서를 셀의 오른쪽 아래로 가져간 뒤, 아래로 자동채우기하여 모든셀에 공식을 적용합니다.
    엑셀 문자열 추출 - egsel munjayeol chuchul
    아래로 자동채우기 하여 모든셀에 공식을 적용합니다.
  7. 특정문자 사이 텍스트 추출 공식예제파일의 E2 셀에 복사/붙여넣기 합니다.
    엑셀 문자열 추출 - egsel munjayeol chuchul
    특정문자 사이 텍스트 추출 공식을 붙여넣기합니다.
  8. 이후 아래 항목처럼 찾기/바꾸기를 수행하면 두 특정문자 사이 텍스트 추출 작업이 완료됩니다.
    찾을내용바꿀내용비고셀A2특정문자1나이:마지막에 '띄어쓰기'를 포함하여 입력특정문자2특기:마지막에 '띄어쓰기'를 포함하여 입력
    엑셀 문자열 추출 - egsel munjayeol chuchul
    특정문자 사이 텍스트 추출 작업이 완료되었습니다.

4.9 18 투표

게시글평점

엑셀 문자 추출 함수 :: ExtractLetter 사용법 총정리

문자 추출 함수, 목차 바로가기

  1. 함수 사용예제
  2. 함수 설명
  3. 사용시 참고사항
  4. 예제파일 다운로드
  5. ExtractLetter 전체 명령문
  6. 명령문 동작원리 단계별 알아보기

함수 구문

= ExtractLetter ( 텍스트, [시작지점], [종료지점], [특수문자제외] )

인수 설명
인수설명텍스트문자만 추출할 값이 적힌 셀 또는 문자열입니다.시작지점
[선택인수]문자 추출을 시작할 시작위치입니다. 기본값은 '1' 입니다.
'5'를 입력할 경우, 5번째 글자부터 문자를 추출합니다.종료지점
[선택인수]문자 추출을 종료할 지점입니다. 기본값은 엑셀 셀안의 최대 글자수인 '32,767' 입니다.
'10'을 입력할 경우, 10번째 글자까지만 문자를 추출합니다.특수문자제외
[선택인수]추출할 문자열에서 특수문자 제외여부를 결정합니다. 기본값은 'FALSE' 입니다.
'TRUE'를 입력할 경우, 특수문자를 제외한 문자열이 추출됩니다.

함수 사용예제

  • = ExtractLetter ( "서초1동-스타2 장인*대회" )
    '// '서초동-스타  장인*대회'를 반환합니다.
  • = ExtractLetter ( "서초1동-스타2 장인*대회" , , , TRUE )
    '// '서초동스타 장인대회'를 반환합니다.
  • = ExtractLetter ( "서초1동-스타2 장인*대회" , 6 )
    '// '스타 장인*대회'를 반환합니다. 
  • = ExtractLetter ( "서초1동-스타2 장인*대회" , 6 , 10 )
    '// '스타장인'을 반환합니다.

ExtractLetter 함수 설명

ExtractLetter 는 셀의 값 또는 텍스트에서 숫자를 제외하고'문자만 찾아 추출'하는 엑셀 문자 추출 함수입니다. 시작지점과 종료지점을 지정하여 문자를 추출할 수도 있습니다. '특수문자제외'를 TRUE로 입력할 경우, 숫자와 특수문자를 모두 제외한 문자만 추출됩니다.

엑셀 문자열 추출 - egsel munjayeol chuchul
엑셀 문자 추출 함수인 ExtractLetter 함수 사용예제

문자열에서 숫자만 추출하려면, 숫자 추출 함수인 ExtractNumber 함수를 사용합니다.

엑셀 숫자 추출 함수 ExtractNumber 함수 사용법 바로가기

엑셀 문자추출 결과값에서 '일부 특수문자'만 제외하고 싶을 경우, 명령문의 Pattern 값을 아래와 같이 변경합니다.

  • .Pattern = "[^\d@]"
    '// 특수문자 중 '@' 기호만 제외합니다.
  • .Pattern = "[^\d@/$~%*]"
    '// 특수문자 중 '@', '$', '~', '%', '*' 기호만 제외합니다.

이외에 Regex(정규표현식)을 응용하면, 다양한 방법으로 원하는 문자만 추출 또는 제외할 수 있습니다.

그 외 참고사항
  • 엑셀 문자 추출 시작지점의 값이 종료지점보다 클 경우, ExtractLetter 함수는 #VALUE! 오류를 반환합니다.
  • 한 셀에 입력가능한 최대 문자수는 32,767개 입니다. 따라서 32,767개 보다 많은 문자수가 입력될 경우, 엑셀은 #VALUE! 오류를 반환합니다.
  • 문자 추출 시작지점, 종료지점의 값이 숫자가 아닐 경우, 기본값으로 대체됩니다. 시작지점의 기본값은 1, 종료지점의 기본값은 32,767 입니다.
  • 엑셀 문자 추출 시작지점, 종료지점의 값으로 0보다 작은값이 입력되면, 기본값으로 대체됩니다.
  • 특수문자제외 값으로 'TRUE' 또는 'FALSE'가 아닌 값이 입력되면, 기본값인 'FALSE'로 대체됩니다.


예제파일 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.

  • [엑셀VBA함수] ExtractLetter :: 숫자 제외 문자 추출

    예제파일

    다운로드


숫자를 제외한 문자 추출, ExtractLetter함수의 동작원리

ExtractLetter 함수 전체 명령문

'###############################################################
'오빠두엑셀 VBA 사용자지정함수 ([https://www.oppadu.com](https://www.oppadu.com/))
'■ ExtractLetter 함수
'■ 텍스트에서 문자만 추출합니다. 추출 시작 및 종료위치를 지정할 수 있습니다.
'■ 인수 설명
'_____________Val : 문자를 추출할 텍스트 또는 셀입니다.
'__________iStart : 추출을 시작할 위치입니다. 기본값은 1 입니다.
'___________iEndl : 추출을 종료할 위치입니다. 기본값은 32767 입니다.
'__ExcludeSpecial : 특수문자 포함 여부입니다. TRUE일 경우 특수문자를 포함하여 문자를 추출합니다.
'###############################################################
 
Function ExtractLetter(Val, Optional iStart, Optional iEnd, Optional ExcludeSpecial) As String
 
Dim i As Long
Dim Str As String
Dim match As Variant
 
If IsMissing(iEnd) Then iEnd = 32767
If IsMissing(iStart) Then iStart = 0
If IsMissing(ExcludeSpecial) Then ExcludeSpecial = False
 
If iEnd <= 0 Or Not IsNumeric(iEnd) Then iEnd = 32767
If iStart <= 0 Or Not IsNumeric(iStart) Then iStart = 1 
If Not IsNumeric(ExcludeSpecial) Then ExcludeSpecial = False Else ExcludeSpecial = cBool(xcludeSpecial) 
If iStart > iEnd Then ExtractLetter = CVErr(errvalue)
If IsObject(Val) Then Str = Val.Value Else Str = Val
 
Str = Mid(Str, iStart, iEnd - iStart + 1)
 
With CreateObject("VBScript.RegExp")
 
    If ExcludeSpecial = False Then
        .Pattern = "\D"
    Else
        .Pattern = "[^\d!@#$%\^&*()-_+=~`';:""?<>,.]"
    End If
 
    .Global = True
    Set match = .Execute(Str)
 
        If match.Count > 0 Then
            ExtractLetter = ""
            For i = 0 To match.Count - 1
               ExtractLetter = ExtractLetter & match(i)
            Next i
        End If
End With
 
End Function

명령문 동작원리 단계별 알아보기

  1. 예상되는 오류를 방지하기 위한 오류처리 명령문을 추가합니다.

    If IsMissing(iEnd) Then iEnd = 32767
    If IsMissing(iStart) Then iStart = 0
    If IsMissing(ExcludeSpecial) Then ExcludeSpecial = False
     
    If iEnd <= 0 Or Not IsNumeric(iEnd) Then iEnd = 32767
    If iStart <= 0 Or Not IsNumeric(iStart) Then iStart = 1 
    If Not IsNumeric(ExcludeSpecial) Then ExcludeSpecial = False Else ExcludeSpecial = cBool(ExcludeSpecial) 
    If iStart > iEnd Then ExtractLetter = CVErr(errvalue)
    If IsObject(Val) Then Str = Val.Value Else Str = Val

  2. 시작지점과 종료지점을 기준으로 문자 추출 대상텍스트를 잘라냅니다.

    Str = Mid(Str, iStart, iEnd - iStart + 1)

  3. 특수문자제외 여부에 따라, 정규표현식에 따라 문자를 추출합니다.

    With CreateObject("VBScript.RegExp")
     
        If ExcludeSpecial = False Then
            .Pattern = "\D"
        Else
            .Pattern = "[^\d!@#$%\^&*()-_+=~`';:""?<>,.]"
        End If
    End With

  4. 추출된 문자를 하나씩 돌아가며 ExtractLetter 함수의 결과값으로 반환한 뒤, 엑셀 문자 추출 함수를 종료합니다.

        .Global = True
        Set match = .Execute(Str)
     
            If match.Count > 0 Then
                ExtractLetter = ""
                For i = 0 To match.Count - 1
                   ExtractLetter = ExtractLetter & match(i)
                Next i
            End If

5 5 투표

게시글평점