我正在尝试创建一个数据库本网站。每个国家都有很多代理商,代理商名称旁边有联系方式(不需要传真号码和公司名称)。
问题在于,由于网站格式,当我将数据复制到我的 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)
- 隐藏原始
Address
和Other info
列 - 将特殊值复制并粘贴到新工作表中
底层算法是:
- 从底行开始
- 如果
Name
向下一行不为空,则创建一个S
包含此行地址的新字符串
,否则将此行地址中的文本添加到开头S
- 向上移动 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 列,并将 、 和 替换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),"")