
Generisk formel
=RIGHT(domain,LEN(domain)-FIND("*",SUBSTITUTE(domain,".","*",LEN(domain)-LEN(SUBSTITUTE(domain,".","")))))
Sammanfattning
För att extrahera toppdomänen (TLD) (dvs. "com", "net", "org") från ett domännamn eller e-postadress kan du använda en formel baserad på flera textfunktioner: MIDD, HÖGER, HITTA, LEN, och ersättare. I exemplet som visas är formeln i cell C5:
=RIGHT(B5,LEN(B5)-FIND("*",SUBSTITUTE(B5,".","*",LEN(B5)-LEN(SUBSTITUTE(B5,".","")))))
Obs! I den generiska formen av formeln representerar "domän" en domän eller e-postadress som "www.domän.com".
Förklaring
I exemplet innehåller cell C5 denna formel:
=RIGHT(B5,LEN(B5)-FIND("*",SUBSTITUTE(B5,".","*",LEN(B5)-LEN(SUBSTITUTE(B5,".","")))))
I grunden använder denna formel RIGHT-funktionen för att extrahera tecken som börjar från höger. De andra funktionerna i denna formel gör bara en sak: de räknar ut hur många tecken som behöver extraheras, n:
=RIGHT(B5,n) // n = ??
På hög nivå ersätter formeln den sista punkten "." i domänen med en asterisk (*) och använder sedan HITTA-funktionen för att lokalisera asteriskens position. När positionen är känd kan RIGHT-funktionen extrahera TLD.
Hur vet formeln att endast ersätta den sista punkten? Det här är den smarta delen. Nyckeln är här:
SUBSTITUTE(B5,".","*",LEN(B5)-LEN(SUBSTITUTE(B5,".","")))
Detta kodavsnitt ersätter den sista punkten med en asterisk (*).
Tricket är att SUBSTITUTE-funktionen har ett valfritt fjärde argument som anger vilken "instans" av söktexten som ska ersättas. Om inget levereras byts alla instanser ut. Men om, säg att siffran 2 tillhandahålls, ersätts endast den andra instansen.
För att ta reda på vilken instans som ska ersättas används LEN-funktionen:
LEN(B5)-LEN(SUBSTITUTE(B5,".",""))
Längden på domänen utan några punkter subtraheras från domänens fulla längd. Resultatet är antalet punkter i domänen.
I exemplets namn i B5 finns det två punkter i domänen, så numret 2 används som i instansnumret:
SUBSTITUTE(B5," ","*",2)
Detta ersätter endast andra punkten med "*". Namnet ser då ut så här:
"www.domain * com"
HITTA-funktionen tar sedan över att räkna ut exakt var asterisken finns i texten:
FIND("*", "www.domain*com")
Resultatet är 11 (* är i 11: e position) som subtraheras från domänens totala längd:
LEN(B5)-11
Eftersom namnet är 15 tecken har vi:
14-11 = 3
Slutligen används nummer 3 av RIGHT så:
=RIGHT(B5,3)
Vilket resulterar i "com"