Excel vzorec: Extrahujte slovo obsahujúce konkrétny text -

Všeobecný vzorec

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

Zhrnutie

Ak chcete extrahovať slovo, ktoré obsahuje konkrétny text, môžete použiť vzorec založený na niekoľkých funkciách, napríklad TRIM, LEFT, SUBSTITUTE, MID, MAX a REPT. Tento vzorec môžete použiť na extrahovanie vecí, ako sú e-mailové adresy alebo iné podreťazce, s jedinečným ID.

V zobrazenom príklade je vzorec v C5:

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

Vysvetlenie

Zhrnutie: tento vzorec „zaplavuje“ priestor medzi slovami v textovom reťazci s veľkým počtom medzier, vyhľadáva a extrahuje podreťazec záujmu a na vyčistenie neporiadku používa funkciu TRIM.

Pri práci zvnútra von je pôvodný text v B5 zaplavený medzerami pomocou funkcie SUBSTITUTE:

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

Toto nahradí každý jeden priestor 99 medzerami.

Poznámka: 99 je iba ľubovoľné číslo, ktoré predstavuje najdlhšie slovo, ktoré potrebujete extrahovať.

Ďalej funkcia FIND nájde konkrétny znak (v tomto prípade „@“) vo vnútri zaplaveného textu:

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

FIND vráti v tomto texte pozíciu „@“, od ktorej sa odpočíta 50. Odčítanie hodnoty 50 účinne „vráti dozadu“ pozíciu kamkoľvek do stredu medzery predchádzajúcej záujmový podreťazec. V zobrazenom príklade je vypočítaná pozícia 366.

Funkcia MAX sa používa na riešenie problému podreťazca, ktorý sa v texte objaví ako prvý. V takom prípade bude pozícia záporná a na resetovanie hodnoty 1 sa použije MAX.

S vytvorenou počiatočnou pozíciou sa MID používa na extrakciu 99 znakov textu, počnúc 366 z textu v B5, opäť zaplaveného medzerou:

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

Toto extrahuje podreťazec záujmu, s mnohými medzerníkmi pred a po.

Nakoniec sa funkcia TRIM použije na orezanie úvodného a koncového priestoru a vráti podreťazec obsahujúci špeciálny znak.

Zaujímavé články...