Excel-formule: laatste woord verwijderen -

Inhoudsopgave

Generieke formule

=MID(A1,1,FIND("~",SUBSTITUTE(A1," ","~",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))-1)

Samenvatting

Om het laatste woord uit een tekstreeks te verwijderen, kunt u een formule gebruiken die is gebaseerd op de MID-functie, met hulp van SUBSTITUTE, LEN en FIND. In het weergegeven voorbeeld is de formule in cel B5:

=MID(B5,1,FIND("~",SUBSTITUTE(B5," ","~",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))))-1)

Uitleg

Deze formule gebruikt de MID-functie om het laatste woord uit een tekstreeks te verwijderen. De belangrijkste uitdaging is om erachter te komen waar het laatste woord begint.

De formule is een beetje ingewikkeld, maar de stappen zijn eenvoudig. We tellen eerst hoeveel spaties er in de tekst zijn met LEN en SUBSTITUTE. Vervolgens gebruiken we het ietwat obscure argument "instantie" in de functie SUBSTITUTE om de laatste spatie te vervangen door een tilde (~). Ten slotte gebruiken we FIND om erachter te komen waar de tilde is, en de MID-functie om alles na de tilde te verwijderen.

We werken van binnen naar buiten en gebruiken de LEN- en SUBSTITUTE-functies om te tellen hoeveel spaties er in de volgende verschijnen:

LEN(B5)-LEN(SUBSTITUTE(B5," ","")) // returns 6

Voor de tekst in B5 levert dit 6 op. Op deze pagina wordt dit deel van de formule nader toegelicht. Dit vertelt ons dat we de tekst willen knippen bij het 6e spatie-teken.

Opmerking: als woorden door meer dan één spatie worden gescheiden, moet u eerst de spaties normaliseren met de TRIM-functie.

Het nummer 6 wordt dan in een andere SUBSTITUTE gestoken als het "instantienummer":

SUBSTITUTE(B5," ","~",6) // insert tilde

Hier vervangen we de 6e instantie van een spatie ("") door een tilde (~). Nadat SUBSTITUTE is uitgevoerd, retourneert het deze tekenreeks:

"It's been seven hours and fifteen~days"

Opmerking: we gebruiken alleen een tilde (~) omdat het een zeldzaam karakter is. U kunt elk gewenst teken gebruiken, zolang het maar niet in de brontekst voorkomt.

Vervolgens gebruiken we de functie FIND om de tilde te lokaliseren:

FIND("~","It's been seven hours and fifteen~days")-1

FIND retourneert 34, aangezien de tilde het 34ste teken is. Van dit getal trekken we 1 af, omdat we de laatste spatie niet in het eindresultaat willen opnemen. We kunnen de formule nu vereenvoudigen om:

=MID(B5,1,33) // extract final text

De MID-functie retourneert vervolgens de tekens 1-33:

"It's been seven hours and fifteen"

Met een aangepast scheidingsteken

Dezelfde formule kan worden gebruikt met een ander scheidingsteken. Als u bijvoorbeeld alle tekst na de laatste schuine streep "/" wilt verwijderen, kunt u het volgende gebruiken:

=MID(A1,1,FIND("~",SUBSTITUTE(A1,"/","~",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))))-1)

Verwijder de laatste n woorden

U kunt de formule aanpassen om de laatste 2 woorden, de laatste 3 woorden, enz. Te verwijderen. De algemene vorm is:

=MID(A1,1,FIND("~",SUBSTITUTE(A1,d,"~",LEN(A1)-LEN(SUBSTITUTE(A1,d,""))-(n-1)))-1)

waarbij d het scheidingsteken is en n het aantal te verwijderen woorden.

Interessante artikelen...