Como extrair o número do celular e o endereço de email de uma célula específica do excel, com outro texto também disponível na célula [fechada]

0

Dados de amostra da célula do Excel:

Subject :Contact from Al Meezan Investment<br/> Email Body: Name: Gulzar ali mirbahar
Email: [email protected]
Contact Number: 03412770800
Subject: Can I eligible of this offer
Waqas
fonte
Bem-vindo ao Super Usuário! O que você tentou até agora?
Bertieb 10/0518

Respostas:

2

Para dados formatados como este (por exemplo, E-mail seguido de Número de contato seguido de Assunto e cada um identificado como tal), você pode usar as funções FINDe MIDpara extrair os números de e-mail e contato.

Para extrair o email, você pode usar algo como isto:

=MID(A1,FIND("Email:",A1)+LEN("Email: "),FIND("Contact Number:",A1)-FIND("Email:",A1)-LEN("Email: "))

Dividindo:
A MIDfunção usa três argumentos:
1. A célula da qual você extrai o texto,
2. Em qual índice de caracteres o texto de destino começa (por exemplo, 40começaria no 40º caractere em A1) e
3. Quantos caracteres extrair.

O primeiro argumento é justo A1.
O segundo argumento é FIND("Email:",A1)+LEN("Email: "). Isso basicamente diz que o endereço de e-mail que você está extraindo começa no índice logo depois Email:.
O terceiro argumento é FIND("Contact Number:",A1)-FIND("Email:",A1)-LEN("Email: "). Essa é uma maneira de calcular o tamanho do endereço de email.

Excellll
fonte
2

Embora você não tenha solicitado uma solução VBA e certamente possa fazer isso com fórmulas, para uma solução mais generalizada, uma UDF (Função Definida pelo Usuário) pode ser útil aqui. Você pode extrair o conteúdo de qualquer linha que comece com um rótulo conhecido.

Se você tiver extrações mais complicadas para executar, um algoritmo diferente poderá ter valor.

Algoritmo

  • Dividir o conteúdo da célula no caractere de avanço de linha
  • Divida cada linha com base no valor desejado Label
    • Se o rótulo não estiver presente, o resultado Splitserá uma matriz com uma única entrada, caso contrário, ela terá duas entradas
  • Se Splithouver duas entradas, retorne a segunda.

Para inserir esta Função Definida pelo Usuário (UDF), alt-F11abre o Editor do Visual Basic. Verifique se o seu projeto está destacado na janela Explorador de Projetos. Em seguida, no menu superior, selecione Inserir / Módulo e cole o código abaixo na janela que é aberta.

Para usar esta Função Definida pelo Usuário (UDF), insira uma fórmula como

=cellPart(A1,"email:")

em alguma cela.

Option Explicit
Option Compare Text
'Extract any line starting with sLabel

Function cellPart(myCell As Range, sLabel As String) As String
  Dim V, W, X
  V = Split(myCell.Text, vbLf)

For Each W In V
    X = Split(W, sLabel)
    If UBound(X) = 1 Then
        cellPart = CStr(Trim(X(1)))
        Exit Function
    End If
Next W
End Function
Ron Rosenfeld
fonte
1

Baseado apenas no único exemplo que você forneceu, você pode usar as 2 fórmulas abaixo

( isso funcionará nos dados da célula A1 )

O email:

=MID(A1,SEARCH("Email:",A1)+6,SEARCH("contact Number:",A1)-SEARCH("Email:",A1)-6)

Número de contato:

=MID(A1,SEARCH("contact Number:",A1)+16,SEARCH("subject:",A1)-SEARCH("contact Number:",A1)-16)
PeterH
fonte