Excel-formel: Extrahera de två sista orden från cellen -

Innehållsförteckning

Generisk formel

=MID(A1,FIND("@",SUBSTITUTE(A1," ","@",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-1))+1,100)

Sammanfattning

För att extrahera de två sista orden från en cell kan du använda en formel byggd med flera Excel-funktioner, inklusive MID, HITTA, SUBSTITUT och LEN. I exemplet som visas är formeln i C5:

=MID(B5,FIND("@",SUBSTITUTE(B5," ","@",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-1))+1,100)

Förklaring

I grunden använder denna formel MID-funktionen för att extrahera tecken som börjar vid det näst sista mellanslaget. MID-funktionen tar tre argument: texten att arbeta med, startpositionen och antalet tecken som ska extraheras.

Texten kommer från kolumn B, och antalet tecken kan vara vilket stort antal som helst som säkerställer att de två sista orden extraheras. Utmaningen är att bestämma startpositionen, som ligger strax efter det näst sista utrymmet. Det smarta arbetet görs främst med SUBSTITUTE-funktionen, som har ett valfritt argument som heter instansnummer. Denna funktion används för att ersätta det näst sista mellanslaget i texten med "@" -tecknet, som sedan lokaliseras med HITTA-funktionen.

Arbetet inifrån och ut visar utdraget nedan hur många mellanslag som finns i den totala texten, från vilken 1 subtraheras.

LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-1

I exemplet som visas finns det 5 mellanslag i texten, så koden ovan returnerar 4. Detta nummer matas in i den yttre SUBSTITUT-funktionen som instansnummer:

SUBSTITUTE(B5," ","@",4)

Detta gör att SUBSTITUTE ersätter det fjärde mellanslagstecknet med "@". Valet av @ är godtyckligt. Du kan använda vilket tecken som helst som inte visas i originaltexten.

Därefter hittar FIND tecknet "@" i texten:

FIND("@","A stitch in time@saves nine")

Resultatet av FIND är 17, till vilket 1 läggs till för att få 18. Detta är startpositionen och går in i MID-funktionen som det andra argumentet. För enkelhetens skull kodas antalet tecken som ska extraheras som 100. Detta antal är godtyckligt och kan justeras för att passa situationen.

Extrahera de sista N-orden från cellen

Denna formel kan generaliseras för att extrahera de sista N-orden från en cell genom att ersätta den hårdkodade 1 i exemplet med (N-1). Dessutom, om du extraherar många ord, kanske du vill ersätta det hårdkodade argumentet i MID, 100, med ett större antal. För att garantera dig att numret är tillräckligt stort kan du helt enkelt använda LEN-funktionen enligt följande:

=MID(B5,FIND("@",SUBSTITUTE(B5," ","@",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-(N-1)))+1,LEN(B5))

Intressanta artiklar...