I want a formula that searches a string for all occurrences of http
and removes that entire link. For instance:
This is the best story ever http://www.usatoday.com make sure to read it twice. http://www.usatoday.com/image.jpg
would become:
This is the best story ever make sure to read it twice.
From what I've read, this should do it:
=TRIM(LEFT(A1,FIND("http",A1)-1))&RIGHT(A1,LEN(A1)-FIND(" ",A1,FIND("http",A1))+1)
but I'm still getting #VALUE!
.
I'd like to be able to have the code find the URL at any point in the string. Also, if no URL is found, I'd just like the original string reprinted.
Any ideas?
Please try:
=TRIM(REPLACE(A1,FIND("http://",A1),IFERROR(FIND(" ",A1,FIND("http://",A1)),LEN(A1)+9)-FIND("http://",A1)+1,""))
if you're looking to remove URLS not just at end of sentence.
IMO the following edit from @Siddharth Rout provides a better solution than the above.
Non VBA / Non Formula Method
- Press CTRL + H to bring the
Find And Replace
Dialog Box.
- In
Find What
, type "http://* " without the quotes. Notice there is a space after *
- Keep the
Replace With
empty.
- Click
Replace All
- Now in
Find What
, type "http://*" without the quotes. Notice there no space after *
- Keep the
Replace With
empty
- Click
Replace All
And you are done.
You can create your own formula to use regexp expressions in Excel.
- in Excel open Visual Basic Editor
- Go to
Tools > References...
- Check
Microsoft VBScript Regular Expressions 1.0
- and
Microsoft VBScript Regular Expressions 5.5
- Then right-click your
VBAProject (Book1.xlsx)
on the left pane
Insert > Module
Paste this code
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
And save
Now yoг have a new formula in your list
which you can use to regexp replace the string using patterns. In your case it will be
(special thanks to vdasus)
try this:
=TRIM(MID(A1,1,SEARCH("http",A1)-1))
No way to test it so i leave it to you.