用于删除以某些字符开头的整个单词的公式

时间:2014-01-29 03:31:21

标签: excel excel-2007 excel-formula excel-2010 excel-2013

我想要一个公式,在字符串中搜索所有出现的http并删除整个链接。例如:

This is the best story ever http://www.usatoday.com make sure to read it twice. http://www.usatoday.com/image.jpg

会变成:

This is the best story ever make sure to read it twice.

从我读过的内容来看,应该这样做:

 =TRIM(LEFT(A1,FIND("http",A1)-1))&RIGHT(A1,LEN(A1)-FIND(" ",A1,FIND("http",A1))+1)

但我仍然得到#VALUE!

我希望能够让代码在字符串中的任何位置找到URL。此外,如果没有找到URL,我只想重新打印原始字符串。

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

请尝试:

=TRIM(REPLACE(A1,FIND("http://",A1),IFERROR(FIND(" ",A1,FIND("http://",A1)),LEN(A1)+9)-FIND("http://",A1)+1,""))  

如果您想要删除网址,而不仅仅是句末。

IMO @Siddharth Rout的以下编辑提供了比上述更好的解决方案。


非VBA /非公式方法

  1. CTRL + H 以显示Find And Replace对话框。
  2. Find What中,输入不带引号的“http:// *”。请注意*
  3. 之后有一个空格
  4. 保持Replace With为空。
  5. 点击Replace All
  6. 现在在Find What中,输入不带引号的“http:// *”。请注意*
  7. 之后没有空格
  8. 保持Replace With为空
  9. 点击Replace All
  10. 你已经完成了。

答案 1 :(得分:2)

您可以创建自己的公式以在Excel中使用正则表达式。

  1. 在Excel中打开Visual Basic编辑器
  2. 转到Tools > References... enter image description here
  3. 检查Microsoft VBScript Regular Expressions 1.0 enter image description here
  4. Microsoft VBScript Regular Expressions 5.5 enter image description here
  5. 然后右键单击左窗格中的VBAProject (Book1.xlsx) enter image description here
  6. Insert > Module
  7. 粘贴此代码

    Public Function RgxReplace(aregexp As String, _
    astring As Range, _
    areplace As String) As String
    Dim re As RegExp
    Set re = New RegExp
    re.Pattern = aregexp
    RgxReplace = re.Replace(astring, areplace)
    End Function
    
  8. 并保存

  9. 现在你的名单中有一个新公式

    enter image description here 您可以使用regexp替换使用模式的字符串。在你的情况下它将是 enter image description here

    (特别感谢vdasus

答案 2 :(得分:1)

试试这个:

=TRIM(MID(A1,1,SEARCH("http",A1)-1))

无法测试,所以我留给你。