
Formula generică
=RIGHT(domain,LEN(domain)-FIND("*",SUBSTITUTE(domain,".","*",LEN(domain)-LEN(SUBSTITUTE(domain,".","")))))
rezumat
Pentru a extrage domeniul de nivel superior (TLD) (adică „com”, „net”, „org”) dintr-un nume de domeniu sau o adresă de e-mail, puteți utiliza o formulă bazată pe mai multe funcții de text: MID, RIGHT, FIND, LEN, și SUBSTITUT. În exemplul prezentat, formula din celula C5 este:
=RIGHT(B5,LEN(B5)-FIND("*",SUBSTITUTE(B5,".","*",LEN(B5)-LEN(SUBSTITUTE(B5,".","")))))
Notă: În forma generică a formulei „domeniu” reprezintă un domeniu sau o adresă de e-mail precum „www.domain.com”.
Explicaţie
În exemplu, celula C5 conține această formulă:
=RIGHT(B5,LEN(B5)-FIND("*",SUBSTITUTE(B5,".","*",LEN(B5)-LEN(SUBSTITUTE(B5,".","")))))
La bază, această formulă folosește funcția DREAPTA pentru a extrage caractere începând din dreapta. Celelalte funcții din această formulă fac doar un lucru: își dau seama câte caractere trebuie extrase, n:
=RIGHT(B5,n) // n = ??
La un nivel ridicat, formula înlocuiește ultimul punct „.” în domeniul cu un asterisc (*) și apoi folosește funcția FIND pentru a localiza poziția asteriscului. Odată ce poziția este cunoscută, funcția DREAPTA poate extrage TLD.
Cum știe formula să înlocuiască doar ultimul punct? Aceasta este partea inteligentă. Cheia este aici:
SUBSTITUTE(B5,".","*",LEN(B5)-LEN(SUBSTITUTE(B5,".","")))
Acest fragment face înlocuirea efectivă a ultimului punct cu un asterisc (*).
Trucul este că funcția SUBSTITUTE are un al patrulea argument opțional care specifică care „instanță” a textului de căutare ar trebui înlocuită. Dacă nu este furnizat nimic, toate instanțele sunt înlocuite. Cu toate acestea, dacă, să spunem că numărul 2 este furnizat, doar a doua instanță este înlocuită.
Pentru a afla ce instanță de înlocuit, funcția LEN este utilizată:
LEN(B5)-LEN(SUBSTITUTE(B5,".",""))
Lungimea domeniului fără puncte este scăzută din lungimea completă a domeniului. Rezultatul este numărul de puncte din domeniu.
În numele de exemplu din B5, există două puncte în domeniu, astfel încât numărul 2 este utilizat ca în numărul instanței:
SUBSTITUTE(B5," ","*",2)
Aceasta înlocuiește doar al doilea punct cu „*”. Numele arată astfel:
„www.domain * com”
Funcția FIND preia apoi rolul pentru a afla exact unde este asteriscul în text:
FIND("*", "www.domain*com")
Rezultatul este 11 (* este în poziția a 11-a) care se scade din lungimea totală a domeniului:
LEN(B5)-11
Deoarece numele este de 15 caractere, avem:
14-11 = 3
În cele din urmă, numărul 3 este folosit de DREAPTA astfel:
=RIGHT(B5,3)
Care are ca rezultat „com”