2015-06-23 3 views
-1

Здравствуйте, вот моя проблема. У меня большой экспорт электронных таблиц из Outlook с некоторыми данными, которые я хочу извлечь из столбца примечаний.Вытягивание определенных данных из ячейки с абзацем в Excel

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

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

Я попытался использовать =MID(A1,FIND("$",A1),8), чтобы получить цену, однако, цены могут меняться в зависимости.

Я также не знаю, как получить номера телефонов.

жаль, что я немного новичок в этом роде, поэтому простите мое невежество, если я что-то упустил.

(редактировать)

колонна клеток имеет вид информации ниже, и я стараюсь, чтобы получить $ сумму и номер телефона из и в их собственных столбцов каждая ячейка будет иметь различные варианты и длины заметки.

04/08/13 - ****** E-mail и позвонил Джошуа 04/08/13 и хотел подписаться на *** Маркетинговую программу для CDN $ 399,00 + HST. программа передачи котировок текстовых сообщений. 306 555 5555 поставщик услуг sasktel 04/22/13 - ***** ***** отправил электронное письмо с просьбой ввести имя пользователя и пароль, а **** отправил ему e -mail «.

В настоящее время я использую приведенную выше формулу, чтобы вытащить цену, после чего я вручную ввожу ее в поле, к которому она принадлежит. Для номера телефона и любой другой информации я транскрибирую одну ячейку за раз.

+2

Что вы пробовали? Отправьте несколько ячеек информации об образцах, я могу помочь. Возможно, вы захотите также выполнить поиск в Regex, я считаю, что это может вам помочь. –

+0

Хорошо спасибо, отредактируйте сообщение и проверьте Regex, как только смогу. Еще раз спасибо. –

ответ

0

Вам нужны регулярные выражения для работы с такими данными.

Сначала вам нужно будет добавить модуль к вашему проекту VBA и вставить следующий код:

Public Function RegexReplace(needle, haystack, replacement) 

    Dim regex 
    Set regex = CreateObject("VBScript.RegExp") 

    regex.Pattern = needle 
    regex.Global = true 
    regex.IgnoreCase = true 

    RegexReplace = regex.Replace(haystack, replacement) 

End Function 

Цена: =RegexReplace(A1, "[^\$]+([0-9\.]+).+", "$1")

Контактный телефон: =RegexReplace(A1, ".+([0-9]{3} [0-9]{3} [0-9]{4}).+", "$1")

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

Вот пара предыдущих вопросов, заданных по теме соответствия phone numbers и currency.

Смежные вопросы