Excel-formel: Extrahera ord som börjar med ett specifikt tecken -

Innehållsförteckning

Generisk formel

=TRIM(LEFT(SUBSTITUTE(MID(txt,FIND("@",txt),LEN(txt))," ",REPT(" ",100)),100))

Sammanfattning

För att extrahera ord som börjar med ett specifikt tecken kan du använda en formel baserad på sex funktioner: TRIM, VÄNSTER, SUBSTITUT, MID, LEN och REPT. Detta tillvägagångssätt är användbart om du behöver extrahera saker som ett Twitter-användarnamn från en cell som innehåller annan text.

I exemplet som visas är formeln i C5:

=TRIM(LEFT(SUBSTITUTE(MID(B5,FIND("@",B5),LEN(B5))," ",REPT(" ",100)),100))

Förklaring

Från och med inifrån och ut används MID-funktionen för att extrahera all text efter "@":

MID(B5,FIND("@",B5),LEN(B5))

HITTA-funktionen ger startpunkten, och för att totalt antal tecken ska extraheras använder vi bara LEN på originaltexten. Det här är lite slarvigt, men det undviker att behöva beräkna det exakta antalet tecken som ska extraheras. MID bryr sig inte om detta nummer är större än de återstående tecknen, det extraherar helt enkelt all text efter "@".

Därefter "översvämmer" vi den återstående texten med mellanslagstecken, genom att ersätta varje enskilt mellanslag med 100 mellanslag med en kombination av SUBSTITUT och REPT:

SUBSTITUTE("@word and remaining text"," ",REPT(" ",100))

Detta verkar galet, men logiken blir tydlig nedan.

Därefter, för att extrahera bara det ord vi vill ha (dvs. @word), använder vi VÄNSTER för att extrahera de första 100 tecknen från vänster. Detta får oss "@word", plus många extra mellanslag. För att visualisera representerar bindestrecken nedan blanksteg:

@ord---------------------

Nu behöver vi bara ta bort alla extra utrymmen. För det använder vi TRIM-funktionen.

Obs: 100 representerar det längsta ord du förväntar dig att hitta som börjar med specialtecknet. Öka eller minska efter dina behov.

Har du ett bättre sätt att göra detta? Låt mig veta i kommentarerna nedan!

Intressanta artiklar...