2014-01-16 4 views
0

У меня есть более 100k строк, подобные:выковыривать Email От Их

Joe | 123 | [email protected] 
Bob | 456 
Ben | 567 | Denver | [email protected] 

Письмо могло быть в любой точке/ячейках в этой строке и некоторые клетки имеют @ в них.

Как я могу получить следующий вывод:

Joe | [email protected] 
Bob | 
Ben | [email protected] 

или может просто помечать адрес электронной почты, на конце строки, а затем скрыть другие столбцы?

Я пробовал разные кусочки и кусочки, но никуда не спешил.

+1

Всегда ли адреса электронной почты в последнем столбце данной строки? –

ответ

2

Теперь, когда я знаю, что вы можете иметь его в каждом столбце, добавить столбец слева от столбца A. В вашем примере вы тогда B1 = «Джо» и т.д.

Затем поместите эту формулу в A1:

=IFERROR(OFFSET(A1,0,SUM(IFERROR(IF(FIND("@",$B1:$O1)>0,1,0),0)*COLUMN($B1:$O1))-1),"") 

Отрегулируйте диапазон $ B1: $ O1 в соответствии с вашими потребностями. Я предлагаю вам сделать его настолько плотным, насколько это возможно, потому что формулы массивов являются ресурсоемкими.

========================

Если адрес электронной почты всегда были в последнем столбце данной строки, и если не было никаких пробелов в строке до последнего значения, вы можете просто сделать:

Во-первых, добавить столбец слева от столбца A. В вашем примере вы тогда B1 = «Джо» и т.д.

Затем поместите эту формулу в ячейку A1

=OFFSET(A1,0,COUNTA($B1:$XFD1)) 

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

+0

К сожалению, электронные письма могут быть в любой точке/ячейке в этой строке – pee2pee

+0

См. Мое обновление с формулой Array. Это, как говорится, довольно скручено и граничит с лимитом, где VBA имеет больше смысла ... –

+0

Вы можете просто использовать Regex. На этом сайте много ресурсов. –

1

Немного веселья на самом деле. Назовите имена и все остальное Замените все @ без форматирования с помощью @ и стиля шрифта Полужирный. Скопировать в Word, Выбрать все, Найти что: * с шрифтом не жирным, использовать подстановочные знаки и ничего не заменять. Скопируйте обратно в Excel и перейдите на специальный, пробелы. Щелкните правой кнопкой мыши на одном из выделенных и Delete ..., Shift ячейки слева.

+0

Проблема в том, что некоторые ячейки имеют @ в них - и есть более 100 тыс. Строк :-( – pee2pee

+0

Если ни '@', ни позиция не идентифицируют электронные адреса, то у вас есть что-то еще, что бы сделать различие? Думаю, любой образец из 100k строки не помогли бы другим идентифицировать какой-либо «шаблон»! Примените регулярное выражение для поиска любых символов, '@', любых символов, '.', любых символов в одном слове? Или это случай для ручной очистки данных? – pnuts

+0

Я думал о регулярном выражении, но никогда не использовал его в excel до – pee2pee

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