从网站复制/粘贴时格式化 Excel 工作表

从网站复制/粘贴时格式化 Excel 工作表

我正在尝试创建一个数据库本网站。每个国家都有很多代理商,代理商名称旁边有联系方式(不需要传真号码和公司名称)。

问题在于,由于网站格式,当我将数据复制到我的 Excel 表中时,每个代理的信息分布在 3 或 4 行上。

我需要每个代理的所有信息都放在一行上,

例如(括号内的单元格)

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

我尝试手动复制粘贴所有内容,但这花费的时间太长了。

有没有自动或更快捷的方法来实现我想要做的事情?

答案1

如果您想使用 Excel 公式:

  • 将表格复制粘贴到 Excel 中
    • 前两列的行将被合并,但公式只能看到合并区域最左上角单元格的值,其他单元格对于公式而言为空白
  • 假设数据从单元格开始A2,在单元格中添加以下公式E2- 输入新行Alt+Enter
    =C2 & IF($A3<>"", "", " 
    " & E3)
  • 将公式复制到适当范围
  • 按列过滤Name,排除(Blanks)
  • 隐藏原始AddressOther info
  • 将特殊值复制并粘贴到新工作表中

最后一步之前的解决方案的图示

底层算法是:

  1. 从底行开始
  2. 如果Name向下一行不为空,则创建一个S包含此行地址的新字符串
    ,否则将此行地址中的文本添加到开头S
  3. 向上移动 1 行

答案2

我不确定您是如何获得 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 列,并将 、 和 替换TelFaxMobile+ 之间的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),"")

相关内容