从Excel中的文本单元格中提取URL

时间:2014-08-21 14:38:43

标签: excel vba parsing excel-formula formula

我有一个Excel文档,其中包含一个包含文本单元格的列(通常是小段落)。我想找到一种方法(最好是一个公式)来逐行提取任何url的那些单元格并将它们添加到另一列。

我一直在搞乱MID和FIND,并且很容易通过搜索“http”来获取这些URL的开头,但我无法弄清楚如何找到网址的长度所以我可以抓住它。

真的很期待任何人都可以提供任何帮助。这让我疯了!

4 个答案:

答案 0 :(得分:3)

要考虑字符串末尾发生的URL,您需要添加一些错误处理。

这适用于中间字符串和字符串结尾:

=MID(C11,FIND("http",C11),IFERROR(FIND(" ",C11,FIND("http",C11))-1,LEN(C11))-FIND("http",C11)+1)

答案 1 :(得分:1)

好的,我想我已经开始工作了。看看:

=MID(C11,FIND("http",C11),(FIND(" ",C11,FIND("http",C11))-FIND("http",C11))-4)

答案 2 :(得分:0)

您最可能的选择是确保您可以依赖于以相同方式形成的网址。比如,始终以“http”开头,并始终以“/”或“.com”结尾。然后你可以做公式来找到索引开始,索引结束,并抓住MID之间的所有内容。

它应该是这样的:

=FIND("http",D3)

返回第一部分的位置。

=FIND(".com",D3)

返回结尾的位置

=MID(D3,D9,D10-D9+4)

返回开头到结尾提供的字符串+4(允许这4个字符)

答案 3 :(得分:0)

一旦你确定了URL的起始位置,就会看到之后的第一个空格,应该是URL的结尾。