使用excel 2013从大型系列网址中提取国家/地区扩展

时间:2018-01-24 20:45:01

标签: excel

我有一大堆网址,我需要根据各种因素进行细分。一个因素是它是否适用于美国以外的国家。我已经编写了我正在工作簿中搜索的所有扩展的列表(即.az,.mx,.nl等)。 由于网址的多样性,简单提取TLD并不适用于所有网站。例如:

b2  http://www.domainname.in
b3  http://www.domainname.co.in
b4  http://www.domainname.in/un.htm
b5  https://www.domainname.in/wp.content/_input_3_.txt I

我正在使用RIGHT(b2,LEN(b2)-FIND("*",SUBSTITUTE(b2,".","*",LEN(b2)-LEN(SUBSTITUTE(b2,".",""))))))来提取b2示例中的TLD。但是,它对那些有其他结局的人不起作用。我正在考虑在示例b4中搜索第三个“/”,但是更长的网址(比如b5)会阻止这种情况。 有没有办法确定是否存在国家/地区扩展?此外,可以让其旁边的列列出国家/地区扩展名(如果存在)。 我目前没有Macros或VBA的工作知识,

1 个答案:

答案 0 :(得分:0)

好的,这会很疯狂。所以我们知道国家代码附加到域名,通常是最后两个字母。我要做的第一件事就是将域名分开。公式看起来像这样:

(我将所有网址放在A栏中,因此您必须修复列引用)

=TRIM(MID(SUBSTITUTE(SUBSTITUTE($A1,"//","/"),"/",REPT(" ",999)),COLUMNS($A:B)*999-998,999))

这样做会将双//替换为一个/,然后将其用作分隔符,并获取第二列即域名。

接下来,我们需要找到您已经完成的域名的国家/地区代码,但我会使用略有不同的公式。如果您自己只有A列中的域名,则可以像这样提取它。

=TRIM(RIGHT(SUBSTITUTE($A1,".",REPT(" ",LEN($A1))),LEN($A1)))

现在我们有了这两个公式,我们可以用第一个公式替换第二个公式的$A1引用,这样我们就不会使用一堆单元格来提取代码。组合公式如下所示:

=TRIM(RIGHT(SUBSTITUTE(TRIM(MID(SUBSTITUTE(SUBSTITUTE($A1,"//","/"),"/",REPT(" ",999)),COLUMNS($A:B)*999-998,999)),".",REPT(" ",LEN(TRIM(MID(SUBSTITUTE(SUBSTITUTE($A1,"//","/"),"/",REPT(" ",999)),COLUMNS($A:B)*999-998,999))))),LEN(TRIM(MID(SUBSTITUTE(SUBSTITUTE($A1,"//","/"),"/",REPT(" ",999)),COLUMNS($A:B)*999-998,999)))))

希望有所帮助