Dados de amostra da célula do Excel:
Subject :Contact from Al Meezan Investment<br/> Email Body: Name: Gulzar ali mirbahar
Email: mirbaharg@gmail.com
Contact Number: 03412770800
Subject: Can I eligible of this offer
Dados de amostra da célula do Excel:
Subject :Contact from Al Meezan Investment<br/> Email Body: Name: Gulzar ali mirbahar
Email: mirbaharg@gmail.com
Contact Number: 03412770800
Subject: Can I eligible of this offer
Respostas:
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.
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
Label
Splitserá uma matriz com uma única entrada, caso contrário, ela terá duas entradasSplithouver 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
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)