Нестандартное извлечение данных Excel

Мне было очень трудно найти решение для этого – хотя я уверен, что это там. Просто не уверен в точной формулировке, чтобы получить то, что я ищу.

У меня огромный набор данных, где некоторые данные отсутствуют, поэтому они не являются однородными. Я хочу извлечь только имя в один столбец и отправить по электронной почте в следующий столбец.

Лучший способ, которым я могу сузить это, – это пробел между каждой уникальной записью с именем, всегда находящимся в первом поле.

Пример:

Джон Доу
Компания John Doe
(555) 555-5555
[email protected]

Джон Доу
(555) 555-5555

Джон Доу
Компания Джейн Доу
[email protected]

С желаемыми результатами (в двух столбцах excel):

Джон Доу | [email protected]
Джон Доу |
Джон Доу | [email protected]

Любые предложения по наилучшему способу сделать это были бы оценены. Чтобы было сложно, если не было электронной почты, я бы хотел полностью игнорировать этот набор, но я мог бы просто проверить вручную.

Кодирование VBA:
1. Укажите в строке 1 начальную строку, где начинаются данные.
2. Поместите флаг в этом случае слова «конец», чтобы указать конец информации.
3. Создайте второй лист

Sub ToList() Row1 = 1 'Row initial from data Row2 = 1 'Row initial to put list Do Name = False Do field = Trim(Sheets(1).Cells(Row1, 1)) If field <> "" And LCase(field) <> "end" And Not Name Then Sheets(2).Cells(Row2, 1) = field Name = True End If Row1 = Row1 + 1 Loop Until (IIf(field = "" Or LCase(field) = "end", True, False)) fieldprev = Sheets(1).Cells(Row1 - 2, 1) If InStr(fieldprev, "@") > 0 Then Sheets(2).Cells(Row2, 2) = fieldprev End If Row2 = Row2 + 1 Loop Until (IIf(LCase(field) = "end", True, False)) End Sub 

Извлечение адреса электронной почты не должно быть слишком сложным, так как вам просто нужно искать строку, содержащую символ @. Для разделения отдельных слов можно использовать ряд функций поиска () и mid (). Найдите каждый экземпляр пространства и используйте это значение в функции mid (). Затем выполните поиск @ в результатах, и вы должны найти адрес электронной почты. Извлечение названия будет сложнее, если исходные данные будут очень грязными.

Однако я добавлю второй комментарий выше об использовании внешнего скрипта, особенно для большого набора данных. Excel не предназначен для описания того, что вы здесь описываете.

Давайте будем гением компьютера.