Formule Excel: obtenir le domaine de premier niveau (TLD) -

Table des matières

Formule générique

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

Sommaire

Pour extraire le domaine de premier niveau (TLD) (c'est-à-dire "com", "net", "org") d'un nom de domaine ou d'une adresse e-mail, vous pouvez utiliser une formule basée sur plusieurs fonctions de texte: MID, RIGHT, FIND, LEN, et SUBSTITUT. Dans l'exemple illustré, la formule de la cellule C5 est:

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

Remarque: Dans la forme générique de la formule "domaine" représente un domaine ou une adresse e-mail comme "www.domaine.com".

Explication

Dans l'exemple, la cellule C5 contient cette formule:

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

Au fond, cette formule utilise la fonction DROITE pour extraire les caractères en commençant par la droite. Les autres fonctions de cette formule ne font qu'une chose: elles déterminent le nombre de caractères à extraire, n:

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

À un niveau élevé, la formule remplace le dernier point "." dans le domaine avec un astérisque (*), puis utilise la fonction FIND pour localiser la position de l'astérisque. Une fois la position connue, la fonction DROITE peut extraire le TLD.

Comment la formule sait-elle qu'elle ne remplace que le dernier point? C'est la partie la plus intelligente. La clé est ici:

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

Cet extrait de code remplace le dernier point par un astérisque (*).

L'astuce est que la fonction SUBSTITUTE a un quatrième argument facultatif qui spécifie quelle «instance» du texte de recherche doit être remplacée. Si rien n'est fourni, toutes les instances sont remplacées. Cependant, si, par exemple, le numéro 2 est fourni, seule la deuxième instance est remplacée.

Pour déterminer quelle instance remplacer, la fonction LEN est utilisée:

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

La longueur du domaine sans aucun point est soustraite de la longueur totale du domaine. Le résultat est le nombre de points dans le domaine.

Dans l'exemple de nom en B5, il y a deux points dans le domaine, donc le numéro 2 est utilisé comme dans le numéro d'instance:

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

Cela remplace seulement le deuxième point par "*". Le nom ressemble alors à ceci:

"www.domaine * com"

La fonction FIND prend alors le relais pour déterminer exactement où se trouve l'astérisque dans le texte:

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

Le résultat est 11 (le * est en 11ème position) qui est soustrait de la longueur totale du domaine:

LEN(B5)-11

Le nom étant composé de 15 caractères, nous avons:

14-11 = 3

Enfin, le chiffre 3 est utilisé par DROITE comme ceci:

=RIGHT(B5,3)

Ce qui donne "com"

Articles intéressants...