Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提取URL';从Excel中的文本单元格中删除_Excel_Vba_Parsing_Excel Formula_Formula - Fatal编程技术网

提取URL';从Excel中的文本单元格中删除

提取URL';从Excel中的文本单元格中删除,excel,vba,parsing,excel-formula,formula,Excel,Vba,Parsing,Excel Formula,Formula,我有一个Excel文档,其中有一列包含文本单元格(通常是小段落)。我想找到一种方法(最好是一个公式)来按行提取任何url的这些单元格,并将它们添加到另一列 我一直在搞MID,找到了很多,通过搜索“http”可以很容易地找到这些url的极限,但我不知道如何找到url的长度,这样我就可以抓住它了 真的很期待任何人能提供的帮助。它快把我逼疯了 您最可能的选择是确保您可以依赖以相同方式形成的URL。例如,始终以“http”开头,并始终以“/”或“.com”结尾。然后,您可以使用公式来查找索引开始、索引结

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

我一直在搞MID,找到了很多,通过搜索“http”可以很容易地找到这些url的极限,但我不知道如何找到url的长度,这样我就可以抓住它了


真的很期待任何人能提供的帮助。它快把我逼疯了

您最可能的选择是确保您可以依赖以相同方式形成的URL。例如,始终以“http”开头,并始终以“/”或“.com”结尾。然后,您可以使用公式来查找索引开始、索引结束,并获取中间的所有内容

应该是这样的:

=FIND("http",D3)
返回第一个零件的位置

=FIND(".com",D3)
返回端点的位置

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

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

一旦您确定了URL的开始位置,然后查找第一个空格,应该是URL的结尾。

好的,我想我已经让它工作了。请查看:

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

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

这应该适用于中字符串和字符串末尾:

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

这是个好主意。假设我使用SEARCH或FIND来找出字符串从char 24开始,那么从那里得到字符串长度的最佳方法是什么?好的,我想我已经找到了一些可行的方法。让我知道你的想法。假设URL以
.com
结尾是完全错误的。它也可能是域名的开头(例如:
somesubdomain.computer.net
)。但更重要的是,除了
.com
之外,还有很多其他内容,这就是我说“假设”的原因。它可以很容易地以“HTML”或“PHP”结尾。尽管如此,概念证明是正确的。不。让我们假设域以
.com
结尾。url的其余部分呢?像
/imghp?hl=en
中的
http://www.google.com/imghp?hl=en
刚刚又添加了一个小改动,在文本不包含任何“http”实例的情况下,将整个内容包装在IFERROR中。很好的调用@ChrisVasquez!