Excel-formel: Få sista ordet -

Generisk formel

=TRIM(RIGHT(SUBSTITUTE(text," ",REPT(" ",100)),100))

Sammanfattning

För att få det sista ordet från en textsträng kan du använda en formel baserad på funktionerna TRIM, SUBSTITUTE, RIGHT och REPT. I exemplet som visas är formeln i C6:

=TRIM(RIGHT(SUBSTITUTE(B6," ",REPT(" ",100)),100))

Som returnerar ordet "tid".

Förklaring

Denna formel är ett intressant exempel på en "brute force" -strategi som utnyttjar det faktum att TRIM tar bort valfritt antal ledande utrymmen.

Arbetar inifrån och ut, använder vi SUBSTITUTE-funktionen för att hitta alla mellanslag i texten och ersätter varje mellanslag med 100 mellanslag:

SUBSTITUTE(B6," ",REPT(" ",100))

Så till exempel, med textsträngen "en två tre" kommer resultatet att se ut så här:

one----------two----------three

Med bindestreck som representerar utrymmen för läsbarhet. Tänk på att det kommer att finnas 100 mellanslag mellan varje ord.

Därefter extraherar RIGHT-funktionen 100 tecken, från höger. Resultatet kommer att se ut så här:

-------three

Slutligen tar TRIM-funktionen bort alla ledande mellanslag och returnerar det sista ordet.

Obs! Vi använder 100 godtyckligt eftersom det borde vara tillräckligt stort för att hantera mycket långa ord. Om du har någon udda situation med superlånga ord, stöta upp detta nummer efter behov.

Hantering av inkonsekvent avstånd

Om texten du arbetar med har inkonsekvent avstånd (dvs. extra mellanslag mellan ord, extra ledande eller efterföljande mellanslag etc.) Denna formel fungerar inte korrekt. För att hantera denna situation, lägg till en extra TRIM-funktion i ersättningsfunktionen så här:

=TRIM(RIGHT(SUBSTITUTE(TRIM(B6)," ",REPT(" ",100)),100))

Detta normaliserar alla mellanslag innan huvudlogiken körs.

Bra länkar

Trevlig förklaring på MrExcel.com av T. Valko (Biff)

Intressanta artiklar...