Fórmula do Excel: Obter domínio de nível superior (TLD) -

Índice

Fórmula genérica

=RIGHT(domain,LEN(domain)-FIND("*",SUBSTITUTE(domain,".","*",LEN(domain)-LEN(SUBSTITUTE(domain,".","")))))

Resumo

Para extrair o domínio de nível superior (TLD) (ou seja, "com", "net", "org") de um nome de domínio ou endereço de e-mail, você pode usar uma fórmula baseada em várias funções de texto: MID, RIGHT, FIND, LEN, e SUBSTITUIR. No exemplo mostrado, a fórmula na célula C5 é:

=RIGHT(B5,LEN(B5)-FIND("*",SUBSTITUTE(B5,".","*",LEN(B5)-LEN(SUBSTITUTE(B5,".","")))))

Nota: Na forma genérica da fórmula "domínio" representa um domínio ou endereço de e-mail como "www.domain.com".

Explicação

No exemplo, a célula C5 contém esta fórmula:

=RIGHT(B5,LEN(B5)-FIND("*",SUBSTITUTE(B5,".","*",LEN(B5)-LEN(SUBSTITUTE(B5,".","")))))

Basicamente, essa fórmula usa a função RIGHT para extrair caracteres começando da direita. As outras funções nesta fórmula fazem apenas uma coisa: descobrem quantos caracteres precisam ser extraídos, n:

=RIGHT(B5,n) // n = ??

Em um nível alto, a fórmula substitui o último ponto "." no domínio com um asterisco (*) e, em seguida, usa a função FIND para localizar a posição do asterisco. Uma vez que a posição é conhecida, a função RIGHT pode extrair o TLD.

Como a fórmula sabe como substituir apenas o último ponto? Esta é a parte inteligente. A chave está aqui:

SUBSTITUTE(B5,".","*",LEN(B5)-LEN(SUBSTITUTE(B5,".","")))

Este trecho faz a substituição real do último ponto por um asterisco (*).

O truque é que a função SUBSTITUTE tem um quarto argumento opcional que especifica qual "instância" do texto de localização deve ser substituída. Se nada for fornecido, todas as instâncias serão substituídas. No entanto, se, digamos, o número 2 for fornecido, apenas a segunda instância será substituída.

Para descobrir qual instância substituir, a função LEN é usada:

LEN(B5)-LEN(SUBSTITUTE(B5,".",""))

O comprimento do domínio sem pontos é subtraído do comprimento total do domínio. O resultado é o número de pontos no domínio.

No nome do exemplo em B5, há dois pontos no domínio, então o número 2 é usado como o número da instância:

SUBSTITUTE(B5," ","*",2)

Isso substitui apenas o segundo ponto por "*". O nome fica assim:

"www.domain * com"

A função FIND então assume o controle para descobrir exatamente onde o asterisco está no texto:

FIND("*", "www.domain*com")

O resultado é 11 (o * está na 11ª posição), que é subtraído do comprimento total do domínio:

LEN(B5)-11

Como o nome tem 15 caracteres, temos:

14-11 = 3

Finalmente, o número 3 é usado por RIGHT assim:

=RIGHT(B5,3)

O que resulta em "com"

Artigos interessantes...