Excel-formel: Extrahera ord som innehåller specifik text -

Innehållsförteckning

Generisk formel

=TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),MAX(1,FIND("@",SUBSTITUTE(A1," ",REPT(" ",99)))-50),99))

Sammanfattning

För att extrahera ett ord som innehåller specifik text kan du använda en formel baserad på flera funktioner, inklusive TRIM, VÄNSTER, SUBSTITUT, MID, MAX och REPT. Du kan använda den här formeln för att extrahera saker som e-postadresser eller andra underlag med ett unikt id.

I exemplet som visas är formeln i C5:

=TRIM(MID(SUBSTITUTE(B5," ",REPT(" ",99)),MAX(1,FIND("@",SUBSTITUTE(B5," ",REPT(" ",99)))-50),99))

Förklaring

Kärnan: denna formel "översvämmar" utrymmet mellan ord i en textsträng med ett stort antal mellanslag, hittar och extraherar det intressanta underlaget och använder TRIM-funktionen för att rensa upp röran.

Arbetar inifrån och ut, översvämmas originaltexten i B5 med mellanslag med SUBSTITUTE:

SUBSTITUTE(B5," ",REPT(" ",99))

Detta ersätter varje enskilt utrymme med 99 mellanslag.

Obs! 99 är bara ett godtyckligt tal som representerar det längsta ordet du behöver extrahera.

Därefter lokaliserar HITTA-funktionen det specifika tecknet (i detta fall "@") inuti den översvämmade texten:

FIND("@",SUBSTITUTE(B5," ",REPT(" ",99)))-50

HITTA returnerar positionen för "@" i denna text, från vilken 50 subtraheras. Att subtrahera 50 effektivt "går tillbaka" positionen till någonstans mitt i de utrymmen som föregår substratet av intresse. I det visade exemplet är den beräknade positionen 366.

MAX-funktionen används för att hantera problemet med att substratet visas först i texten. I så fall kommer positionen att vara negativ och MAX används för att återställa till 1.

Med en startposition skapad används MID för att extrahera 99 tecken med text, från 366 från texten i B5, återigen översvämmad med mellanslag:

MID(SUBSTITUTE(B5," ",REPT(" ",99)),366,99)

Detta extraherar det intressanta underlaget med många mellanslagstecken före och efter.

Slutligen används TRIM-funktionen för att trimma ledande och efterföljande utrymme och returnerar substring som innehåller specialtecknet.

Intressanta artiklar...