Excel-formel: Hämta toppdomän (TLD) -

Innehållsförteckning

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"

Intressanta artiklar...