在excel / google电子表格中将网址删除到基本网址

时间:2016-06-19 17:25:51

标签: excel google-sheets

我一直在使用下面的excel / google驱动器电子表格功能,它允许您获取网址,删除协议(例如http://),剥离www,并删除TLD之后的任何信息。功能是:

=IF(ISERROR(FIND("//www.",A2)), MID(A2,FIND(":",A2,4)+3,FIND("/",A2,9)-FIND(":",A2,4)-3), MID(A2,FIND(":",A2,4)+7,FIND("/",A2,9)-FIND(":",A2,4)-7))

它的效果很好但是如果URL已经是裸的,例如。 example.com 该函数抛出一个错误,如果url是dosnt有一个尾部斜杠或域名前面的斜杠(例如在http://中),它也会抛出错误。我已经尝试了几种方法来检查网址是否已经裸露,通过检查单元格是否包含:http://, https://, ftp://, www. etc..但这看起来过于复杂和脆弱。

有更好的方法吗?

为了测试,我在这里制作了一个谷歌电子表格:https://docs.google.com/spreadsheets/d/1IVe-VqZtqBtyobBzVHBIm2WQYCvynKZonxK_uEZvXDc/edit#gid=0

2 个答案:

答案 0 :(得分:2)

试试这个,

如果您有任何其他疑问,请评论

= IFERROR(IF(找到( “/”,A11)< 8,INDEX(SPLIT(A11, “//”),1,2),IF(FIND( “/”,A11)> 8 ,INDEX(SPLIT(A11, “//”),1,1),0)),A12)

答案 1 :(得分:1)

您可以在google工作表中的单个正则表达式函数中执行此操作:

=REGEXEXTRACT(A1,"^(?:https?:\/\/)?(?:www\.)?([^\/]+)")

或iferror,如果单元格为空白:

=IFERROR(REGEXEXTRACT(A1,"^(?:https?:\/\/)?(?:www\.)?([^\/]+)"))