
Generisk formel
=TRIM(RIGHT(SUBSTITUTE(text," ",REPT(" ",100)),100))
Resumé
For at få det sidste ord fra en tekststreng kan du bruge en formel baseret på funktionerne TRIM, SUBSTITUTE, RIGHT og REPT. I det viste eksempel er formlen i C6:
=TRIM(RIGHT(SUBSTITUTE(B6," ",REPT(" ",100)),100))
Hvilket returnerer ordet "tid".
Forklaring
Denne formel er et interessant eksempel på en "brute force" tilgang, der udnytter det faktum, at TRIM fjerner et vilkårligt antal førende rum.
Når vi arbejder indefra og ud, bruger vi SUBSTITUTE-funktionen til at finde alle mellemrum i teksten og erstatte hvert mellemrum med 100 mellemrum:
SUBSTITUTE(B6," ",REPT(" ",100))
Så for eksempel med tekststrengen "en to tre" vil resultatet se sådan ud:
one----------two----------three
Med bindestreger, der repræsenterer pladser til læsbarhed. Husk, at der vil være 100 mellemrum mellem hvert ord.
Derefter udtrækker RIGHT-funktionen 100 tegn startende fra højre. Resultatet vil se sådan ud:
-------three
Endelig fjerner TRIM-funktionen alle ledende mellemrum og returnerer det sidste ord.
Bemærk: Vi bruger 100 vilkårligt, fordi det skal være et stort nok antal til at håndtere meget lange ord. Hvis du har en underlig situation med superlange ord, skal du bumpe dette nummer efter behov.
Håndtering af inkonsekvent afstand
Hvis teksten, du arbejder med, har en inkonsekvent afstand (dvs. ekstra mellemrum mellem ord, ekstra mellemrum osv.) Denne formel fungerer ikke korrekt. For at håndtere denne situation skal du tilføje en ekstra TRIM-funktion inde i erstatningsfunktionen som sådan:
=TRIM(RIGHT(SUBSTITUTE(TRIM(B6)," ",REPT(" ",100)),100))
Dette normaliserer alle mellemrum, før hovedlogikken kører.