Я пытаюсь создать базу данных с этого сайта. В каждой стране есть множество агентов с контактными данными рядом с их именем (номер факса и название компании не требуются).

Проблема заключается в том, что из-за формата веб-сайта, когда я копирую данные в свой лист Excel, каждый агент распределяется по 3 или 4 строкам.

Мне нужно, чтобы каждый агент располагал всю свою информацию в одном ряду,

например.(Клетки в скобках)

[ A1 ]       [ B1 ]             [ C1 ]  [ D1 ]                     [ E1 ]  [ F1 ]
GRO Alberti  alerti.ago@got.ch  Bosnia  P Hora K2 A 8 41 Dhjetori  Girana  Tel:+42-79/379 82 86.

Я попытался скопировать все это вручную, но это занимает слишком много времени.

Есть ли какой-нибудь автоматический или более быстрый способ достижения того, что я пытаюсь сделать?

2 ответа2

0

Я не уверен точно, как вы получаете значение C1, но вы должны быть в состоянии получить источник страницы. Для этого нажмите Ctrl+U. Это должно дать вам страницу, написанную на HTML. Найдите строку 128 (или там, где начинается таблица, там должны быть нужные вам данные, и она начинается с <table class ...

Скопируйте все из <table class ... в </table> которая находится на той же строке, рядом с концом.

Вставьте это в блокнот.

Нажмите Ctrl+H и используйте Найти что: <br /> Заменить на: "" (один пробел) и нажмите Заменить все.

Скопируйте все и вставьте в Excel. После этого вы можете удалить форматирование, чтобы выровнять размеры ячейки.

Обратите внимание, что гиперссылки останутся в данных.

РЕДАКТИРОВАТЬ:

Чтобы отделить электронную почту, телефон, мобильный телефон и факс будут немного длиннее, но не так долго.

Чтобы получить электронное письмо, используйте эту формулу в следующей ячейке в E2:

=LEFT(D2, FIND(" ",D2)-1)

И перетащите вниз.

Чтобы получить числа сейчас, проще будет сначала получить их все отдельно в столбце F:

=MID(D2, FIND(" ",D2)+1, LEN(D2))

Теперь в G мы получим телефон, в H мы получим факс, а в I мы получим мобильный телефон.

В G2 вставьте и перетащите вниз:

=IFERROR(MID(F2,FIND("Tel:",F2)+4,IFERROR(FIND(":",F2,FIND("Tel:",F2)+4),LEN(F2))-FIND("Tel:",F2)-4),"")

В H2 вставьте и перетащите вниз:

=IFERROR(MID(F2,FIND("Fax:",F2)+4,IFERROR(FIND(":",F2,FIND("Fax:",F2)+4),LEN(F2))-FIND("Fax:",F2)-4),"")

В I2 вставьте и перетащите вниз:

=IFERROR(MID(F2,FIND("Mobile:",F2)+7,IFERROR(FIND(":",F2,FIND("Mobile:",F2)+7),LEN(F2))-FIND("Mobile:",F2)-7),"")

После этого скопируйте все и вставьте в качестве значений, чтобы удалить формулы. Выделите столбцы от G до I и замените все Tel , Fax и Mobile с помощью Ctrl+H.

Французский функционирует в порядке, указанном выше:

=GAUCHE(D2, TROUVE(" ",D2)-1)

=STXT(D2, TROUVE(" ",D2)+1, NBCAR(D2))

=SIERREUR(STXT(F2,TROUVE("Tel:",F2)+4,SIERREUR(TROUVE(":",F2,TROUVE("Tel:",F2)+4),NBCAR(F2))-TROUVE("Tel:",F2)-4),"")

=SIERREUR(STXT(F2,TROUVE("Fax:",F2)+4,SIERREUR(TROUVE(":",F2,TROUVE("Fax:",F2)+4),NBCAR(F2))-TROUVE("Fax:",F2)-4),"")

=SIERREUR(STXT(F2,TROUVE("Mobile:",F2)+7,SIERREUR(TROUVE(":",F2,TROUVE("Mobile:",F2)+7),NBCAR(F2))-TROUVE("Mobile:",F2)-7),"")
0

Если вы хотите использовать формулы Excel:

  • скопировать и вставить таблицу в Excel
    • строки в первых 2 столбцах будут объединены, но формулы могут видеть значение только в самой верхней левой ячейке объединенной области, другие ячейки для формул будут пустыми
  • предполагая, что данные начинаются в ячейке A2 , добавьте следующую формулу в ячейку E2 - Alt+Enter вводит новую строку:
    = C2 & IF($ A3 <> "", "", "
    "& E3)
  • скопировать формулу в соответствующий диапазон
  • Фильтровать по столбцу Name , исключая (Blanks)
  • скрыть оригинальный Address и Other info столбцы информации
  • скопировать и вставить специальные значения в новый лист

иллюстрация решения перед последним шагом

Основной алгоритм:

  1. начать с нижнего ряда
  2. если Name в 1-й строке не является пустым, создайте новую строку S содержащую Address из этой строки
    еще добавить текст из адреса в этой строке в начале S
  3. двигаться на 1 строку вверх

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .