Excel / Google 스프레드 시트의 텍스트 문자열에서 이메일 추출


9

Google Docs / Excel의 텍스트 문자열에서 이메일 주소를 추출하여 셀의 내용을 알 수없는 곳에서 자동으로 이메일을 보내려고합니다 (사용자가 업데이트 할 때까지).

예를 들어 다음과 같이 읽을 수 있습니다.

  1. 안녕,

    내 친구 example@example.com.

    감사,

    조 예

또는

  1. 물어봐

    example@example.co.uk

나는 현재이 공식을 가지고있다 :

=IFERROR((LEFT(CELL,FIND("@",CELL)-1))&"@"&(regexextract(CELL,"@(.*)"))) 

그것은 거의 모든 경우에 작동 제외

a) 예 1과 같이 누군가가, 또는을 넣는 경우 이메일 끝에서

b) 예 2에서와 같이 이메일이 새 줄에서 시작하는 경우 예를 들면 다음과 같습니다.

물어보기

example@example.com

이 문제를 해결하기 위해 공식을 어떻게 조정할 수 있습니까?

답변:


7

Google 스프레드 시트

Google 스프레드 시트 에는 이미 내장 된 멋진 정규식이 있습니다.

첫 번째 메일 주소를 사용하여 메일 주소를 추출합니다. 이 공식을 Google 스프레드 시트 셀에 넣으십시오.

=iferror(Regexextract(A1;"[A-z0-9._%+-]+@[A-z0-9.-]+\.[A-z]{2,4}");"")
  • A1 확인할 문자열 (귀하의 메일 본문)이 있어야하는 셀입니다
  • 완전한 공식은 두 부분으로 구성됩니다. 내부는 정규식이고 외부는 오류 방지용입니다.
  • Regexextract(A1,"\[A-z0-9._%+-\]+@\[A-z0-9.-\]+\.\[A-z\]{2,4}") 메일 주소를 반환
  • iferror(innerformula,"")#N/A정규식이 아무것도 반환 할 수없는 경우를 방지 합니다. 예를 들어 유효한 메일 주소가 없습니다.

여기에 이미지 설명을 입력하십시오

정규식 패턴은 어떻게 작동합니까?

[A-z0-9 ._ % +-] + @ [A-z0-9 .-] +. [Az] {2,4}

  • A-zA과 사이의 모든 문자를 나타냅니다 z.
    대문자와 소문자를 유의하십시오. 이 방법은 대소 문자를 구분하지 않습니다
  • 0-9 모든 숫자를 나타냅니다
  • ._%+- 그 표지판 자체를 대표
  • [ ] 괄호 안에 허용되는 단일 문자를 나타냅니다.
  • +부호를 붙이면 [ ]이전 패턴을 무한 반복 할 수 있습니다
  • @특별한 의미가 없습니다. 말 그대로 @기호를 검색합니다.
  • [A-z0-9.-]+위와 동일합니다. 하지만 이번에 _%+@사인 뒤에는 허용되지 않습니다
  • \.단일 지점을 검색합니다. 일반적으로 모든 자리 표시 자 \이므로 선행으로 이스케이프 .해야합니다.
  • 마지막으로 [A-z]{2,4}대소 문자를 구분하지 않는 2, 3 또는 4 개의 문자를 검색합니다

사용 된 자원


유용한 답변에 감사드립니다. 내가 가진 생각 중 하나는 {2, 4}다가오는 TLD .codes가 4자를 초과 하기 때문에 제한 될 수 있다는 것 입니다.
Alex Booker

1

이것은 Excel 용입니다.

다음 사용자 정의 함수 (UDF)를 고려하십시오 .

Public Function GetEmailAddy(Sin As String) As String
    Dim s As String
    If InStr(1, Sin, "@") = 0 Then
        GetEmailAddy = ""
        Exit Function
    End If

    s = Replace(Sin, Chr(10), " ")
    s = Replace(s, Chr(13), " ")
    s = Application.WorksheetFunction.Trim(s)
    ary = Split(s, " ")

    For Each a In ary
        If InStr(1, a, "@") > 0 Then
            GetEmailAddy = a
            Exit Function
        End If
    Next a
End Function

UDF (사용자 정의 함수)는 설치 및 사용이 매우 쉽습니다.

  1. ALT-F11은 VBE 창을 엽니 다
  2. ALT-I ALT-M은 새로운 모듈을 엽니 다
  3. 내용을 붙여 넣고 VBE 창을 닫습니다.

통합 문서를 저장하면 UDF도 함께 저장됩니다. 2003 년 이후 Excel 버전을 사용하는 경우 파일을 .xlsx가 아닌 .xlsm으로 저장해야합니다.

UDF를 제거하려면 다음을 수행하십시오.

  1. 위와 같이 VBE 창을 불러옵니다.
  2. 코드를 지우다
  3. VBE 창을 닫습니다

Excel에서 UDF를 사용하려면

=GetEmailAddy(A1)

매크로에 대한 일반적인 내용은 다음을 참조하십시오.

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

UDF에 대한 세부 사항은 다음을 참조하십시오.

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

이 기능을 사용하려면 매크로를 활성화해야합니다!

여기 몇 가지 예가 있어요.

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.