Пример данных ячейки 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
Пример данных ячейки 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
Для данных, отформатированных таким образом (например, электронная почта, за которой следует контактный номер, за которым следует тема и каждая помечена как таковая), вы можете использовать функции FIND
и MID
чтобы извлечь электронную почту и контактные номера.
Чтобы извлечь письмо, вы можете использовать что-то вроде этого:
=MID(A1,FIND("Email:",A1)+LEN("Email: "),FIND("Contact Number:",A1)-FIND("Email:",A1)-LEN("Email: "))
Разбивая это:
Функция MID
принимает три аргумента:
1. Ячейка, из которой вы извлекаете текст,
2. С какого индекса начинается целевой текст (например, 40
будет начинаться с 40-го символа в A1), и
3. Сколько символов извлечь.
Первый аргумент - просто A1
.
Второй аргумент - FIND("Email:",A1)+LEN("Email: ")
. Это в основном говорит, что адрес электронной почты, который вы извлекаете, начинается с индекса сразу после Email:
Третий аргумент - FIND("Contact Number:",A1)-FIND("Email:",A1)-LEN("Email: ")
. Это способ расчета длины адреса электронной почты.
Хотя вы не просили решение VBA и, конечно, можете сделать это с помощью формул, для более обобщенного решения здесь может пригодиться пользовательская функция (UDF). Вы можете извлечь содержимое любой строки, которая начинается с известной метки.
Если вам нужно выполнить более сложное извлечение, другой алгоритм может оказаться полезным.
Алгоритм
Label
Split
будет массив с одной записью, в противном случае он будет иметь две записиSplit
есть две записи, верните вторую.Для ввода этой пользовательской функции (UDF)alt-F11 открывает редактор Visual Basic. Убедитесь, что ваш проект выделен в окне Project Explorer. Затем в верхнем меню выберите « Вставить / Модуль» и вставьте приведенный ниже код в открывшееся окно.
Чтобы использовать эту пользовательскую функцию (UDF), введите формулу
=cellPart(A1,"email:")
в какой-то камере.
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
Основываясь исключительно на приведенном вами единственном примере, вы можете использовать следующие 2 формулы
(это будет работать с данными в ячейке A1)
Эл. адрес:
=MID(A1,SEARCH("Email:",A1)+6,SEARCH("contact Number:",A1)-SEARCH("Email:",A1)-6)
Контактный номер:
=MID(A1,SEARCH("contact Number:",A1)+16,SEARCH("subject:",A1)-SEARCH("contact Number:",A1)-16)